[jOOQ/jOOQ#11485] Add support for Trino DB - WIP

This commit is contained in:
Lukas Eder 2023-03-14 20:00:09 +01:00
parent 3116f0e64a
commit 701fb31f8b
3 changed files with 16 additions and 2 deletions

View File

@ -131,6 +131,7 @@ import static org.jooq.impl.Keywords.K_TRUE;
import static org.jooq.impl.Keywords.K_YEAR_TO_DAY;
import static org.jooq.impl.Keywords.K_YEAR_TO_FRACTION;
import static org.jooq.impl.Names.N_BYTEA;
import static org.jooq.impl.Names.N_JSON_PARSE;
import static org.jooq.impl.Names.N_PARSE_JSON;
import static org.jooq.impl.Names.N_ST_GEOMFROMTEXT;
import static org.jooq.impl.Names.N_ST_GEOMFROMWKB;
@ -974,6 +975,19 @@ public class DefaultBinding<T, U> implements Binding<T, U> {
case TRINO: {
if (t.isJSON()) {
ctx.render().visit(N_JSON_PARSE).sql('(');
sql(ctx, converted);
ctx.render().sql(')');
}
else
sqlCast0(ctx, converted, t, length, precision, scale);
break;
}
default:
sqlCast0(ctx, converted, t, length, precision, scale);
break;

View File

@ -92,7 +92,7 @@ final class SQLDataTypes {
static final DataType<Timestamp> TIMESTAMPWITHOUTTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMP, "timestamp(p) without time zone");
static final DataType<OffsetDateTime> TIMESTAMPWITHTIMEZONE = new BuiltInDataType<>(FAMILY, SQLDataType.TIMESTAMPWITHTIMEZONE, "timestamp(p) with time zone");
static final DataType<Instant> INSTANT = new BuiltInDataType<>(FAMILY, SQLDataType.INSTANT, "timestamp(p) with time zone");
static final DataType<byte[]> VARBINARY = new BuiltInDataType<>(FAMILY, SQLDataType.VARBINARY, "varbinary(l)", "varbinary(32672)");
static final DataType<byte[]> VARBINARY = new BuiltInDataType<>(FAMILY, SQLDataType.VARBINARY, "varbinary");
static final DataType<JSON> JSON = new BuiltInDataType<>(FAMILY, SQLDataType.JSON, "json");
static final DataType<Object> OTHER = new BuiltInDataType<>(FAMILY, SQLDataType.OTHER, "other");
static final DataType<UUID> UUID = new BuiltInDataType<>(FAMILY, SQLDataType.UUID, "uuid");

View File

@ -1163,7 +1163,7 @@ final class Tools {
static final Set<SQLDialect> REQUIRES_BACKSLASH_ESCAPING = SQLDialect.supportedBy(MARIADB, MYSQL);
static final Set<SQLDialect> NO_SUPPORT_NULL = SQLDialect.supportedBy(DERBY, FIREBIRD, H2, HSQLDB, TRINO);
static final Set<SQLDialect> NO_SUPPORT_NOT_NULL = SQLDialect.supportedBy(TRINO);
static final Set<SQLDialect> NO_SUPPORT_BINARY_TYPE_LENGTH = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
static final Set<SQLDialect> NO_SUPPORT_BINARY_TYPE_LENGTH = SQLDialect.supportedBy(POSTGRES, TRINO, YUGABYTEDB);
static final Set<SQLDialect> NO_SUPPORT_CAST_TYPE_IN_DDL = SQLDialect.supportedBy(MARIADB, MYSQL);
static final Set<SQLDialect> SUPPORT_NON_BIND_VARIABLE_SUFFIXES = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);
static final Set<SQLDialect> SUPPORT_POSTGRES_LITERALS = SQLDialect.supportedBy(POSTGRES, YUGABYTEDB);