This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new bf0d1c551 Rethinking QuotingStrategy to remove dependency on the ORM 
model...
bf0d1c551 is described below

commit bf0d1c5510ddfcad507823c9dcc66cd9b38d8a5a
Author: Andrus Adamchik <[email protected]>
AuthorDate: Thu Jun 25 17:10:27 2026 -0400

    Rethinking QuotingStrategy to remove dependency on the ORM model...
    
    cleanup
---
 .../org/apache/cayenne/dba/db2/DB2PkGenerator.java |  8 ++--
 .../apache/cayenne/dba/derby/DerbyPkGenerator.java |  8 ++--
 .../org/apache/cayenne/dba/h2/H2PkGenerator.java   |  4 +-
 .../cayenne/dba/oracle/OraclePkGenerator.java      | 46 ++++++----------------
 .../cayenne/dba/postgres/PostgresPkGenerator.java  |  3 +-
 5 files changed, 25 insertions(+), 44 deletions(-)

diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2PkGenerator.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2PkGenerator.java
index 9fe605b27..2a7c5f2c2 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2PkGenerator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/db2/DB2PkGenerator.java
@@ -63,12 +63,14 @@ public class DB2PkGenerator extends OraclePkGenerator {
 
     @Override
     protected String dropSequenceString(DbEntity entity) {
-        return "DROP SEQUENCE " + sequenceName(entity) + " RESTRICT ";
+        return "DROP SEQUENCE " + 
adapter.getQuotingStrategy(entity).quotedFQN(entity.getCatalog(), 
entity.getSchema(),
+                sequenceName(entity)) + " RESTRICT ";
     }
 
     @Override
     protected String createSequenceString(DbEntity entity) {
-        return "CREATE SEQUENCE " + sequenceName(entity) + " AS BIGINT START 
WITH " + pkStartValue +
-                " INCREMENT BY " + getPkCacheSize() + " NO MAXVALUE NO CYCLE 
CACHE " + getPkCacheSize();
+        return "CREATE SEQUENCE " + 
adapter.getQuotingStrategy(entity).quotedFQN(entity.getCatalog(),
+                entity.getSchema(), sequenceName(entity)) + " AS BIGINT START 
WITH "
+                + pkStartValue + " INCREMENT BY " + getPkCacheSize() + " NO 
MAXVALUE NO CYCLE CACHE " + getPkCacheSize();
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
index 70ec9a2ee..b9e8bd5e1 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
@@ -59,12 +59,14 @@ public class DerbyPkGenerator extends OraclePkGenerator {
 
     @Override
     protected String dropSequenceString(DbEntity entity) {
-        return "DROP SEQUENCE " + sequenceName(entity) + " RESTRICT";
+        return "DROP SEQUENCE " + 
adapter.getQuotingStrategy(entity).quotedFQN(entity.getCatalog(), 
entity.getSchema(),
+                sequenceName(entity)) + " RESTRICT";
     }
 
     @Override
     protected String createSequenceString(DbEntity entity) {
-        return "CREATE SEQUENCE " + sequenceName(entity) + " AS BIGINT START 
WITH " + pkStartValue +
-                " INCREMENT BY " + getPkCacheSize() + " NO MAXVALUE NO CYCLE";
+        return "CREATE SEQUENCE " + 
adapter.getQuotingStrategy(entity).quotedFQN(entity.getCatalog(),
+                entity.getSchema(), sequenceName(entity)) + " AS BIGINT START 
WITH "
+                + pkStartValue + " INCREMENT BY " + getPkCacheSize() + " NO 
MAXVALUE NO CYCLE";
     }
 }
diff --git a/cayenne/src/main/java/org/apache/cayenne/dba/h2/H2PkGenerator.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/h2/H2PkGenerator.java
index 664e22abe..5d3265c4a 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/h2/H2PkGenerator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/h2/H2PkGenerator.java
@@ -44,8 +44,8 @@ public class H2PkGenerator extends OraclePkGenerator {
 
     @Override
     protected String createSequenceString(DbEntity ent) {
-        return "CREATE SEQUENCE " + sequenceName(ent) + " START WITH " + 
pkStartValue + " INCREMENT BY "
-                + pkCacheSize(ent) + " CACHE 1";
+        return "CREATE SEQUENCE " + 
adapter.getQuotingStrategy(ent).quotedFQN(ent.getCatalog(), ent.getSchema(),
+                sequenceName(ent)) + " START WITH " + pkStartValue + " 
INCREMENT BY " + pkCacheSize(ent) + " CACHE 1";
     }
 
     @Override
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
index 11454c480..aee6bffa3 100644
--- a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
+++ b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OraclePkGenerator.java
@@ -21,7 +21,6 @@ package org.apache.cayenne.dba.oracle;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dba.JdbcPkGenerator;
 import org.apache.cayenne.map.DbEntity;
@@ -54,6 +53,7 @@ public class OraclePkGenerator extends JdbcPkGenerator {
 
     /**
      * Used by DI
+     *
      * @since 4.1
      */
     public OraclePkGenerator() {
@@ -99,17 +99,7 @@ public class OraclePkGenerator extends JdbcPkGenerator {
 
         // drop obsolete sequences
         for (DbEntity dbEntity : dbEntities) {
-            String name;
-            if (dbEntity.getDataMap() != null && 
dbEntity.getDataMap().isQuotingSQLIdentifiers()) {
-                // the comparison name must be unquoted; render the bare 
sequence name without
-                // catalog/schema, matching the legacy behavior
-                StringBuilder buf = new StringBuilder();
-                QuotingStrategy.NONE.appendFQN(buf, getSequencePrefix() + 
dbEntity.getName().toLowerCase());
-                name = stripSchemaName(buf.toString());
-            } else {
-                name = stripSchemaName(sequenceName(dbEntity, 
QuotingStrategy.NONE));
-            }
-            if (sequences.contains(name)) {
+            if (sequences.contains(sequenceName(dbEntity))) {
                 runUpdate(node, dropSequenceString(dbEntity));
             }
         }
@@ -129,7 +119,8 @@ public class OraclePkGenerator extends JdbcPkGenerator {
     }
 
     protected String createSequenceString(DbEntity ent) {
-        return "CREATE SEQUENCE " + sequenceName(ent) + " START WITH " + 
pkStartValue + " INCREMENT BY " + pkCacheSize(ent);
+        String seqFQN = 
adapter.getQuotingStrategy(ent).quotedFQN(ent.getCatalog(), ent.getSchema(), 
sequenceName(ent));
+        return "CREATE SEQUENCE " + seqFQN + " START WITH " + pkStartValue + " 
INCREMENT BY " + pkCacheSize(ent);
     }
 
     /**
@@ -137,7 +128,8 @@ public class OraclePkGenerator extends JdbcPkGenerator {
      * automatic primary key generation process for a specific DbEntity.
      */
     protected String dropSequenceString(DbEntity ent) {
-        return "DROP SEQUENCE " + sequenceName(ent);
+        String seqFQN = 
adapter.getQuotingStrategy(ent).quotedFQN(ent.getCatalog(), ent.getSchema(), 
sequenceName(ent));
+        return "DROP SEQUENCE " + seqFQN;
     }
 
     protected String selectNextValQuery(String pkGeneratingSequenceName) {
@@ -167,7 +159,8 @@ public class OraclePkGenerator extends JdbcPkGenerator {
                 && pkGenerator.getGeneratorName() != null) {
             pkGeneratingSequenceName = pkGenerator.getGeneratorName();
         } else {
-            pkGeneratingSequenceName = sequenceName(entity);
+            pkGeneratingSequenceName = 
adapter.getQuotingStrategy(entity).quotedFQN(entity.getCatalog(),
+                    entity.getSchema(), sequenceName(entity));
         }
 
         try (Connection con = node.getDataSource().getConnection()) {
@@ -200,29 +193,17 @@ public class OraclePkGenerator extends JdbcPkGenerator {
         }
     }
 
-    /**
-     * Returns expected primary key sequence name for a DbEntity.
-     */
     protected String sequenceName(DbEntity entity) {
-        return sequenceName(entity, adapter.getQuotingStrategy(entity));
-    }
-
-    /**
-     * Renders the sequence name for the entity using the provided quoting 
style.
-     */
-    private String sequenceName(DbEntity entity, QuotingStrategy quotes) {
 
         // use custom generator if possible
         DbKeyGenerator keyGenerator = entity.getPrimaryKeyGenerator();
-        if (keyGenerator != null && 
DbKeyGenerator.ORACLE_TYPE.equals(keyGenerator.getGeneratorType())
+        if (keyGenerator != null
+                && 
DbKeyGenerator.ORACLE_TYPE.equals(keyGenerator.getGeneratorType())
                 && keyGenerator.getGeneratorName() != null) {
 
             return keyGenerator.getGeneratorName().toLowerCase();
         } else {
-            String seqName = getSequencePrefix() + 
entity.getName().toLowerCase();
-            StringBuilder buf = new StringBuilder();
-            quotes.appendFQN(buf, entity.getCatalog(), entity.getSchema(), 
seqName);
-            return buf.toString();
+            return getSequencePrefix() + entity.getName().toLowerCase();
         }
     }
 
@@ -230,11 +211,6 @@ public class OraclePkGenerator extends JdbcPkGenerator {
         return _SEQUENCE_PREFIX;
     }
 
-    private String stripSchemaName(String sequenceName) {
-        int ind = sequenceName.indexOf('.');
-        return ind >= 0 ? sequenceName.substring(ind + 1) : sequenceName;
-    }
-
     /**
      * Fetches a list of existing sequences that might match Cayenne generated
      * ones.
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/postgres/PostgresPkGenerator.java
 
b/cayenne/src/main/java/org/apache/cayenne/dba/postgres/PostgresPkGenerator.java
index 76a34d1e2..c8b9fbbf9 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/dba/postgres/PostgresPkGenerator.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/dba/postgres/PostgresPkGenerator.java
@@ -45,7 +45,8 @@ public class PostgresPkGenerator extends OraclePkGenerator {
         // note that PostgreSQL 7.4 and newer supports INCREMENT BY and START 
WITH
         // however 7.3 doesn't like BY and WITH, so using older more neutral
         // syntax that works with all tested versions.
-        return "CREATE SEQUENCE " + sequenceName(ent) + " INCREMENT " + 
pkCacheSize(ent) + " START " + pkStartValue;
+        return "CREATE SEQUENCE " + 
adapter.getQuotingStrategy(ent).quotedFQN(ent.getCatalog(), ent.getSchema(),
+                sequenceName(ent)) + " INCREMENT " + pkCacheSize(ent) + " 
START " + pkStartValue;
     }
 
     @Override

Reply via email to