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 14788a6cb2..ec83a6f639 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 @@ -684,6 +684,7 @@ term = | 'NEXT VALUE FOR' sequenceName | 'NEXTVAL' '(' ( name | stringLiteral ) ')' | 'OCTET_LENGTH' '(' field ')' +| 'PI' '(' ')' | 'POSITION' '(' field 'IN' field ')' | 'PERCENT_RANK' ( '(' ')' over | '(' fields ')' withinGroup ) | ( 'PERCENTILE_CONT' | 'PERCENTILE_DISC' ) '(' unsignedNumericLiteral ')' withinGroup [ over ] diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index dcd8cc4eb0..8b049c538d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -158,6 +158,7 @@ import static org.jooq.impl.DSL.partitionBy; import static org.jooq.impl.DSL.percentRank; import static org.jooq.impl.DSL.percentileCont; import static org.jooq.impl.DSL.percentileDisc; +import static org.jooq.impl.DSL.pi; import static org.jooq.impl.DSL.position; import static org.jooq.impl.DSL.primaryKey; import static org.jooq.impl.DSL.prior; @@ -4605,6 +4606,8 @@ final class ParserImpl implements Parser { return field; else if ((field = parseFieldPowerIf(ctx)) != null) return field; + else if (parseFunctionNameIf(ctx, "PI")) + return pi(); if (parseKeywordIf(ctx, "PRIOR")) return prior(toField(ctx, parseConcat(ctx, type))); diff --git a/jOOQ/src/main/java/org/jooq/impl/Pi.java b/jOOQ/src/main/java/org/jooq/impl/Pi.java index 2f72947031..e4c722c680 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Pi.java +++ b/jOOQ/src/main/java/org/jooq/impl/Pi.java @@ -63,7 +63,7 @@ final class Pi extends AbstractFunction { @Override final Field getFunction0(Configuration configuration) { - switch (configuration.dialect().family()) { + switch (configuration.family()) {