diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt index eaf54da61d..c30618caf5 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt +++ b/jOOQ-manual/src/main/resources/org/jooq/web/grammar-3.12.txt @@ -867,7 +867,7 @@ dataType = | 'CHARACTER' [ '(' unsignedInteger ')' [ 'BYTE' | 'CHAR' ] ] [ 'COLLATE' collationName ] | 'CLOB' [ '(' unsignedInteger ')' ] [ 'COLLATE' collationName ] | 'DATE' -| 'DECIMAL' [ '(' ( '*' | unsignedInteger ) [ ',' unsignedInteger ] ')' ] +| 'DECIMAL' [ '(' ( '*' | unsignedInteger ) [ ',' signedInteger ] ')' ] | 'DOUBLE' [ 'PRECISION' ] [ '(' unsignedInteger [ ',' unsignedInteger ] ')' ] | 'ENUM' '(' stringLiteral [ ',' stringLiteral ] ')' [ 'COLLATE' collationName ] | 'FLOAT' [ '(' unsignedInteger [ ',' unsignedInteger ] ')' ] @@ -883,8 +883,8 @@ dataType = | 'MEDIUMTEXT' [ 'COLLATE' collationName ] | 'NCHAR' [ '(' unsignedInteger ')' ] [ 'COLLATE' collationName ] | 'NCLOB' [ 'COLLATE' collationName ] -| 'NUMBER' [ '(' ( '*' | unsignedInteger ) [ ',' unsignedInteger ] ')' ] -| 'NUMERIC' [ '(' ( '*' | unsignedInteger ) [ ',' unsignedInteger ] ')' ] +| 'NUMBER' [ '(' ( '*' | unsignedInteger ) [ ',' signedInteger ] ')' ] +| 'NUMERIC' [ '(' ( '*' | unsignedInteger ) [ ',' signedInteger ] ')' ] | 'NVARCHAR' [ '(' unsignedInteger ')' ] [ 'COLLATE' collationName ] | 'OTHER' | 'REAL' [ '(' unsignedInteger [ ',' unsignedInteger ] ')' ] diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 68ec1b5bce..11f5009ae3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -7677,7 +7677,7 @@ final class ParserImpl implements Parser { int precision = parseIf(ctx, '*') ? 38 : (int) (long) parseUnsignedInteger(ctx); if (parseIf(ctx, ',')) - result = result.precision(precision, (int) (long) parseUnsignedInteger(ctx)); + result = result.precision(precision, (int) (long) parseSignedInteger(ctx)); else result = result.precision(precision);