summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <[email protected]>2023-10-04 19:54:13 +0300
committeraneporada <[email protected]>2023-10-04 20:12:15 +0300
commit8d51246644fc7c057734a944d1fb716c2e8ed7e2 (patch)
treecae9039e00d63d785da9d150790f3a4fd3d23c79
parent2efbbe201fd0733e716f419c73f8557bcaae80e7 (diff)
Fix auto SAMPLE with subqueries
-rw-r--r--ydb/library/yql/sql/v1/select.cpp4
-rw-r--r--ydb/library/yql/sql/v1/sql_ut.cpp8
2 files changed, 10 insertions, 2 deletions
diff --git a/ydb/library/yql/sql/v1/select.cpp b/ydb/library/yql/sql/v1/select.cpp
index ce789ba386e..29070fe7e1b 100644
--- a/ydb/library/yql/sql/v1/select.cpp
+++ b/ydb/library/yql/sql/v1/select.cpp
@@ -608,7 +608,7 @@ public:
ESampleMode mode,
TNodePtr samplingRate,
TNodePtr samplingSeed) override {
- if (mode != ESampleMode::Bernoulli) {
+ if (mode == ESampleMode::System) {
ctx.Error(pos) << "only Bernoulli sampling mode is supported for subqueries";
return false;
}
@@ -2907,7 +2907,7 @@ public:
ESampleMode mode,
TNodePtr samplingRate,
TNodePtr samplingSeed) override {
- if (mode != ESampleMode::Bernoulli) {
+ if (mode == ESampleMode::System) {
ctx.Error(pos) << "only Bernoulli sampling mode is supported for subqueries";
return false;
}
diff --git a/ydb/library/yql/sql/v1/sql_ut.cpp b/ydb/library/yql/sql/v1/sql_ut.cpp
index b51ebb83c59..a659c501d1e 100644
--- a/ydb/library/yql/sql/v1/sql_ut.cpp
+++ b/ydb/library/yql/sql/v1/sql_ut.cpp
@@ -2422,6 +2422,14 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) {
UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Aggregate"]);
}
+
+ Y_UNIT_TEST(AutoSampleWorksWithNamedSubquery) {
+ UNIT_ASSERT(SqlToYql("$src = select * from plato.Input; select * from $src sample 0.2").IsOk());
+ }
+
+ Y_UNIT_TEST(AutoSampleWorksWithSubquery) {
+ UNIT_ASSERT(SqlToYql("select * from (select * from plato.Input) sample 0.2").IsOk());
+ }
}
Y_UNIT_TEST_SUITE(ExternalFunction) {