From 4832f1f08461b0639b01f1b6b1296727aa6bef85 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 26 Sep 2018 13:22:36 +0200 Subject: [PATCH] [#7518] [#7902] Add parser support for negative numeric scales --- .../src/main/resources/org/jooq/web/grammar-3.12.txt | 6 +++--- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) 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);