[#5576] Add support for SQLite 3.15's row value expression support

This commit is contained in:
lukaseder 2018-10-10 15:49:55 +02:00
parent f9009e109a
commit ab42758592
5 changed files with 9 additions and 5 deletions

View File

@ -187,7 +187,7 @@ implements
private static final Clause[] CLAUSES_NOT_BETWEEN = { CONDITION, CONDITION_NOT_BETWEEN };
private static final Clause[] CLAUSES_NOT_BETWEEN_SYMMETRIC = { CONDITION, CONDITION_NOT_BETWEEN_SYMMETRIC };
private static final EnumSet<SQLDialect> NO_SUPPORT_SYMMETRIC = EnumSet.of(CUBRID, DERBY, FIREBIRD, H2, MARIADB, MYSQL, SQLITE);
private static final EnumSet<SQLDialect> EMULATE_BETWEEN = EnumSet.of(CUBRID, DERBY, FIREBIRD, MARIADB, MYSQL, SQLITE);
private static final EnumSet<SQLDialect> EMULATE_BETWEEN = EnumSet.of(CUBRID, DERBY, FIREBIRD, MARIADB, MYSQL);
private final boolean symmetric;
private final boolean not;

View File

@ -57,7 +57,6 @@ import static org.jooq.SQLDialect.FIREBIRD;
// ...
// ...
// ...
import static org.jooq.SQLDialect.SQLITE;
// ...
// ...
// ...
@ -88,8 +87,8 @@ final class RowCondition extends AbstractCondition {
*/
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
private static final EnumSet<SQLDialect> EMULATE_EQ_AND_NE = EnumSet.of(DERBY, FIREBIRD, SQLITE);
private static final EnumSet<SQLDialect> EMULATE_RANGES = EnumSet.of(DERBY, CUBRID, FIREBIRD, SQLITE);
private static final EnumSet<SQLDialect> EMULATE_EQ_AND_NE = EnumSet.of(DERBY, FIREBIRD);
private static final EnumSet<SQLDialect> EMULATE_RANGES = EnumSet.of(DERBY, CUBRID, FIREBIRD);
private final Row left;
private final Row right;

View File

@ -82,6 +82,8 @@ final class RowInCondition extends AbstractCondition {
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES_IN = { CONDITION, CONDITION_IN };
private static final Clause[] CLAUSES_IN_NOT = { CONDITION, CONDITION_NOT_IN };
// Currently not yet supported in SQLite: https://www.sqlite.org/rowvalue.html
private static final EnumSet<SQLDialect> EMULATE_IN = EnumSet.of(DERBY, FIREBIRD, SQLITE);
private final Row left;

View File

@ -85,6 +85,8 @@ final class RowIsNull extends AbstractCondition {
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES_NULL = { CONDITION, CONDITION_IS_NULL };
private static final Clause[] CLAUSES_NOT_NULL = { CONDITION, CONDITION_IS_NOT_NULL };
// Currently not yet supported in SQLite: https://www.sqlite.org/rowvalue.html
private static final EnumSet<SQLDialect> EMULATE_NULL = EnumSet.of(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, SQLITE);
private final Row row;

View File

@ -52,6 +52,7 @@ import static org.jooq.SQLDialect.MYSQL;
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
import static org.jooq.SQLDialect.SQLITE;
import static org.jooq.impl.DSL.exists;
import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.name;
@ -87,7 +88,7 @@ final class RowSubqueryCondition extends AbstractCondition {
*/
private static final long serialVersionUID = -1806139685201770706L;
private static final Clause[] CLAUSES = { CONDITION, CONDITION_COMPARISON };
private static final EnumSet<SQLDialect> SUPPORT_NATIVE = EnumSet.of(H2, HSQLDB, MARIADB, MYSQL, POSTGRES);
private static final EnumSet<SQLDialect> SUPPORT_NATIVE = EnumSet.of(H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE);