From 9ca2a49641c9cdf1f2eede11b8070d3aa1c86761 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 12 Feb 2021 13:31:43 +0100 Subject: [PATCH] [jOOQ/jOOQ#11422] Add parser support for JSON_ARRAYAGG() and JSON_OBJECTAGG() as window functions --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index a410343c66..5f18cd2af0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -7533,12 +7533,8 @@ final class ParserContext { if (J.is(type)) if ((field = parseFieldJSONArrayConstructorIf()) != null) return field; - else if ((field = parseFieldJSONArrayAggIf()) != null) - return field; else if ((field = parseFieldJSONObjectConstructorIf()) != null) return field; - else if ((field = parseFieldJSONObjectAggIf()) != null) - return field; else if ((field = parseFieldJSONValueIf()) != null) return field; @@ -8482,9 +8478,9 @@ final class ParserContext { return null; } - private final Field parseFieldJSONArrayAggIf() { + private final AggregateFilterStep parseJSONArrayAggFunctionIf() { if (parseFunctionNameIf("JSON_ARRAYAGG")) { - Field result; + AggregateFilterStep result; JSONArrayAggOrderByStep s1; JSONArrayAggNullStep s2; JSONArrayAggReturningStep s3; @@ -8543,9 +8539,9 @@ final class ParserContext { return null; } - private final Field parseFieldJSONObjectAggIf() { + private final AggregateFilterStep parseJSONObjectAggFunctionIf() { if (parseFunctionNameIf("JSON_OBJECTAGG")) { - Field result; + AggregateFilterStep result; JSONObjectAggNullStep s1; JSONObjectAggReturningStep s2; JSONOnNull onNull; @@ -10247,6 +10243,10 @@ final class ParserContext { over = filter = parseArrayAggFunctionIf(); if (filter == null && !basic) over = filter = parseXMLAggFunctionIf(); + if (filter == null && !basic) + over = filter = parseJSONArrayAggFunctionIf(); + if (filter == null && !basic) + over = filter = parseJSONObjectAggFunctionIf(); if (filter == null && over == null) if (!basic)