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