From bbee824972009a01673715634ee8db4b4559982f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 14 Aug 2024 15:10:07 +0200 Subject: [PATCH] [jOOQ/jOOQ#17068] Add DuckDB support for unsigned numbers --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 8 ++++++++ jOOQ/src/main/java/org/jooq/impl/SQLDataTypes.java | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 8dc71df3ef..7d70f188ff 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -13766,6 +13766,14 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return SQLDataType.UUID; else if (parseKeywordOrIdentifierIf("UNIQUEIDENTIFIER")) return SQLDataType.UUID; + else if (parseKeywordOrIdentifierIf("UTINYINT")) + return SQLDataType.TINYINTUNSIGNED; + else if (parseKeywordOrIdentifierIf("USMALLINT")) + return SQLDataType.SMALLINTUNSIGNED; + else if (parseKeywordOrIdentifierIf("UINTEGER")) + return SQLDataType.INTEGERUNSIGNED; + else if (parseKeywordOrIdentifierIf("UBIGINT")) + return SQLDataType.BIGINTUNSIGNED; break; diff --git a/jOOQ/src/main/java/org/jooq/impl/SQLDataTypes.java b/jOOQ/src/main/java/org/jooq/impl/SQLDataTypes.java index fe243281e2..ea1ff2b563 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SQLDataTypes.java +++ b/jOOQ/src/main/java/org/jooq/impl/SQLDataTypes.java @@ -186,6 +186,10 @@ final class SQLDataTypes { public static final DataType INTERVALDAYTOSECOND = new BuiltInDataType<>(FAMILY, SQLDataType.INTERVALDAYTOSECOND, "interval day to second", "interval day(9) to second"); public static final DataType JSON = new BuiltInDataType<>(FAMILY, SQLDataType.JSON, "json"); public static final DataType JSONB = new BuiltInDataType<>(FAMILY, SQLDataType.JSONB, "json"); + public static final DataType UTINYINT = new BuiltInDataType<>(FAMILY, SQLDataType.TINYINTUNSIGNED, "utinyint"); + public static final DataType USMALLINT = new BuiltInDataType<>(FAMILY, SQLDataType.SMALLINTUNSIGNED, "usmallint"); + public static final DataType UINTEGER = new BuiltInDataType<>(FAMILY, SQLDataType.INTEGERUNSIGNED, "uinteger"); + public static final DataType UBIGINT = new BuiltInDataType<>(FAMILY, SQLDataType.BIGINTUNSIGNED, "ubigint"); // ------------------------------------------------------------------------- // Compatibility types for supported SQLDialect.DUCKDB, SQLDataTypes @@ -198,10 +202,6 @@ final class SQLDataTypes { protected static final DataType __LONGVARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.LONGVARCHAR, "varchar(l)"); protected static final DataType __LONGVARBINARY = new BuiltInDataType<>(FAMILY, SQLDataType.LONGVARBINARY, "varbinary(l)"); protected static final DataType __NVARCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.NVARCHAR, "varchar(l)"); - protected static final DataType __TINYINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.TINYINTUNSIGNED, "smallint"); - protected static final DataType __SMALLINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.SMALLINTUNSIGNED, "int"); - protected static final DataType __INTEGERUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.INTEGERUNSIGNED, "bigint"); - protected static final DataType __BIGINTUNSIGNED = new BuiltInDataType<>(FAMILY, SQLDataType.BIGINTUNSIGNED, "decimal(p, s)"); protected static final DataType __YEAR = new BuiltInDataType<>(FAMILY, SQLDataType.YEAR, "smallint"); // -------------------------------------------------------------------------