From 633ec76538101d97d7599fcfc83f6be42194ff2c Mon Sep 17 00:00:00 2001 From: Maxim Grischenko Date: Tue, 19 Sep 2023 12:22:29 +0200 Subject: [PATCH] fix keyword-like columns in db must be quoted for new versions of liquibase and h2 --- .../business/impl/e2e/MultiDFSFunctionalityTest.java | 1 - .../datasafe/runtimedelegate/RuntimeDelegateTest.java | 1 - datasafe-storage/datasafe-storage-impl-db/pom.xml | 6 ------ .../storage/impl/db/DatabaseStorageService.java | 10 +++++----- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java index e653f992e..a4e5830b8 100644 --- a/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java +++ b/datasafe-business/src/test/java/de/adorsys/datasafe/business/impl/e2e/MultiDFSFunctionalityTest.java @@ -43,7 +43,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; diff --git a/datasafe-runtime-delegate/src/test/java/de/adorsys/datasafe/runtimedelegate/RuntimeDelegateTest.java b/datasafe-runtime-delegate/src/test/java/de/adorsys/datasafe/runtimedelegate/RuntimeDelegateTest.java index 07fee3ac3..9c9a85367 100644 --- a/datasafe-runtime-delegate/src/test/java/de/adorsys/datasafe/runtimedelegate/RuntimeDelegateTest.java +++ b/datasafe-runtime-delegate/src/test/java/de/adorsys/datasafe/runtimedelegate/RuntimeDelegateTest.java @@ -2,7 +2,6 @@ import com.google.testing.compile.Compilation; import com.google.testing.compile.JavaFileObjects; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; diff --git a/datasafe-storage/datasafe-storage-impl-db/pom.xml b/datasafe-storage/datasafe-storage-impl-db/pom.xml index bf650f54f..e11d5ec26 100644 --- a/datasafe-storage/datasafe-storage-impl-db/pom.xml +++ b/datasafe-storage/datasafe-storage-impl-db/pom.xml @@ -47,12 +47,6 @@ org.liquibase liquibase-core - - - ch.qos.logback - logback-classic - - diff --git a/datasafe-storage/datasafe-storage-impl-db/src/main/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageService.java b/datasafe-storage/datasafe-storage-impl-db/src/main/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageService.java index bb2d6de9b..45df5173e 100644 --- a/datasafe-storage/datasafe-storage-impl-db/src/main/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageService.java +++ b/datasafe-storage/datasafe-storage-impl-db/src/main/java/de/adorsys/datasafe/storage/impl/db/DatabaseStorageService.java @@ -56,7 +56,7 @@ public class DatabaseStorageService implements StorageService { @Override public boolean objectExists(AbsoluteLocation location) { ParsedLocation parsed = new ParsedLocation(location, allowedTables); - String sql = "SELECT COUNT(*) FROM " + parsed.getTableName() + " WHERE `key` = ?"; + String sql = "SELECT COUNT(*) FROM " + parsed.getTableName() + " WHERE \"key\" = ?"; return 0 != conn.jdbcTemplate(location).queryForObject(sql, Integer.class, parsed.getPathWithUser()); } @@ -64,7 +64,7 @@ public boolean objectExists(AbsoluteLocation location) { @Override public Stream> list(AbsoluteLocation location) { ParsedLocation parsed = new ParsedLocation(location, allowedTables); - String sql = "SELECT `key`,`last_modified` FROM " + parsed.getTableName() + " WHERE `key` LIKE '" + String sql = "SELECT \"key\",`last_modified` FROM " + parsed.getTableName() + " WHERE \"key\" LIKE '" + parsed.getPathWithUser() + "%'"; List> keys = conn.jdbcTemplate(location).queryForList(sql); @@ -80,7 +80,7 @@ public Stream> list(AbsoluteLocation location @Override public InputStream read(AbsoluteLocation location) { ParsedLocation parsed = new ParsedLocation(location, allowedTables); - final String sql = "SELECT value FROM " + parsed.getTableName() + " WHERE `key` = ?"; + final String sql = "SELECT \"value\" FROM " + parsed.getTableName() + " WHERE \"key\" = ?"; RowMapper rowMapper = (rs, i) -> rs.getClob("value").getAsciiStream(); List values = conn.jdbcTemplate(location).query( sql, @@ -98,7 +98,7 @@ public InputStream read(AbsoluteLocation location) { @Override public void remove(AbsoluteLocation location) { ParsedLocation parsed = new ParsedLocation(location, allowedTables); - String sql = "DELETE FROM " + parsed.getTableName() + " WHERE `key` = ?"; + String sql = "DELETE FROM " + parsed.getTableName() + " WHERE \"key\" = ?"; conn.jdbcTemplate(location).update(sql, parsed.getPathWithUser()); } @@ -138,7 +138,7 @@ private static final class PutBlobOnClose extends ByteArrayOutputStream { @Override public void close() throws IOException { - String sql = "INSERT INTO " + tableName + " (`key`, `value`) VALUES(?, ?)"; + String sql = "INSERT INTO " + tableName + " (\"key\", \"value\") VALUES(?, ?)"; KeyHolder holder = new GeneratedKeyHolder(); jdbcTemplate.update(writeData(sql), holder); super.close();