diff --git a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java index 6f3e0345f3..82ad655bab 100644 --- a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java +++ b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java @@ -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)); } } diff --git a/jOOQ-test/src/org/jooq/test/jOOQAdaptiveServerTest.java b/jOOQ-test/src/org/jooq/test/jOOQAdaptiveServerTest.java index 365c637d40..96084c3a19 100644 --- a/jOOQ-test/src/org/jooq/test/jOOQAdaptiveServerTest.java +++ b/jOOQ-test/src/org/jooq/test/jOOQAdaptiveServerTest.java @@ -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, }; } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Mod.java b/jOOQ/src/main/java/org/jooq/impl/Mod.java index f139e532bd..0f856b76b2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Mod.java +++ b/jOOQ/src/main/java/org/jooq/impl/Mod.java @@ -63,6 +63,7 @@ class Mod extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { switch (configuration.getDialect()) { + case ADAPTIVESERVER: case SQLITE: case SQLSERVER: return new Expression(MODULO, arg1, arg2); diff --git a/jOOQ/src/main/java/org/jooq/util/adaptiveserver/AdaptiveServerDataType.java b/jOOQ/src/main/java/org/jooq/util/adaptiveserver/AdaptiveServerDataType.java index 696c688d10..d807ebfbcf 100644 --- a/jOOQ/src/main/java/org/jooq/util/adaptiveserver/AdaptiveServerDataType.java +++ b/jOOQ/src/main/java/org/jooq/util/adaptiveserver/AdaptiveServerDataType.java @@ -75,16 +75,14 @@ public class AdaptiveServerDataType extends AbstractDataType { public static final AdaptiveServerDataType BIT = new AdaptiveServerDataType(SQLDataType.BIT, "bit"); public static final AdaptiveServerDataType VARCHAR = new AdaptiveServerDataType(SQLDataType.VARCHAR, "varchar"); public static final AdaptiveServerDataType CHAR = new AdaptiveServerDataType(SQLDataType.CHAR, "char"); - public static final AdaptiveServerDataType LONGNVARCHAR = new AdaptiveServerDataType(SQLDataType.LONGNVARCHAR, "long nvarchar"); - public static final AdaptiveServerDataType LONGVARCHAR = new AdaptiveServerDataType(SQLDataType.LONGVARCHAR, "long varchar"); + public static final AdaptiveServerDataType LONGVARCHAR = new AdaptiveServerDataType(SQLDataType.LONGVARCHAR, "text"); public static final AdaptiveServerDataType NCHAR = new AdaptiveServerDataType(SQLDataType.NCHAR, "nchar"); - public static final AdaptiveServerDataType NTEXT = new AdaptiveServerDataType(SQLDataType.NCLOB, "ntext"); public static final AdaptiveServerDataType NVARCHAR = new AdaptiveServerDataType(SQLDataType.NVARCHAR, "nvarchar"); public static final AdaptiveServerDataType TEXT = new AdaptiveServerDataType(SQLDataType.CLOB, "text"); public static final AdaptiveServerDataType DATE = new AdaptiveServerDataType(SQLDataType.DATE, "date"); public static final AdaptiveServerDataType