From cd375fc6fdf128007507dc53a44608d241d8915f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 22 Apr 2020 20:18:54 +0200 Subject: [PATCH] [jOOQ/jOOQ#9939] Emulate SQL Server FOR JSON AUTO nested collections from to-many joins --- .../java/org/jooq/impl/SelectQueryImpl.java | 334 +++++++++++------- 1 file changed, 202 insertions(+), 132 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 930124e74e..6a3163ff87 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -107,12 +107,12 @@ import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.one; import static org.jooq.impl.DSL.orderBy; import static org.jooq.impl.DSL.row; -import static org.jooq.impl.DSL.select; import static org.jooq.impl.DSL.substring; import static org.jooq.impl.DSL.table; import static org.jooq.impl.DSL.xmlagg; import static org.jooq.impl.DSL.xmlattributes; import static org.jooq.impl.DSL.xmlelement; +import static org.jooq.impl.JSONArrayAgg.EMULATE_WITH_GROUP_CONCAT; import static org.jooq.impl.JSONObject.NO_SUPPORT_ABSENT_ON_NULL; import static org.jooq.impl.Keywords.K_AND; import static org.jooq.impl.Keywords.K_BY; @@ -136,6 +136,7 @@ import static org.jooq.impl.Keywords.K_WHERE; import static org.jooq.impl.Keywords.K_WINDOW; import static org.jooq.impl.Keywords.K_WITH_CHECK_OPTION; import static org.jooq.impl.Keywords.K_WITH_READ_ONLY; +import static org.jooq.impl.SQLDataType.JSON; import static org.jooq.impl.SQLDataType.VARCHAR; import static org.jooq.impl.SQLDataType.XML; import static org.jooq.impl.ScopeMarkers.AFTER_LAST_TOP_LEVEL_CTE; @@ -184,7 +185,6 @@ import org.jooq.ForeignKey; import org.jooq.GroupField; import org.jooq.JSON; import org.jooq.JSONEntry; -import org.jooq.JSONObjectNullStep; import org.jooq.JoinType; import org.jooq.Name; import org.jooq.Operator; @@ -536,6 +536,206 @@ final class SelectQueryImpl extends AbstractResultQuery imp return CLAUSES; } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Override public final void accept(Context context) { Table dmlTable; @@ -567,136 +767,6 @@ final class SelectQueryImpl extends AbstractResultQuery imp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - else accept0(context); }