From bc7d355868e3a18a695c03ef98d3c726fc5bc037 Mon Sep 17 00:00:00 2001 From: Sun Yuhan Date: Tue, 10 Jun 2025 16:05:51 +0800 Subject: [PATCH 1/2] fix: Fixed GH-3492, Fixed the SQL error in the `isTableExists` method of `MariaDBSchemaValidator`. Signed-off-by: Sun Yuhan --- .../ai/vectorstore/mariadb/MariaDBSchemaValidator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java b/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java index cb82358955f..f2133e030ac 100644 --- a/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java +++ b/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java @@ -46,7 +46,7 @@ public MariaDBSchemaValidator(JdbcTemplate jdbcTemplate) { private boolean isTableExists(String schemaName, String tableName) { // schema and table are expected to be escaped String sql = String.format( - "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s", + "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'", (schemaName == null) ? "SCHEMA()" : schemaName, tableName); try { // Query for a single integer value, if it exists, table exists From f236fcc20555d65e5a928094e510c9b7bad56968 Mon Sep 17 00:00:00 2001 From: Sun Yuhan Date: Tue, 10 Jun 2025 16:44:56 +0800 Subject: [PATCH 2/2] fix: Fixed GH-3492, Fixed the SQL error in the `isTableExists` method of `MariaDBSchemaValidator`. Signed-off-by: Sun Yuhan --- .../ai/vectorstore/mariadb/MariaDBSchemaValidator.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java b/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java index f2133e030ac..82fbc0d68f0 100644 --- a/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java +++ b/vector-stores/spring-ai-mariadb-store/src/main/java/org/springframework/ai/vectorstore/mariadb/MariaDBSchemaValidator.java @@ -45,12 +45,11 @@ public MariaDBSchemaValidator(JdbcTemplate jdbcTemplate) { private boolean isTableExists(String schemaName, String tableName) { // schema and table are expected to be escaped - String sql = String.format( - "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'", - (schemaName == null) ? "SCHEMA()" : schemaName, tableName); + String sql = "SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?"; try { // Query for a single integer value, if it exists, table exists - this.jdbcTemplate.queryForObject(sql, Integer.class); + this.jdbcTemplate.queryForObject(sql, Integer.class, (schemaName == null) ? "SCHEMA()" : schemaName, + tableName); return true; } catch (DataAccessException e) {