You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2023/09/28 19:44:17 UTC
[incubator-baremaps] 16/35: Replace ANY by IN in delete query
This is an automated email from the ASF dual-hosted git repository.
bchapuis pushed a commit to branch 745-daylight
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit 17578ec270c4d2918efead7c50e370fd24bca45b
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Tue Aug 29 08:16:34 2023 +0200
Replace ANY by IN in delete query
---
.../openstreetmap/postgres/PostgresNodeRepository.java | 2 +-
.../openstreetmap/postgres/PostgresRelationRepository.java | 11 +++++------
.../openstreetmap/postgres/PostgresWayRepository.java | 11 +++++------
3 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresNodeRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresNodeRepository.java
index 27ecdc2f..59ca5a02 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresNodeRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresNodeRepository.java
@@ -121,7 +121,7 @@ public class PostgresNodeRepository implements NodeRepository {
tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
longitudeColumn, latitudeColumn, geometryColumn);
this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", tableName, idColumn);
- this.deleteIn = String.format("DELETE FROM %1$s WHERE %2$s = ANY (?)", tableName, idColumn);
+ this.deleteIn = String.format("DELETE FROM %1$s WHERE %2$s IN (?)", tableName, idColumn);
this.copy = String.format(
"COPY %1$s (%2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s) FROM STDIN BINARY",
tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresRelationRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresRelationRepository.java
index 6211f091..edbaef23 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresRelationRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresRelationRepository.java
@@ -53,6 +53,8 @@ public class PostgresRelationRepository implements RelationRepository {
private final String delete;
+ private final String deleteIn;
+
private final String copy;
/**
@@ -125,6 +127,7 @@ public class PostgresRelationRepository implements RelationRepository {
%11$s = excluded.%11$s""", tableName, idColumn, versionColumn, uidColumn, timestampColumn,
changesetColumn, tagsColumn, memberRefs, memberTypes, memberRoles, geometryColumn);
this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", tableName, idColumn);
+ this.deleteIn = String.format("DELETE FROM %1$s WHERE %2$s IN (?)", tableName, idColumn);
this.copy = String.format(
"COPY %1$s (%2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s, %11$s) FROM STDIN BINARY",
tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
@@ -254,12 +257,8 @@ public class PostgresRelationRepository implements RelationRepository {
return;
}
try (Connection connection = dataSource.getConnection();
- PreparedStatement statement = connection.prepareStatement(delete)) {
- for (Long key : keys) {
- statement.clearParameters();
- statement.setObject(1, key);
- statement.addBatch();
- }
+ PreparedStatement statement = connection.prepareStatement(deleteIn)) {
+ statement.setArray(1, connection.createArrayOf("int8", keys.toArray()));
statement.executeBatch();
} catch (SQLException e) {
throw new RepositoryException(e);
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresWayRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresWayRepository.java
index cb419700..72eab84e 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresWayRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresWayRepository.java
@@ -57,6 +57,8 @@ public class PostgresWayRepository implements WayRepository {
private final String delete;
+ private final String deleteIn;
+
private final String copy;
/**
@@ -122,6 +124,7 @@ public class PostgresWayRepository implements WayRepository {
%9$s = excluded.%9$s""", tableName, idColumn, versionColumn, uidColumn, timestampColumn,
changesetColumn, tagsColumn, nodesColumn, geometryColumn);
this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", tableName, idColumn);
+ this.deleteIn = String.format("DELETE FROM %1$s WHERE %2$s IN (?)", tableName, idColumn);
this.copy = String.format(
"COPY %1$s (%2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s) FROM STDIN BINARY", tableName,
idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
@@ -251,12 +254,8 @@ public class PostgresWayRepository implements WayRepository {
return;
}
try (Connection connection = dataSource.getConnection();
- PreparedStatement statement = connection.prepareStatement(delete)) {
- for (Long key : keys) {
- statement.clearParameters();
- statement.setObject(1, key);
- statement.execute();
- }
+ PreparedStatement statement = connection.prepareStatement(deleteIn)) {
+ statement.setArray(1, connection.createArrayOf("int8", keys.toArray()));
statement.executeBatch();
} catch (SQLException e) {
throw new RepositoryException(e);