From f01dd879cc8a9b89a04a43c034371dfccf800caf Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 5 Jun 2023 15:21:59 +0200 Subject: [PATCH] [jOOQ/jOOQ#15160] Add parser support for Teradata specific analytic functions --- .../main/java/org/jooq/impl/ParserImpl.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 0adb8c8572..611a653e60 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -8624,6 +8624,10 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { } + + + + break; case 'D': @@ -8870,6 +8874,13 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { else if ((field = parseFieldDecodeIf()) != null) return field; + + + + + + + break; case 'N': @@ -8944,6 +8955,11 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { else if (parseFunctionNameIf("QUARTER")) return quarter(parseFieldParenthesised()); + + + + + case 'R': if (parseFunctionNameIf("REPLACE")) return parseFunctionArgs3(DSL::replace, DSL::replace); @@ -9410,6 +9426,58 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return parseFieldNameOrSequenceExpression(); } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private final Field parseFieldAddDatePart(DatePart part) { return parseFunctionArgs2((f1, f2) -> dateAdd(f1, f2, part)); } @@ -11660,6 +11728,13 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { else parseKeywordIf("ALL"); + + + + + + + // Hypothetical set function List> args = parseList(',', c -> c.parseField()); parse(')');