diff --git a/src/main/java/org/opensearch/jdbc/DatabaseMetaDataImpl.java b/src/main/java/org/opensearch/jdbc/DatabaseMetaDataImpl.java index 8115ff8..0dc6f97 100644 --- a/src/main/java/org/opensearch/jdbc/DatabaseMetaDataImpl.java +++ b/src/main/java/org/opensearch/jdbc/DatabaseMetaDataImpl.java @@ -671,12 +671,12 @@ public ResultSet getProcedureColumns(String catalog, String schemaPattern, Strin @Override public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException { - // TODO - when server plugin supports PreparedStatement fully, implement this as a preparedStatment with params + // TODO - when server plugin supports PreparedStatement fully, implement this as a preparedStatement with params log.debug(() -> logMessage("getTables(%s, %s, %s, %s)", catalog, schemaPattern, tableNamePattern, Arrays.toString(types))); - PreparedStatement pst = connection.prepareStatement("SHOW TABLES LIKE " + - (tableNamePattern == null ? "%" : tableNamePattern)); + PreparedStatement pst = connection.prepareStatement("SHOW TABLES LIKE '" + + (tableNamePattern == null ? "%" : tableNamePattern) + "'"); ResultSet resultSet = pst.executeQuery(); @@ -1207,8 +1207,8 @@ static class ColumnMetadataStatement extends PreparedStatementImpl { ColumnMetadataStatement(ConnectionImpl connection, String tableNamePattern, String columnNamePattern, Logger log) throws SQLException { // TODO - once sql plugin supports PreparedStatement fully, do this through a preparedStatement with params - super(connection, "DESCRIBE TABLES LIKE " + tableNamePattern + - (columnNamePattern != null ? (" COLUMNS LIKE " + columnNamePattern) : ""), + super(connection, "DESCRIBE TABLES LIKE '" + tableNamePattern + + (columnNamePattern != null ? ("' COLUMNS LIKE '" + columnNamePattern + "'") : "'"), log); } diff --git a/src/test/java/org/opensearch/jdbc/DatabaseMetaDataTests.java b/src/test/java/org/opensearch/jdbc/DatabaseMetaDataTests.java index ace0bd7..bce19a6 100644 --- a/src/test/java/org/opensearch/jdbc/DatabaseMetaDataTests.java +++ b/src/test/java/org/opensearch/jdbc/DatabaseMetaDataTests.java @@ -364,7 +364,7 @@ void testGetColumnsWithoutColumnNamePattern() throws Exception { Connection con = getMockConnection(); ColumnMetadataStatement stmt = new ColumnMetadataStatement((ConnectionImpl)con, "TABLE_%", null, NoOpLogger.INSTANCE); - assertEquals("DESCRIBE TABLES LIKE TABLE_%", stmt.sql); + assertEquals("DESCRIBE TABLES LIKE 'TABLE_%'", stmt.sql); assertDoesNotThrow(stmt::close); } @@ -373,7 +373,7 @@ void testGetColumnsWithColumnNamePattern() throws Exception { Connection con = getMockConnection(); ColumnMetadataStatement stmt = new ColumnMetadataStatement((ConnectionImpl)con, "TABLE_%", "COLUMN_%", NoOpLogger.INSTANCE); - assertEquals("DESCRIBE TABLES LIKE TABLE_% COLUMNS LIKE COLUMN_%", stmt.sql); + assertEquals("DESCRIBE TABLES LIKE 'TABLE_%' COLUMNS LIKE 'COLUMN_%'", stmt.sql); assertDoesNotThrow(stmt::close); }