Informix tests fixes 2

This commit is contained in:
Vladimír Kuruc 2024-09-13 08:18:18 +02:00
parent 8d52c0e718
commit b5fa9b2a41
11 changed files with 24 additions and 3 deletions

View File

@ -908,8 +908,11 @@ informix() {
}
informix_14_10() {
temp_dir=$(mktemp -d)
echo "ALLOW_NEWLINE 1" >$temp_dir/onconfig.mod
chmod 777 -R $temp_dir
$PRIVILEGED_CLI $CONTAINER_CLI rm -f informix || true
$PRIVILEGED_CLI $CONTAINER_CLI run --name informix --privileged -p 9088:9088 -e LICENSE=accept -e GL_USEGLU=1 -d ${DB_IMAGE_INFORMIX_14_10:-icr.io/informix/informix-developer-database:14.10.FC9W1DE}
$PRIVILEGED_CLI $CONTAINER_CLI run --name informix --privileged -p 9088:9088 -v $temp_dir:/opt/ibm/config -e LICENSE=accept -e GL_USEGLU=1 -d ${DB_IMAGE_INFORMIX_14_10:-icr.io/informix/informix-developer-database:14.10.FC9W1DE}
echo "Starting Informix. This can take a few minutes"
# Give the container some time to start
OUTPUT=

View File

@ -295,7 +295,7 @@ ext {
'jdbc.driver': 'com.informix.jdbc.IfxDriver',
'jdbc.user' : 'informix',
'jdbc.pass' : 'in4mix',
'jdbc.url' : 'jdbc:informix-sqli://' + dbHost + ':9088/dev:INFORMIXSERVER=informix;user=informix;password=in4mix;DELIMIDENT=Y;DB_LOCALE=en_US.utf8',
'jdbc.url' : 'jdbc:informix-sqli://' + dbHost + ':9088/dev:INFORMIXSERVER=informix;user=informix;password=in4mix;DBDATE=Y4MD-;DELIMIDENT=Y;DB_LOCALE=en_US.utf8',
'jdbc.datasource' : 'com.informix.jdbc.IfxDriver',
// 'jdbc.datasource' : 'com.informix.jdbcx.IfxDataSource',
'connection.init_sql' : ''

View File

@ -23,6 +23,7 @@ import org.hibernate.annotations.OptimisticLocking;
import org.hibernate.annotations.ParamDef;
import org.hibernate.annotations.SQLRestriction;
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
@ -58,6 +59,7 @@ public class Forest {
@OptimisticLock(excluded=true)
@JdbcTypeCode( Types.LONGVARCHAR )
@Column(length = 10000)
public String getLongDescription() {
return longDescription;
}

View File

@ -25,6 +25,7 @@ import org.hibernate.CacheMode;
import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import org.hibernate.community.dialect.FirebirdDialect;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.CockroachDialect;
import org.hibernate.community.dialect.DerbyDialect;
import org.hibernate.dialect.H2Dialect;
@ -1523,6 +1524,7 @@ public class HQLTest extends BaseEntityManagerFunctionalTestCase {
@SkipForDialect(dialectClass = DerbyDialect.class)
@SkipForDialect(dialectClass = SybaseASEDialect.class)
@SkipForDialect(dialectClass = FirebirdDialect.class, reason = "order by not supported in list")
@SkipForDialect(dialectClass = InformixDialect.class)
public void test_hql_aggregate_functions_within_group_example() {
doInJPA(this::entityManagerFactory, entityManager -> {
//tag::hql-aggregate-functions-within-group-example[]

View File

@ -13,6 +13,7 @@ import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.OracleDialect;
import org.hibernate.query.Query;
@ -35,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
@SkipForDialect(dialectClass = MySQLDialect.class, majorVersion = 5, reason = "BLOB/TEXT column 'id' used in key specification without a key length")
@SkipForDialect(dialectClass = OracleDialect.class, matchSubTypes = true, reason = "ORA-02329: column of datatype LOB cannot be unique or a primary key")
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix cannot add index: illegal key descriptor (too many parts or too long)")
@DomainModel(
annotatedClasses = PrimitiveByteArrayIdTest.DemoEntity.class
)

View File

@ -10,6 +10,7 @@ import java.sql.Types;
import java.util.UUID;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.dialect.SybaseDialect;
import org.hibernate.metamodel.MappingMetamodel;
@ -39,6 +40,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
@SkipForDialect(dialectClass = PostgreSQLDialect.class, reason = "Postgres has its own UUID type")
@SkipForDialect( dialectClass = SybaseDialect.class, matchSubTypes = true,
reason = "Skipped for Sybase to avoid problems with UUIDs potentially ending with a trailing 0 byte")
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix supports only UUID mapping to char(36)")
public class UUIDBinaryTest {
private static class UUIDPair {

View File

@ -1,6 +1,7 @@
package org.hibernate.orm.test.length;
import org.hibernate.Length;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.Dialect;
import org.hibernate.metamodel.mapping.BasicValuedMapping;
import org.hibernate.type.SqlTypes;
@ -8,12 +9,14 @@ import org.hibernate.type.SqlTypes;
import org.hibernate.testing.orm.junit.DomainModel;
import org.hibernate.testing.orm.junit.SessionFactory;
import org.hibernate.testing.orm.junit.SessionFactoryScope;
import org.hibernate.testing.orm.junit.SkipForDialect;
import org.junit.jupiter.api.Test;
import static org.junit.Assert.assertEquals;
@SessionFactory
@DomainModel(annotatedClasses = {WithLongStrings.class,WithLongTypeStrings.class})
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix rowsize to exceed the allowable limit (32767).")
public class LengthTest {
@Test
public void testLength(SessionFactoryScope scope) {

View File

@ -6,6 +6,7 @@ import jakarta.persistence.Id;
import org.hibernate.annotations.GeneratedColumn;
import org.hibernate.community.dialect.AltibaseDialect;
import org.hibernate.community.dialect.DerbyDialect;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.H2Dialect;
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.PostgreSQLDialect;
@ -33,6 +34,7 @@ import static org.junit.Assert.assertEquals;
@SkipForDialect(dialectClass = PostgreSQLDialect.class, majorVersion = 10, matchSubTypes = true)
@SkipForDialect(dialectClass = PostgreSQLDialect.class, majorVersion = 11, matchSubTypes = true) // 'generated always' was added in 12
@SkipForDialect(dialectClass = AltibaseDialect.class, reason = "generated always is not supported in Altibase")
@SkipForDialect(dialectClass = InformixDialect.class)
public class GeneratedAlwaysTest {
@Test

View File

@ -10,6 +10,7 @@ import java.time.LocalDate;
import java.util.List;
import java.util.function.Consumer;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.dialect.SybaseASEDialect;
import org.hibernate.dialect.TiDBDialect;
import org.hibernate.query.criteria.HibernateCriteriaBuilder;
@ -241,6 +242,7 @@ public class CteTests {
@Test
@SkipForDialect(dialectClass = SybaseASEDialect.class, reason = "The emulation of CTEs in subqueries results in correlation in nesting level 2, which is not possible with Sybase ASE")
@SkipForDialect(dialectClass = InformixDialect.class)
public void testInSubquery(SessionFactoryScope scope) {
scope.inTransaction( session -> {
final HibernateCriteriaBuilder cb = session.getCriteriaBuilder();

View File

@ -13,6 +13,7 @@ import org.hibernate.testing.orm.junit.JiraKey;
import org.hibernate.testing.orm.junit.ServiceRegistry;
import org.hibernate.testing.orm.junit.SessionFactory;
import org.hibernate.testing.orm.junit.SessionFactoryScope;
import org.hibernate.testing.orm.junit.SkipForDialect;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
@ -25,6 +26,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import org.hibernate.community.dialect.InformixDialect;
import org.hibernate.query.spi.QueryImplementor;
import org.hibernate.type.descriptor.java.PrimitiveByteArrayJavaType;
@ -45,6 +47,7 @@ import static org.hamcrest.Matchers.is;
public class LiteralTests {
@Test
@SkipForDialect(dialectClass = InformixDialect.class, reason = "Informix does not support binary literals")
public void testBinaryLiteral(SessionFactoryScope scope) {
scope.inTransaction(
session -> {

View File

@ -130,7 +130,7 @@ public class UUIDTypeConverterTest {
@Table(name = "TEST_IMAGE")
public static class Image extends Id {
@Column(unique = true, length = 16, nullable = false)
@Column(length = 16, nullable = false)
@Convert(converter = UuidBase64TypeConverter.class)
private UUID thumbId = safeRandomUUID();