[jOOQ/jOOQ#10551] Add support for Apache Ignite

- No support for fetching generated keys
- More DDL support
- More function support
This commit is contained in:
Lukas Eder 2021-01-22 20:57:18 +01:00
parent 56ebbfb62e
commit 38568e5814
3 changed files with 32 additions and 35 deletions

View File

@ -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<R extends Record> extends AbstractRowCountQuery
private static final Set<SQLDialect> NATIVE_SUPPORT_INSERT_RETURNING = SQLDialect.supportedBy(FIREBIRD, MARIADB, POSTGRES);
private static final Set<SQLDialect> NATIVE_SUPPORT_UPDATE_RETURNING = SQLDialect.supportedBy(FIREBIRD, POSTGRES);
private static final Set<SQLDialect> NATIVE_SUPPORT_DELETE_RETURNING = SQLDialect.supportedBy(FIREBIRD, MARIADB, POSTGRES);
private static final Set<SQLDialect> NO_SUPPORT_FETCHING_KEYS = SQLDialect.supportedBy(HANA, IGNITE, SNOWFLAKE, REDSHIFT, VERTICA);
@ -820,29 +820,26 @@ abstract class AbstractDMLQuery<R extends Record> 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()) {

View File

@ -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<Integer> 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<Integer> position(@Stringly.Param String in, @Stringly.Param String search, Field<? extends Number> 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<Integer> position(@Stringly.Param String in, Field<String> 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<Integer> position(@Stringly.Param String in, Field<String> search, Field<? extends Number> 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<Integer> position(Field<String> 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<Integer> position(Field<String> in, @Stringly.Param String search, Field<? extends Number> 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<Integer> position(Field<String> in, Field<String> 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<Integer> position(Field<String> in, Field<String> search, Field<? extends Number> 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<Integer> 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<Integer> position(@Stringly.Param String in, Field<String> 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<Integer> position(Field<String> 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<Integer> position(Field<String> in, Field<String> search) {
return new Position(in, search);
}

View File

@ -84,7 +84,7 @@ extends
private static final Set<SQLDialect> NO_SUPPORT_SQUARE = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE);
private static final Set<SQLDialect> NO_SUPPORT_SQUARE = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE);
@Override
public final void accept(Context<?> ctx) {