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)) {

Reply via email to