From 5d42b7712ad0b0169a8bc475e668e2c76e192edf Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Thu, 1 Jun 2023 18:30:13 -0700 Subject: [PATCH 1/2] Update `SHOW TABLES` query. Signed-off-by: Yury-Fridlyand --- src/sqlodbc/opensearch_communication.cpp | 2 +- src/sqlodbc/opensearch_info.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sqlodbc/opensearch_communication.cpp b/src/sqlodbc/opensearch_communication.cpp index 3423db4..571357f 100644 --- a/src/sqlodbc/opensearch_communication.cpp +++ b/src/sqlodbc/opensearch_communication.cpp @@ -481,7 +481,7 @@ bool OpenSearchCommunication::IsSQLPluginEnabled(std::shared_ptr< ErrorDetails > */ bool OpenSearchCommunication::CheckSQLPluginAvailability() { LogMsg(OPENSEARCH_ALL, "Checking for SQL plugin status."); - std::string test_query = "SHOW TABLES LIKE %"; + std::string test_query = "SHOW TABLES LIKE '%'"; try { std::shared_ptr< Aws::Http::HttpResponse > response = IssueRequest(sql_endpoint, diff --git a/src/sqlodbc/opensearch_info.cpp b/src/sqlodbc/opensearch_info.cpp index ab3700e..2ed93f3 100644 --- a/src/sqlodbc/opensearch_info.cpp +++ b/src/sqlodbc/opensearch_info.cpp @@ -423,9 +423,9 @@ void GenerateTableQuery(std::string &tables_query, const UWORD flag, if (table_valid && (table_name_value != "") && (result_type == TableResultSet::All)) tables_query += - search_pattern ? table_name_value : "^" + table_name_value + "$"; + search_pattern ? table_name_value : "'^" + table_name_value + "$'"; else - tables_query += "%"; + tables_query += "'%'"; } // In case of unique_ptr's, using push_back (over emplace_back) is preferred in From 589419aaf74e699174f48ef2cc9f489f8389ba53 Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Tue, 6 Jun 2023 19:37:25 -0700 Subject: [PATCH 2/2] Update `DESCRIBE` query. Signed-off-by: Yury-Fridlyand --- src/sqlodbc/opensearch_info.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sqlodbc/opensearch_info.cpp b/src/sqlodbc/opensearch_info.cpp index 2ed93f3..b2c9602 100644 --- a/src/sqlodbc/opensearch_info.cpp +++ b/src/sqlodbc/opensearch_info.cpp @@ -652,12 +652,13 @@ void GenerateColumnQuery(std::string &query, const std::string &table_name, const std::string &column_name, const bool table_valid, const bool column_valid, const UWORD flag) { bool search_pattern = (~flag & PODBC_NOT_SEARCH_PATTERN); - query = "DESCRIBE TABLES LIKE "; + query = "DESCRIBE TABLES LIKE '"; query += table_valid ? (search_pattern ? table_name : "^" + table_name + "$") : "%"; + query += '\''; if (column_valid) - query += " COLUMNS LIKE " + column_name; + query += " COLUMNS LIKE '" + column_name + '\''; } // In case of unique_ptr's, using push_back (over emplace_back) is preferred in