From 21a415bebb03909c42c83e9611846643b5a70693 Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Wed, 22 Oct 2025 18:06:53 +0530 Subject: [PATCH 1/2] fix: findColumn is case-sensitive for unquoted identifier --- .../google/cloud/spanner/jdbc/JdbcDatabaseMetaData.java | 2 +- .../cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaData.java b/src/main/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaData.java index 67c6976c7..98d23a226 100644 --- a/src/main/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaData.java +++ b/src/main/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaData.java @@ -187,7 +187,7 @@ public boolean storesUpperCaseIdentifiers() { @Override public boolean storesLowerCaseIdentifiers() { - return false; + return connection.getDialect() == Dialect.POSTGRESQL; } @Override diff --git a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java index d5a429078..57828d55f 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java @@ -61,6 +61,7 @@ public static Object[] data() { @Test public void testTrivialMethods() throws SQLException { JdbcConnection connection = mock(JdbcConnection.class); + when(connection.getDialect()).thenReturn(dialect); DatabaseMetaData meta = new JdbcDatabaseMetaData(connection); assertTrue(meta.allProceduresAreCallable()); assertTrue(meta.allTablesAreSelectable()); @@ -132,7 +133,11 @@ public void testTrivialMethods() throws SQLException { assertTrue(meta.nullPlusNonNullIsNull()); assertFalse(meta.isCatalogAtStart()); assertEquals(connection.isReadOnly(), meta.isReadOnly()); - assertFalse(meta.storesLowerCaseIdentifiers()); + if(dialect == Dialect.GOOGLE_STANDARD_SQL) { + assertFalse(meta.storesLowerCaseIdentifiers()); + } else { + assertTrue(meta.storesLowerCaseIdentifiers()); + } assertFalse(meta.storesLowerCaseQuotedIdentifiers()); assertTrue(meta.storesMixedCaseIdentifiers()); assertTrue(meta.storesMixedCaseQuotedIdentifiers()); From 64b24acec971112a98248f7a8b3d47bbdd3e72c3 Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Wed, 22 Oct 2025 18:58:06 +0530 Subject: [PATCH 2/2] Addressed comments --- .../google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java index 57828d55f..4545bb56e 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/JdbcDatabaseMetaDataTest.java @@ -133,10 +133,10 @@ public void testTrivialMethods() throws SQLException { assertTrue(meta.nullPlusNonNullIsNull()); assertFalse(meta.isCatalogAtStart()); assertEquals(connection.isReadOnly(), meta.isReadOnly()); - if(dialect == Dialect.GOOGLE_STANDARD_SQL) { - assertFalse(meta.storesLowerCaseIdentifiers()); - } else { + if (dialect == Dialect.POSTGRESQL) { assertTrue(meta.storesLowerCaseIdentifiers()); + } else { + assertFalse(meta.storesLowerCaseIdentifiers()); } assertFalse(meta.storesLowerCaseQuotedIdentifiers()); assertTrue(meta.storesMixedCaseIdentifiers());