You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/02/02 10:27:51 UTC

incubator-ignite git commit: # IGNITE-32: Oracle dialect: support for views.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-32 091f5c0a8 -> 6706dbd8b


# IGNITE-32: Oracle dialect: support for views.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6706dbd8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6706dbd8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6706dbd8

Branch: refs/heads/ignite-32
Commit: 6706dbd8b338d72f5cc223c33432116787c3235b
Parents: 091f5c0
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Feb 2 16:27:57 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 2 16:27:57 2015 +0700

----------------------------------------------------------------------
 .../parser/dialect/OracleMetadataDialect.java   | 32 +++++++++++---------
 1 file changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6706dbd8/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
index 304c911..fe8db43 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
@@ -36,10 +36,11 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
         "  (a.table_name = b.table_name AND a.table_owner = b.table_owner AND a.index_name  = b.index_name)";
 
     /** SQL to get columns metadata. */
-    private static final String SQL_COLUMNS = "SELECT owner, table_name, column_name, nullable, data_type" +
-        " FROM all_tab_columns" +
-        " WHERE owner = '%s'" +
-        " ORDER BY owner, table_name, column_id";
+    private static final String SQL_COLUMNS = "SELECT a.owner, a.table_name, a.column_name, a.nullable, a.data_type" +
+        " FROM all_tab_columns a" +
+        " %s" +
+        " WHERE a.owner = '%s'" +
+        " ORDER BY a.owner, a.table_name, a.column_id";
 
     /**
      * @param type Column type from Oracle database.
@@ -101,7 +102,10 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
         try (Statement stmt = conn.createStatement()) {
             Collection<DbColumn> cols = new ArrayList<>();
 
-            try (ResultSet colsRs = stmt.executeQuery(String.format(SQL_COLUMNS, "TEST"))) {
+            String sql = String.format(SQL_COLUMNS,
+                tblsOnly ? "INNER JOIN all_tables b on a.table_name = b.table_name" : "", "TEST");
+
+            try (ResultSet colsRs = stmt.executeQuery(sql)) {
                 String prevSchema = "";
                 String prevTbl = "";
 
@@ -114,22 +118,20 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
                         prevTbl = tbl;
                     }
 
-                    if (schema.equals(prevSchema) && tbl.equals(prevTbl)) {
-                        cols.add(new DbColumn(colsRs.getString("COLUMN_NAME"),
-                            decodeType(colsRs.getString("DATA_TYPE")),
-                            false,
-                            decodeNullable(colsRs.getString("NULLABLE"))
-                        ));
-                    }
-                    else {
+                    if (!schema.equals(prevSchema) || !tbl.equals(prevTbl)) {
                         tbls.add(new DbTable(prevSchema, prevTbl, cols, Collections.<String>emptySet(),
                             Collections.<String>emptySet(), null));
 
-                        cols = new ArrayList<>();
-
                         prevSchema = schema;
                         prevTbl = tbl;
+
+                        cols = new ArrayList<>();
                     }
+                    cols.add(new DbColumn(colsRs.getString("COLUMN_NAME"),
+                        decodeType(colsRs.getString("DATA_TYPE")),
+                        false,
+                        decodeNullable(colsRs.getString("NULLABLE"))
+                    ));
                 }
 
                 if (!cols.isEmpty())