diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 0c8c810b3f..370a01c94e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -11063,6 +11063,10 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { case 'A': if (parseKeywordOrIdentifierIf("ARRAY")) return SQLDataType.OTHER.getArrayDataType(); + else if (parseKeywordIf("AUTO_INCREMENT")) { + parseDataTypeIdentityArgsIf(); + return SQLDataType.INTEGER.identity(true); + } break; @@ -11148,6 +11152,10 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { else return SQLDataType.INTERVAL; } + else if (parseKeywordIf("IDENTITY")) { + parseDataTypeIdentityArgsIf(); + return SQLDataType.INTEGER.identity(true); + } break; @@ -11286,6 +11294,13 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return new DefaultDataType(dsl.dialect(), Object.class, parseName()); } + private final void parseDataTypeIdentityArgsIf() { + if (parseIf('(')) { + parseList(',', ParseContext::parseField); + parse(')'); + } + } + private final boolean parseKeywordOrIdentifierIf(String keyword) { int p = position(); char quoteEnd = parseQuote(false);