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

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit d72d2efd1f07933d961d74edcd2d1735c0061a70
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Thu Aug 15 11:18:01 2024 +0200

    Add a constant for the "INSERT INTO" string, for the same reason as 
"SELECT":
    make a little bit easier to identify where we build a SQL insert statement.
    We do not use it for `toString()` implementations, as they are not really 
SQL.
---
 .../main/org/apache/sis/metadata/sql/MetadataWriter.java           | 4 ++--
 .../main/org/apache/sis/metadata/sql/privy/SQLBuilder.java         | 7 +++++++
 .../main/org/apache/sis/metadata/sql/privy/ScriptRunner.java       | 2 +-
 .../main/org/apache/sis/storage/sql/postgis/ExtentEstimator.java   | 2 +-
 .../sis/referencing/factory/sql/epsg/DataScriptFormatter.java      | 3 ++-
 5 files changed, 13 insertions(+), 5 deletions(-)

diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/MetadataWriter.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/MetadataWriter.java
index 54a7bc5a76..7e8f29807e 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/MetadataWriter.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/MetadataWriter.java
@@ -511,7 +511,7 @@ public class MetadataWriter extends MetadataSource {
         /*
          * Create the SQL statement which will insert the data.
          */
-        helper.clear().append("INSERT INTO ").appendIdentifier(schema(), 
table).append(" (").appendIdentifier(ID_COLUMN);
+        helper.clear().append(SQLBuilder.INSERT).appendIdentifier(schema(), 
table).append(" (").appendIdentifier(ID_COLUMN);
         for (final String column : asSingletons.keySet()) {
             helper.append(", ").appendIdentifier(column);
         }
@@ -665,7 +665,7 @@ public class MetadataWriter extends MetadataSource {
             exists = rs.next();
         }
         if (!exists) {
-            final String sql = helper().clear().append("INSERT INTO 
").appendIdentifier(schema(), table)
+            final String sql = 
helper().clear().append(SQLBuilder.INSERT).appendIdentifier(schema(), table)
                     .append(" (").appendIdentifier(CODE_COLUMN).append(") 
VALUES (").appendValue(identifier)
                     .append(')').toString();
             if (stmt.executeUpdate(sql) != 1) {
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/SQLBuilder.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/SQLBuilder.java
index 50bc4fa242..e3b3dac0a7 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/SQLBuilder.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/SQLBuilder.java
@@ -36,6 +36,13 @@ public class SQLBuilder extends Syntax {
      */
     public static final String SELECT = "SELECT ";
 
+    /**
+     * The {@value} keyword (with a trailing space).
+     * Defined as a convenience for identifying locations in the Java code
+     * where we start to write a SQL statement using a builder.
+     */
+    public static final String INSERT = "INSERT INTO ";
+
     /**
      * The buffer where the SQL query is created.
      */
diff --git 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/ScriptRunner.java
 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/ScriptRunner.java
index 94b5216564..486268f6d6 100644
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/ScriptRunner.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/privy/ScriptRunner.java
@@ -742,7 +742,7 @@ parseLine:  while (pos < length) {
          * The scripts usually do not contain any SELECT statement. One 
exception is the creation
          * of geometry columns in a PostGIS database, which use "SELECT 
AddGeometryColumn(…)".
          */
-        if (subSQL.startsWith("SELECT ")) {
+        if (subSQL.startsWith(SQLBuilder.SELECT)) {
             statement.executeQuery(subSQL).close();
         } else {
             if (maxRowsPerInsert != Integer.MAX_VALUE && 
subSQL.startsWith("INSERT INTO")) {
diff --git 
a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/ExtentEstimator.java
 
b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/ExtentEstimator.java
index ee88f50814..97367f75a6 100644
--- 
a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/ExtentEstimator.java
+++ 
b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/postgis/ExtentEstimator.java
@@ -120,7 +120,7 @@ final class ExtentEstimator {
     private void query(final Statement statement) throws SQLException {
         for (final Column column : columns) {
             if (column.getGeometryType().isPresent()) {
-                database.appendFunctionCall(builder.append("SELECT "), 
"ST_EstimatedExtent");
+                database.appendFunctionCall(builder.append(SQLBuilder.SELECT), 
"ST_EstimatedExtent");
                 builder.append('(');
                 if (table.schema != null) {
                     builder.appendValue(table.schema).append(", ");
diff --git 
a/optional/src/org.apache.sis.referencing.epsg/test/org/apache/sis/referencing/factory/sql/epsg/DataScriptFormatter.java
 
b/optional/src/org.apache.sis.referencing.epsg/test/org/apache/sis/referencing/factory/sql/epsg/DataScriptFormatter.java
index a5bb34d6b7..d09221a312 100644
--- 
a/optional/src/org.apache.sis.referencing.epsg/test/org/apache/sis/referencing/factory/sql/epsg/DataScriptFormatter.java
+++ 
b/optional/src/org.apache.sis.referencing.epsg/test/org/apache/sis/referencing/factory/sql/epsg/DataScriptFormatter.java
@@ -34,6 +34,7 @@ import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.Workaround;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.privy.URLs;
+import org.apache.sis.metadata.sql.privy.SQLBuilder;
 import org.apache.sis.metadata.sql.privy.ScriptRunner;
 
 // Test dependencies
@@ -228,7 +229,7 @@ public final class DataScriptFormatter extends ScriptRunner 
{
         }
         if (CharSequences.regionMatches(sql, ++lower, oldValue)) {
             final int s = CharSequences.skipLeadingWhitespaces(sql, 0, lower);
-            if (CharSequences.regionMatches(sql, s, "INSERT INTO " + table + " 
VALUES")) {
+            if (CharSequences.regionMatches(sql, s, SQLBuilder.INSERT + table 
+ " VALUES")) {
                 if (--upper - lower != oldValue.length()) {
                     throw new AssertionError("Unexpected length");
                 }

Reply via email to