This is an automated email from the ASF dual-hosted git repository. abulatski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit e1cbbb734497d5d56ea3c7ee8907c12151030b4f Author: Arseni Bulatski <ancars...@gmail.com> AuthorDate: Mon Sep 2 16:29:02 2019 +0300 CAY-2612 Modeler: add lazy-loading to dbImport tab --- .../org/apache/cayenne/dbsync/reverse/dbload/EntityLoader.java | 6 ++---- .../org/apache/cayenne/dbsync/reverse/dbload/ExportedKey.java | 8 +++----- .../apache/cayenne/dbsync/reverse/dbload/ExportedKeyLoader.java | 4 +--- .../org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyTest.java | 4 ++-- .../cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java | 2 +- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/EntityLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/EntityLoader.java index 0fddbba..f878358 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/EntityLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/EntityLoader.java @@ -65,9 +65,7 @@ class EntityLoader extends PerCatalogAndSchemaLoader { return; } - // check catalogName for null was added because postgres - // for some reasons returns null for table's catalog - if (!(catalog.name == null || catalogName == null || catalog.name.equals(catalogName)) + if (!(catalog.name == null || catalog.name.equals(catalogName)) || !(schema.name == null || schema.name.equals(schemaName))) { LOGGER.error(catalogName + "." + schema + "." + schemaName + " wrongly loaded for catalog/schema : " + catalog.name + "." + schema.name); @@ -75,7 +73,7 @@ class EntityLoader extends PerCatalogAndSchemaLoader { } DetectedDbEntity table = new DetectedDbEntity(name); - table.setCatalog(catalogName != null ? catalogName : catalog.name); + table.setCatalog(catalogName); table.setSchema(schemaName); table.setType(type); addDbEntityToMap(table, map); diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKey.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKey.java index 337acbf..fe5342f 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKey.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKey.java @@ -46,23 +46,21 @@ public class ExportedKey implements Comparable { * * @param rs ResultSet pointing to a exported key, fetched using * DataBaseMetaData.getExportedKeys(...) - * @param catalogName use only like workaround for postgres. Postgres metadata - * returns null for getting catalogs. */ - ExportedKey(ResultSet rs, String catalogName) throws SQLException { + ExportedKey(ResultSet rs) throws SQLException { String pkCatalog = rs.getString("PKTABLE_CAT"); String pkSchema = rs.getString("PKTABLE_SCHEM"); String pkTable = rs.getString("PKTABLE_NAME"); String pkColumn = rs.getString("PKCOLUMN_NAME"); String pkName = rs.getString("PK_NAME"); - pk = new KeyData(pkCatalog != null ? pkCatalog : catalogName, pkSchema, pkTable, pkColumn, pkName); + pk = new KeyData(pkCatalog, pkSchema, pkTable, pkColumn, pkName); String fkCatalog = rs.getString("FKTABLE_CAT"); String fkSchema = rs.getString("FKTABLE_SCHEM"); String fkTable = rs.getString("FKTABLE_NAME"); String fkColumn = rs.getString("FKCOLUMN_NAME"); String fkName = rs.getString("FK_NAME"); - fk = new KeyData(fkCatalog != null ? fkCatalog : catalogName, fkSchema, fkTable, fkColumn, fkName); + fk = new KeyData(fkCatalog, fkSchema, fkTable, fkColumn, fkName); this.keySeq = rs.getShort("KEY_SEQ"); } diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyLoader.java index a868cd8..1b03eed 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyLoader.java @@ -55,9 +55,7 @@ class ExportedKeyLoader extends PerEntityLoader { @Override void processResultSet(DbEntity dbEntity, DbLoadDataStore map, ResultSet rs) throws SQLException { - // dbEntity.getCatalog() is workaround for postrgres. - // Postgres metadata returns null for getCatalog method. - ExportedKey key = new ExportedKey(rs, dbEntity.getCatalog()); + ExportedKey key = new ExportedKey(rs); DbEntity pkEntity = map.getDbEntity(key.getPk().getTable()); if (!key.getPk().validateEntity(pkEntity)) { diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyTest.java index 9520aba..93b897d 100644 --- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyTest.java +++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/ExportedKeyTest.java @@ -62,7 +62,7 @@ public class ExportedKeyTest { when(rs1.getShort("KEY_SEQ")).thenReturn((short) 1); - ExportedKey keyData1 = new ExportedKey(rs1, "cat"); + ExportedKey keyData1 = new ExportedKey(rs1); ResultSet rs2 = mock(ResultSet.class); when(rs2.getString("PKTABLE_CAT")).thenReturn("PKCatalog"); @@ -79,7 +79,7 @@ public class ExportedKeyTest { when(rs2.getShort("KEY_SEQ")).thenReturn((short)1); - ExportedKey keyData2 = new ExportedKey(rs2, "cat"); + ExportedKey keyData2 = new ExportedKey(rs2); Assert.assertTrue(keyData1.equals(keyData2)); Assert.assertTrue(keyData2.equals(keyData1)); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java index 90166c3..91aa219 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java @@ -62,7 +62,7 @@ public class DatabaseSchemaLoader { try (ResultSet rsCatalog = connection.getMetaData().getCatalogs()) { boolean hasCatalogs = false; List<String> systemCatalogs = dbAdapter.getSystemCatalogs(); - while (rsCatalog.next()) { + while (rsCatalog.next() && dbAdapter.supportsCatalogsOnReverseEngineering()) { hasCatalogs = true; String catalog = rsCatalog.getString("TABLE_CAT"); if(!systemCatalogs.contains(catalog)) {