[#800] Add support for Sybase Adaptive Server Enterprise - fixed many integration tests

This commit is contained in:
Lukas Eder 2011-09-06 18:09:42 +00:00
parent 65bb1d29e9
commit 2045325fe7
4 changed files with 53 additions and 29 deletions

View File

@ -1914,7 +1914,11 @@ public abstract class jOOQAbstractTest<
assertEquals("1", create().select(create().cast(1, String.class)).fetchOne(0));
}
assertEquals(null, create().select(create().castNull(Boolean.class)).fetchOne(0));
// Sybase ASE does not know null bits
if (getDialect() != SQLDialect.ADAPTIVESERVER) {
assertEquals(null, create().select(create().castNull(Boolean.class)).fetchOne(0));
}
assertEquals(null, create().select(create().castNull(Byte.class)).fetchOne(0));
assertEquals(null, create().select(create().castNull(Short.class)).fetchOne(0));
assertEquals(null, create().select(create().castNull(Integer.class)).fetchOne(0));
@ -1985,6 +1989,13 @@ public abstract class jOOQAbstractTest<
}
}
if (getDialect() == SQLDialect.ADAPTIVESERVER) {
if (type.getType() == Boolean.class) {
log.info("SKIPPING", "Casting to bit type in Sybase ASE");
continue;
}
}
assertEquals(null, create().select(val(null).cast(type)).fetchOne(0));
}
}

View File

