From cadd42543100efd46d5f2f384826fea50055376d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 9 May 2013 14:20:23 +0200 Subject: [PATCH] [#2448] DSLContext.meta() returns Table objects for Oracle SYNONYMS, without providing columns --- jOOQ/src/main/java/org/jooq/impl/MetaImpl.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 6bb08f6ec8..c69195a7f5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -79,7 +79,7 @@ class MetaImpl implements Meta, Serializable { */ private static final long serialVersionUID = 3582980783173033809L; - private final DSLContext create; + private final DSLContext create; private final Configuration configuration; private transient volatile DatabaseMetaData meta; @@ -209,10 +209,18 @@ class MetaImpl implements Meta, Serializable { try { String[] types = null; - // [#2323] SQLite JDBC drivers have a bug. They return other - // object types, too: https://bitbucket.org/xerial/sqlite-jdbc/issue/68 - if (configuration.dialect() == SQLITE) { - types = new String[] { "TABLE", "VIEW" }; + switch (configuration.dialect()) { + + // [#2323] SQLite JDBC drivers have a bug. They return other + // object types, too: https://bitbucket.org/xerial/sqlite-jdbc/issue/68 + case SQLITE: + types = new String[] { "TABLE", "VIEW" }; + break; + + // [#2448] Avoid returning Oracle table SYNONYMs + case ORACLE: + types = new String[] { "TABLE", "VIEW", "MATERIALIZED VIEW" }; + break; } List> result = new ArrayList>();