From 02cab8ed7a248f2534855c4ccb334f4363ccc919 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Mon, 30 Dec 2013 00:27:12 +0000 Subject: [PATCH] 0001507: API Improvement - Added getTableTypes() to IDdlReader --- .../org/jumpmind/db/platform/IDdlReader.java | 2 ++ .../db/platform/sqlite/SqliteDdlReader.java | 4 ++++ .../db/platform/AbstractJdbcDdlReader.java | 20 +++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java index 2984d86abc..8e82a67c13 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDdlReader.java @@ -32,6 +32,8 @@ public interface IDdlReader { public Table readTable(String catalog, String schema, String tableName); + public List getTableTypes(); + public List getCatalogNames(); public List getSchemaNames(String catalog); diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java index 770144b5ec..e01a3f7a70 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDdlReader.java @@ -131,6 +131,10 @@ public List getSchemaNames(String catalog) { return new ArrayList(0); } + public List getTableTypes() { + return new ArrayList(0); + } + public List getColumnNames(String catalog, String schema, String tableName) { return new ArrayList(0); } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java index be4c9e7b11..702324b500 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/AbstractJdbcDdlReader.java @@ -1296,6 +1296,26 @@ protected String unescape(String text, String unescaped, String escaped) { } return result; } + + public List getTableTypes() { + JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate(); + return sqlTemplate.execute(new IConnectionCallback>() { + public List execute(Connection connection) throws SQLException { + ArrayList types = new ArrayList(); + DatabaseMetaData meta = connection.getMetaData(); + ResultSet rs = null; + try { + rs = meta.getTableTypes(); + while (rs.next()) { + types.add(rs.getString(1)); + } + return types; + } finally { + JdbcSqlTemplate.close(rs); + } + } + }); + } public List getCatalogNames() { JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplate();