[jOOQ/jOOQ#14930] Fix TRINO, H2
This commit is contained in:
parent
56e36a422d
commit
5e9a770487
@ -642,7 +642,7 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
VIEWS.TABLE_CATALOG,
|
||||
VIEWS.TABLE_SCHEMA,
|
||||
VIEWS.TABLE_NAME,
|
||||
VIEWS.VIEW_DEFINITION)
|
||||
concat(inline("create view \""), VIEWS.TABLE_NAME, inline("\" as "), VIEWS.VIEW_DEFINITION).as(VIEWS.VIEW_DEFINITION))
|
||||
.from(VIEWS)
|
||||
.where(VIEWS.TABLE_SCHEMA.in(schemas))
|
||||
.orderBy(
|
||||
@ -721,7 +721,7 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
return result;
|
||||
}
|
||||
|
||||
static record TableRecord(String schema, String table, TableType type, String comment, String source) {}
|
||||
static record TableRecord(String schema, String table, TableType type, String comment) {}
|
||||
|
||||
@Override
|
||||
protected List<TableDefinition> getTables0() throws SQLException {
|
||||
@ -733,12 +733,8 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
when(TABLES.TABLE_TYPE.eq(inline("VIEW")), inline(TableType.VIEW.name()))
|
||||
.when(TABLES.STORAGE_TYPE.like(inline("%TEMPORARY%")), inline(TableType.TEMPORARY.name()))
|
||||
.else_(inline(TableType.TABLE.name())).convertFrom(TableType::valueOf).as("table_type"),
|
||||
TABLES.REMARKS,
|
||||
VIEWS.VIEW_DEFINITION)
|
||||
TABLES.REMARKS)
|
||||
.from(TABLES)
|
||||
.leftJoin(VIEWS)
|
||||
.on(TABLES.TABLE_SCHEMA.eq(VIEWS.TABLE_SCHEMA))
|
||||
.and(TABLES.TABLE_NAME.eq(VIEWS.TABLE_NAME))
|
||||
.where(TABLES.TABLE_SCHEMA.in(getInputSchemata()))
|
||||
.orderBy(
|
||||
TABLES.TABLE_SCHEMA,
|
||||
@ -746,12 +742,9 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
.fetch(mapping(TableRecord::new))) {
|
||||
|
||||
SchemaDefinition schema = getSchema(r.schema);
|
||||
String source = r.source;
|
||||
if (source != null && !source.toLowerCase().startsWith("create"))
|
||||
source = "create view \"" + r.table + "\" as " + source;
|
||||
|
||||
if (schema != null)
|
||||
result.add(new H2TableDefinition(schema, r.table, r.comment, r.type, source));
|
||||
result.add(new H2TableDefinition(schema, r.table, r.comment, r.type, null));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@ -98,14 +98,9 @@ public class TrinoDatabase extends AbstractDatabase implements ResultQueryDataba
|
||||
TABLES.TABLE_SCHEMA,
|
||||
TABLES.TABLE_NAME,
|
||||
when(TABLES.TABLE_TYPE.eq(inline("VIEW")), inline(TableType.VIEW.name()))
|
||||
.else_(inline(TableType.TABLE.name())).trim().as("table_type"),
|
||||
when(VIEWS.VIEW_DEFINITION.lower().like(inline("create%")), VIEWS.VIEW_DEFINITION)
|
||||
.else_(inline("create view \"").concat(TABLES.TABLE_NAME).concat(inline("\" as ")).concat(VIEWS.VIEW_DEFINITION)).as(VIEWS.VIEW_DEFINITION)
|
||||
.else_(inline(TableType.TABLE.name())).trim().as("table_type")
|
||||
)
|
||||
.from(TABLES)
|
||||
.leftJoin(VIEWS)
|
||||
.on(TABLES.TABLE_SCHEMA.eq(VIEWS.TABLE_SCHEMA))
|
||||
.and(TABLES.TABLE_NAME.eq(VIEWS.TABLE_NAME))
|
||||
.where(TABLES.TABLE_SCHEMA.in(getInputSchemata()))
|
||||
.orderBy(
|
||||
TABLES.TABLE_SCHEMA,
|
||||
@ -115,9 +110,8 @@ public class TrinoDatabase extends AbstractDatabase implements ResultQueryDataba
|
||||
String name = record.get(TABLES.TABLE_NAME);
|
||||
String comment = "";
|
||||
TableType tableType = record.get("table_type", TableType.class);
|
||||
String source = record.get(VIEWS.VIEW_DEFINITION);
|
||||
|
||||
result.add(new TrinoTableDefinition(schema, name, comment, tableType, source));
|
||||
result.add(new TrinoTableDefinition(schema, name, comment, tableType, null));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@ -210,7 +210,7 @@ final class MetaSQL {
|
||||
|
||||
M_SOURCES.put(DERBY, "select cast(null as varchar(32672)) as catalog, alias_57844683.SCHEMANAME, SYS.SYSTABLES.TABLENAME, SYS.SYSVIEWS.VIEWDEFINITION from (SYS.SYSTABLES join SYS.SYSSCHEMAS as alias_57844683 on SYS.SYSTABLES.SCHEMAID = alias_57844683.SCHEMAID) left outer join SYS.SYSVIEWS on SYS.SYSTABLES.TABLEID = SYS.SYSVIEWS.TABLEID where cast(alias_57844683.SCHEMANAME as varchar(32672)) in (cast(? as varchar(32672))) order by alias_57844683.SCHEMANAME, SYS.SYSTABLES.TABLENAME");
|
||||
M_SOURCES.put(FIREBIRD, "select null catalog, null schema, trim(RDB$RELATIONS.RDB$RELATION_NAME), trim(RDB$RELATIONS.RDB$VIEW_SOURCE) from RDB$RELATIONS order by trim(RDB$RELATIONS.RDB$RELATION_NAME)");
|
||||
M_SOURCES.put(H2, "select INFORMATION_SCHEMA.VIEWS.TABLE_CATALOG, INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME, INFORMATION_SCHEMA.VIEWS.VIEW_DEFINITION from INFORMATION_SCHEMA.VIEWS where INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA in (cast(? as varchar)) order by INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME");
|
||||
M_SOURCES.put(H2, "select INFORMATION_SCHEMA.VIEWS.TABLE_CATALOG, INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME, ((('create view \"' || INFORMATION_SCHEMA.VIEWS.TABLE_NAME) || '\" as ') || INFORMATION_SCHEMA.VIEWS.VIEW_DEFINITION) VIEW_DEFINITION from INFORMATION_SCHEMA.VIEWS where INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA in (cast(? as varchar)) order by INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME");
|
||||
M_SOURCES.put(HSQLDB, "select INFORMATION_SCHEMA.VIEWS.TABLE_CATALOG, INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME, INFORMATION_SCHEMA.VIEWS.VIEW_DEFINITION from INFORMATION_SCHEMA.VIEWS where INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA in (cast(? as varchar(128))) order by INFORMATION_SCHEMA.VIEWS.TABLE_SCHEMA, INFORMATION_SCHEMA.VIEWS.TABLE_NAME");
|
||||
M_SOURCES.put(MARIADB, "select information_schema.VIEWS.TABLE_CATALOG, information_schema.VIEWS.TABLE_SCHEMA, information_schema.VIEWS.TABLE_NAME, information_schema.VIEWS.VIEW_DEFINITION from information_schema.VIEWS where information_schema.VIEWS.TABLE_SCHEMA in (?) order by information_schema.VIEWS.TABLE_SCHEMA, information_schema.VIEWS.TABLE_NAME");
|
||||
M_SOURCES.put(MYSQL, "select information_schema.VIEWS.TABLE_CATALOG, information_schema.VIEWS.TABLE_SCHEMA, information_schema.VIEWS.TABLE_NAME, information_schema.VIEWS.VIEW_DEFINITION from information_schema.VIEWS where information_schema.VIEWS.TABLE_SCHEMA in (?) order by information_schema.VIEWS.TABLE_SCHEMA, information_schema.VIEWS.TABLE_NAME");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user