You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by yz...@apache.org on 2015/03/05 10:05:55 UTC
[55/58] [abbrv] incubator-ignite git commit: # sprint-2 Fixed load
schemas and tables for MySql.
# sprint-2 Fixed load schemas and tables for MySql.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/49af1cf2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/49af1cf2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/49af1cf2
Branch: refs/heads/ignite-313
Commit: 49af1cf28a0c15d208375f821c2c262794704c9b
Parents: e4d0476
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Mar 5 15:40:09 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Mar 5 15:40:09 2015 +0700
----------------------------------------------------------------------
.../parser/dialect/JdbcMetadataDialect.java | 95 ++++++++++----------
1 file changed, 46 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/49af1cf2/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
index 38b095a..ab65e7a 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
@@ -32,11 +32,11 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
/** */
private static final String[] TABLES_AND_VIEWS = {"TABLE", "VIEW"};
- /** Schema name index. */
- private static final int SCHEMA_NAME_IDX = 1;
-
/** Schema catalog index. */
- private static final int SCHEMA_CATALOG_IDX = 2;
+ private static final int TBL_CATALOG_IDX = 1;
+
+ /** Schema name index. */
+ private static final int TBL_SCHEMA_IDX = 2;
/** Table name index. */
private static final int TBL_NAME_IDX = 3;
@@ -70,72 +70,69 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
Collection<DbTable> tbls = new ArrayList<>();
- try (ResultSet schemasRs = dbMeta.getSchemas()) {
- while (schemasRs.next()) {
- String schema = schemasRs.getString(SCHEMA_NAME_IDX);
+ try (ResultSet tblsRs = dbMeta.getTables(null, null, "%",
+ tblsOnly ? TABLES_ONLY : TABLES_AND_VIEWS)) {
+ while (tblsRs.next()) {
+ String tblCatalog = tblsRs.getString(TBL_CATALOG_IDX);
+ String tblSchema = tblsRs.getString(TBL_SCHEMA_IDX);
+ String tblName = tblsRs.getString(TBL_NAME_IDX);
+
+ // In case of MySql we should use catalog.
+ String schema = tblSchema != null ? tblSchema : tblCatalog;
// Skip system schemas.
if (sys.contains(schema))
continue;
- String catalog = schemasRs.getString(SCHEMA_CATALOG_IDX);
-
- try (ResultSet tblsRs = dbMeta.getTables(catalog, schema, "%",
- tblsOnly ? TABLES_ONLY : TABLES_AND_VIEWS)) {
- while (tblsRs.next()) {
- String tblName = tblsRs.getString(TBL_NAME_IDX);
-
- Set<String> pkCols = new HashSet<>();
-
- try (ResultSet pkRs = dbMeta.getPrimaryKeys(catalog, schema, tblName)) {
- while (pkRs.next())
- pkCols.add(pkRs.getString(PK_COL_NAME_IDX));
- }
+ Set<String> pkCols = new HashSet<>();
- List<DbColumn> cols = new ArrayList<>();
+ try (ResultSet pkRs = dbMeta.getPrimaryKeys(tblCatalog, tblSchema, tblName)) {
+ while (pkRs.next())
+ pkCols.add(pkRs.getString(PK_COL_NAME_IDX));
+ }
- try (ResultSet colsRs = dbMeta.getColumns(catalog, schema, tblName, null)) {
- while (colsRs.next()) {
- String colName = colsRs.getString(COL_NAME_IDX);
+ List<DbColumn> cols = new ArrayList<>();
- cols.add(new DbColumn(
- colName,
- colsRs.getInt(COL_DATA_TYPE_IDX),
- pkCols.contains(colName),
- colsRs.getInt(COL_NULLABLE_IDX) == DatabaseMetaData.columnNullable));
- }
- }
+ try (ResultSet colsRs = dbMeta.getColumns(tblCatalog, tblSchema, tblName, null)) {
+ while (colsRs.next()) {
+ String colName = colsRs.getString(COL_NAME_IDX);
- Map<String, Map<String, Boolean>> idxs = new LinkedHashMap<>();
+ cols.add(new DbColumn(
+ colName,
+ colsRs.getInt(COL_DATA_TYPE_IDX),
+ pkCols.contains(colName),
+ colsRs.getInt(COL_NULLABLE_IDX) == DatabaseMetaData.columnNullable));
+ }
+ }
- try (ResultSet idxRs = dbMeta.getIndexInfo(catalog, schema, tblName, false, true)) {
- while (idxRs.next()) {
- String idxName = idxRs.getString(IDX_NAME_IDX);
+ Map<String, Map<String, Boolean>> idxs = new LinkedHashMap<>();
- String colName = idxRs.getString(IDX_COL_NAME_IDX);
+ try (ResultSet idxRs = dbMeta.getIndexInfo(tblCatalog, tblSchema, tblName, false, true)) {
+ while (idxRs.next()) {
+ String idxName = idxRs.getString(IDX_NAME_IDX);
- if (idxName == null || colName == null)
- continue;
+ String colName = idxRs.getString(IDX_COL_NAME_IDX);
- Map<String, Boolean> idx = idxs.get(idxName);
+ if (idxName == null || colName == null)
+ continue;
- if (idx == null) {
- idx = new LinkedHashMap<>();
+ Map<String, Boolean> idx = idxs.get(idxName);
- idxs.put(idxName, idx);
- }
+ if (idx == null) {
+ idx = new LinkedHashMap<>();
- String askOrDesc = idxRs.getString(IDX_ASC_OR_DESC_IDX);
+ idxs.put(idxName, idx);
+ }
- Boolean desc = askOrDesc != null ? "D".equals(askOrDesc) : null;
+ String askOrDesc = idxRs.getString(IDX_ASC_OR_DESC_IDX);
- idx.put(colName, desc);
- }
- }
+ Boolean desc = askOrDesc != null ? "D".equals(askOrDesc) : null;
- tbls.add(table(schema, tblName, cols, idxs));
+ idx.put(colName, desc);
}
}
+
+ tbls.add(table(schema, tblName, cols, idxs));
}
}