diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java index 64806f9cc6..d12326f5c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDMLQuery.java @@ -49,6 +49,7 @@ import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... import static org.jooq.SQLDialect.HSQLDB; +import static org.jooq.SQLDialect.IGNITE; // ... import static org.jooq.SQLDialect.MARIADB; // ... @@ -164,8 +165,7 @@ abstract class AbstractDMLQuery extends AbstractRowCountQuery private static final Set NATIVE_SUPPORT_INSERT_RETURNING = SQLDialect.supportedBy(FIREBIRD, MARIADB, POSTGRES); private static final Set NATIVE_SUPPORT_UPDATE_RETURNING = SQLDialect.supportedBy(FIREBIRD, POSTGRES); private static final Set NATIVE_SUPPORT_DELETE_RETURNING = SQLDialect.supportedBy(FIREBIRD, MARIADB, POSTGRES); - - + private static final Set NO_SUPPORT_FETCHING_KEYS = SQLDialect.supportedBy(HANA, IGNITE, SNOWFLAKE, REDSHIFT, VERTICA); @@ -820,29 +820,26 @@ abstract class AbstractDMLQuery extends AbstractRowCountQuery private final void prepare0(ExecuteContext ctx) throws SQLException { Connection connection = ctx.connection(); - - - - - - - - - - if (returning.isEmpty()) { + // Normal statement preparing if no values should be returned + if (returning.isEmpty()) super.prepare(ctx); - } - - - - - - - - else if (nativeSupportReturning(ctx)) { + // Column stores and other NoSQL/NewSQL DBMS don't seem support fetching generated keys + else if (NO_SUPPORT_FETCHING_KEYS.contains(ctx.dialect())) super.prepare(ctx); - } + + else if (nativeSupportReturning(ctx)) + super.prepare(ctx); + + + + + + + + + + else { switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index c146aaaac2..bcf2847daa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -16116,7 +16116,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, @Stringly.Param String search, int startIndex) { return new Position(Tools.field(in), Tools.field(search), Tools.field(startIndex)); } @@ -16131,7 +16131,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, @Stringly.Param String search, Field startIndex) { return new Position(Tools.field(in), Tools.field(search), startIndex); } @@ -16146,7 +16146,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, Field search, int startIndex) { return new Position(Tools.field(in), search, Tools.field(startIndex)); } @@ -16161,7 +16161,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, Field search, Field startIndex) { return new Position(Tools.field(in), search, startIndex); } @@ -16176,7 +16176,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, @Stringly.Param String search, int startIndex) { return new Position(in, Tools.field(search), Tools.field(startIndex)); } @@ -16191,7 +16191,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, @Stringly.Param String search, Field startIndex) { return new Position(in, Tools.field(search), startIndex); } @@ -16206,7 +16206,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, Field search, int startIndex) { return new Position(in, search, Tools.field(startIndex)); } @@ -16221,7 +16221,7 @@ public class DSL { * @param startIndex The start index (1-based) from which to start looking for the substring. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, Field search, Field startIndex) { return new Position(in, search, startIndex); } @@ -16235,7 +16235,7 @@ public class DSL { * @param search The substring to search for. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, @Stringly.Param String search) { return new Position(Tools.field(in), Tools.field(search)); } @@ -16249,7 +16249,7 @@ public class DSL { * @param search The substring to search for. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(@Stringly.Param String in, Field search) { return new Position(Tools.field(in), search); } @@ -16263,7 +16263,7 @@ public class DSL { * @param search The substring to search for. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, @Stringly.Param String search) { return new Position(in, Tools.field(search)); } @@ -16277,7 +16277,7 @@ public class DSL { * @param search The substring to search for. */ @NotNull - @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) + @Support public static Field position(Field in, Field search) { return new Position(in, search); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Square.java b/jOOQ/src/main/java/org/jooq/impl/Square.java index 8f88176bdc..3ed03146aa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Square.java +++ b/jOOQ/src/main/java/org/jooq/impl/Square.java @@ -84,7 +84,7 @@ extends - private static final Set NO_SUPPORT_SQUARE = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE); + private static final Set NO_SUPPORT_SQUARE = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE); @Override public final void accept(Context ctx) {