@ -69,7 +69,7 @@ import org.jooq.test.adaptiveserver.generatedclasses.tables.records.T_725LobTest
import org.jooq.test.adaptiveserver.generatedclasses.tables.records.T_785Record;
import org.jooq.test.adaptiveserver.generatedclasses.tables.records.VLibraryRecord;
import org.jooq.test.adaptiveserver.generatedclasses.tables.records.XUnusedRecord;
import org.jooq.util.sybase.SybaseDataType;
import org.jooq.util.adaptiveserver.AdaptiveServerDataType;
/**
@ -531,29 +531,39 @@ public class jOOQAdaptiveServerTest extends jOOQAbstractTest<
@Override
protected DataType<?>[] getCastableDataTypes() {
return new DataType<?>[] {
SybaseDataType.MONEY,
SybaseDataType.SMALLMONEY,
SybaseDataType.CHAR,
SybaseDataType.LONGNVARCHAR,
SybaseDataType.LONGVARCHAR,
SybaseDataType.NCHAR,
SybaseDataType.NTEXT,
SybaseDataType.NVARCHAR,
SybaseDataType.TEXT,
SybaseDataType.UNIQUEIDENTIFIERSTR,
SybaseDataType.VARCHAR,
SybaseDataType.XML,
SybaseDataType.UNIQUEIDENTIFIER,
SybaseDataType.BIGINT,
SybaseDataType.BIT,
SybaseDataType.DECIMAL,
SybaseDataType.DOUBLE,
SybaseDataType.FLOAT,
SybaseDataType.INTEGER,
SybaseDataType.NUMERIC,
SybaseDataType.REAL,
SybaseDataType.SMALLINT,
SybaseDataType.TINYINT,
AdaptiveServerDataType.BIGINT,
AdaptiveServerDataType.BINARY,
AdaptiveServerDataType.CHAR,
AdaptiveServerDataType.DATE,
AdaptiveServerDataType.DATETIME,
AdaptiveServerDataType.DEC,
AdaptiveServerDataType.DECIMAL,
AdaptiveServerDataType.DOUBLE_PRECISION,
AdaptiveServerDataType.FLOAT,
AdaptiveServerDataType.IMAGE,
AdaptiveServerDataType.INT,
AdaptiveServerDataType.INTEGER,
AdaptiveServerDataType.LONGVARCHAR,
AdaptiveServerDataType.MONEY,
AdaptiveServerDataType.NCHAR,
AdaptiveServerDataType.NUMERIC,
AdaptiveServerDataType.NVARCHAR,
AdaptiveServerDataType.REAL,
AdaptiveServerDataType.SMALLDATETIME,
AdaptiveServerDataType.SMALLINT,
AdaptiveServerDataType.SMALLMONEY,
AdaptiveServerDataType.TEXT,
AdaptiveServerDataType.TIME,
AdaptiveServerDataType.TIMESTAMP,
AdaptiveServerDataType.TINYINT,
AdaptiveServerDataType.UNICHAR,
AdaptiveServerDataType.UNITEXT,
AdaptiveServerDataType.UNIVARCHAR,
AdaptiveServerDataType.UNSIGNEDBIGINT,
AdaptiveServerDataType.UNSIGNEDINT,
AdaptiveServerDataType.UNSIGNEDSMALLLINT,
AdaptiveServerDataType.VARBINARY,
AdaptiveServerDataType.VARCHAR,
};
}
}

View File

@ -63,6 +63,7 @@ class Mod<T> extends AbstractFunction<T> {
@Override
final Field<T> getFunction0(Configuration configuration) {
switch (configuration.getDialect()) {
case ADAPTIVESERVER:
case SQLITE:
case SQLSERVER:
return new Expression<T>(MODULO, arg1, arg2);

View File

@ -75,16 +75,14 @@ public class AdaptiveServerDataType<T> extends AbstractDataType<T> {
public static final AdaptiveServerDataType<Boolean> BIT = new AdaptiveServerDataType<Boolean>(SQLDataType.BIT, "bit");
public static final AdaptiveServerDataType<String> VARCHAR = new AdaptiveServerDataType<String>(SQLDataType.VARCHAR, "varchar");
public static final AdaptiveServerDataType<String> CHAR = new AdaptiveServerDataType<String>(SQLDataType.CHAR, "char");
public static final AdaptiveServerDataType<String> LONGNVARCHAR = new AdaptiveServerDataType<String>(SQLDataType.LONGNVARCHAR, "long nvarchar");
public static final AdaptiveServerDataType<String> LONGVARCHAR = new AdaptiveServerDataType<String>(SQLDataType.LONGVARCHAR, "long varchar");
public static final AdaptiveServerDataType<String> LONGVARCHAR = new AdaptiveServerDataType<String>(SQLDataType.LONGVARCHAR, "text");
public static final AdaptiveServerDataType<String> NCHAR = new AdaptiveServerDataType<String>(SQLDataType.NCHAR, "nchar");
public static final AdaptiveServerDataType<String> NTEXT = new AdaptiveServerDataType<String>(SQLDataType.NCLOB, "ntext");
public static final AdaptiveServerDataType<String> NVARCHAR = new AdaptiveServerDataType<String>(SQLDataType.NVARCHAR, "nvarchar");
public static final AdaptiveServerDataType<String> TEXT = new AdaptiveServerDataType<String>(SQLDataType.CLOB, "text");
public static final AdaptiveServerDataType<Date> DATE = new AdaptiveServerDataType<Date>(SQLDataType.DATE, "date");
public static final AdaptiveServerDataType<Time> TIME = new AdaptiveServerDataType<Time>(SQLDataType.TIME, "time");
public static final AdaptiveServerDataType<Timestamp> DATETIME = new AdaptiveServerDataType<Timestamp>(SQLDataType.TIMESTAMP, "datetime");
public static final AdaptiveServerDataType<Timestamp> TIMESTAMP = new AdaptiveServerDataType<Timestamp>(SQLDataType.TIMESTAMP, "timestamp");
public static final AdaptiveServerDataType<Timestamp> TIMESTAMP = new AdaptiveServerDataType<Timestamp>(SQLDataType.TIMESTAMP, "datetime");
public static final AdaptiveServerDataType<byte[]> BINARY = new AdaptiveServerDataType<byte[]>(SQLDataType.BINARY, "binary");
public static final AdaptiveServerDataType<byte[]> VARBINARY = new AdaptiveServerDataType<byte[]>(SQLDataType.VARBINARY, "varbinary");
@ -93,7 +91,9 @@ public class AdaptiveServerDataType<T> extends AbstractDataType<T> {
// -------------------------------------------------------------------------
protected static final AdaptiveServerDataType<byte[]> __BLOB = new AdaptiveServerDataType<byte[]>(SQLDataType.BLOB, "binary");
protected static final AdaptiveServerDataType<byte[]> __LONGVARBINARY = new AdaptiveServerDataType<byte[]>(SQLDataType.LONGVARBINARY, "varbinary");
protected static final AdaptiveServerDataType<Boolean> __BOOLEAN = new AdaptiveServerDataType<Boolean>(SQLDataType.BOOLEAN, "bit");
protected static final AdaptiveServerDataType<String> __LONGNVARCHAR = new AdaptiveServerDataType<String>(SQLDataType.LONGNVARCHAR, "unitext");
// -------------------------------------------------------------------------
// Compatibility types for supported Java types
@ -111,6 +111,8 @@ public class AdaptiveServerDataType<T> extends AbstractDataType<T> {
public static final AdaptiveServerDataType<BigDecimal> MONEY = new AdaptiveServerDataType<BigDecimal>(SQLDataType.DECIMAL, "money");
public static final AdaptiveServerDataType<BigDecimal> SMALLMONEY = new AdaptiveServerDataType<BigDecimal>(SQLDataType.DECIMAL, "smallmoney");
public static final AdaptiveServerDataType<Timestamp> SMALLDATETIME = new AdaptiveServerDataType<Timestamp>(SQLDataType.TIMESTAMP, "smalldatetime");
public static final AdaptiveServerDataType<Timestamp> BIGDATETIME = new AdaptiveServerDataType<Timestamp>(SQLDataType.TIMESTAMP, "bigdatetime");
public static final AdaptiveServerDataType<Time> BIGTIME = new AdaptiveServerDataType<Time>(SQLDataType.TIME, "bigtime");
public static final AdaptiveServerDataType<byte[]> IMAGE = new AdaptiveServerDataType<byte[]>(SQLDataType.BINARY, "image");