From c4d6560f6f1e3c2d02ce6cb2f4aef0ac5a0f59d4 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 19 Mar 2021 20:53:42 +0100 Subject: [PATCH] [jOOQ/jOOQ#11660] Emulate CONNECT BY LEVEL < x - WIP --- .../java/org/jooq/impl/SelectQueryImpl.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index b6a0beaf2b..e3b8edd3c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -117,6 +117,7 @@ import static org.jooq.impl.CommonTableExpressionList.markTopLevelCteAndAccept; import static org.jooq.impl.DSL.asterisk; import static org.jooq.impl.DSL.createTable; import static org.jooq.impl.DSL.falseCondition; +import static org.jooq.impl.DSL.generateSeries; import static org.jooq.impl.DSL.groupingSets; import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.jsonArrayAgg; @@ -124,6 +125,7 @@ import static org.jooq.impl.DSL.jsonObject; import static org.jooq.impl.DSL.jsonbArrayAgg; import static org.jooq.impl.DSL.jsonbObject; import static org.jooq.impl.DSL.key; +// ... import static org.jooq.impl.DSL.name; import static org.jooq.impl.DSL.noCondition; import static org.jooq.impl.DSL.one; @@ -138,6 +140,7 @@ import static org.jooq.impl.DSL.unquotedName; 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.Internal.isub; import static org.jooq.impl.JSONArrayAgg.EMULATE_WITH_GROUP_CONCAT; import static org.jooq.impl.JSONNull.NO_SUPPORT_ABSENT_ON_NULL; import static org.jooq.impl.Keywords.K_AND; @@ -164,6 +167,8 @@ 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.Names.N_DUAL; +import static org.jooq.impl.Names.N_LEVEL; import static org.jooq.impl.QueryPartCollectionView.wrap; import static org.jooq.impl.SQLDataType.JSON; import static org.jooq.impl.SQLDataType.JSONB; @@ -308,6 +313,8 @@ final class SelectQueryImpl extends AbstractResultQuery imp + + private static final Set SUPPORT_FULL_WITH_TIES = SQLDialect.supportedBy(H2, POSTGRES); private static final Set EMULATE_DISTINCT_ON = SQLDialect.supportedBy(DERBY, FIREBIRD, HSQLDB, MARIADB, MYSQL, SQLITE); static final Set NO_SUPPORT_FOR_UPDATE_OF_FIELDS = SQLDialect.supportedBy(MYSQL, POSTGRES); @@ -1386,6 +1393,54 @@ final class SelectQueryImpl extends AbstractResultQuery imp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1454,6 +1509,11 @@ final class SelectQueryImpl extends AbstractResultQuery imp + + + + +