summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-07-09 11:33:21 +0300
committervitya-smirnov <[email protected]>2025-07-09 11:57:27 +0300
commitf767018cb425a62788b8e81932f2c2bc2a2e0953 (patch)
tree8c49b1a4e6f11abdbd49e134c50b4555e1201a75 /yql/essentials/sql/v1
parentb0c179cbac3df627b8b96fb72374e771a6be3325 (diff)
YQL-19747: Fix binding precence at ID_QUOTED
commit_hash:a497dfe8863a864913c1d6df4b28edbe7d8e4bba
Diffstat (limited to 'yql/essentials/sql/v1')
-rw-r--r--yql/essentials/sql/v1/complete/analysis/local/local.h4
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.cpp4
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete_ut.cpp13
3 files changed, 20 insertions, 1 deletions
diff --git a/yql/essentials/sql/v1/complete/analysis/local/local.h b/yql/essentials/sql/v1/complete/analysis/local/local.h
index 86de7d1632a..df708901cf9 100644
--- a/yql/essentials/sql/v1/complete/analysis/local/local.h
+++ b/yql/essentials/sql/v1/complete/analysis/local/local.h
@@ -54,6 +54,10 @@ namespace NSQLComplete {
struct TQuotation {
bool AtLhs = false;
bool AtRhs = false;
+
+ explicit operator bool() const {
+ return AtLhs || AtRhs;
+ }
};
TKeywords Keywords;
diff --git a/yql/essentials/sql/v1/complete/sql_complete.cpp b/yql/essentials/sql/v1/complete/sql_complete.cpp
index 837f0b236ca..cf93c07a190 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete.cpp
@@ -75,7 +75,9 @@ namespace NSQLComplete {
TVector<INameService::TPtr> children;
- children.emplace_back(MakeBindingNameService(std::move(global.Names)));
+ if (!local.IsQuoted) {
+ children.emplace_back(MakeBindingNameService(std::move(global.Names)));
+ }
if (!local.Binding && global.Column) {
children.emplace_back(MakeColumnNameService(std::move(global.Column->Columns)));
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
index 8c1ffba06f4..145812136a6 100644
--- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
@@ -1322,6 +1322,19 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "SELECT `Y #` FROM saurus.maxim").size(), 0);
}
+ Y_UNIT_TEST(NoBindingAtQuoted) {
+ auto engine = MakeSqlCompletionEngineUT();
+
+ TVector<TCandidate> expected = {
+ {FolderName, ".sys/"},
+ {FolderName, "local/"},
+ {FolderName, "prod/"},
+ {FolderName, "test/"},
+ };
+
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "$x = 1; SELECT * FROM `#`"), expected);
+ }
+
Y_UNIT_TEST(Typing) {
const auto queryUtf16 = TUtf16String::FromUtf8(
"SELECT \n"