From ce6d4ca20f76b741db44f78df80a542611586a66 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 6 Feb 2020 18:06:32 +0100 Subject: [PATCH] [jOOQ/jOOQ#9800] Make TableOptions available through org.jooq.Meta --- .../src/main/java/org/jooq/impl/MetaImpl.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 8716b09d76..da3a9be7a4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -126,6 +126,8 @@ import org.jooq.Sequence; import org.jooq.SortField; import org.jooq.Table; import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.TableOptions.TableType; import org.jooq.UniqueKey; import org.jooq.exception.DataAccessException; import org.jooq.exception.DataTypeException; @@ -418,8 +420,26 @@ final class MetaImpl extends AbstractMeta { String catalog = table.get(0, String.class); String schema = table.get(1, String.class); String name = table.get(2, String.class); + String type = table.get(3, String.class); - result.add(new MetaTable(name, this, getColumns(catalog, schema, name))); + // "TABLE","VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY","LOCAL TEMPORARY", "ALIAS", "SYNONYM". + TableType tableType = + "VIEW".equals(type) + ? TableType.VIEW + : "SYSTEM_VIEW".equals(type) + ? TableType.VIEW + : "GLOBAL TEMPORARY".equals(type) + ? TableType.TEMPORARY + : "LOCAL TEMPORARY".equals(type) + ? TableType.TEMPORARY + : "TEMPORARY".equals(type) + ? TableType.TEMPORARY + : "MATERIALIZED VIEW".equals(type) + ? TableType.MATERIALIZED_VIEW + : TableType.TABLE; + + + result.add(new MetaTable(name, this, getColumns(catalog, schema, name), tableType)); // TODO: Find a more efficient way to do this // Result pkColumns = executor.fetch(meta().getPrimaryKeys(catalog, schema, name)) @@ -552,8 +572,8 @@ final class MetaImpl extends AbstractMeta { */ private static final long serialVersionUID = 4843841667753000233L; - MetaTable(String name, Schema schema, Result columns) { - super(name, schema); + MetaTable(String name, Schema schema, Result columns, TableType tableType) { + super(DSL.name(name), schema, null, null, null, null, null, TableOptions.of(tableType)); // Possible scenarios for columns being null: // - The "table" is in fact a SYNONYM