diff --git a/.github/config/muted_ya.txt b/.github/config/muted_ya.txt index 7146d10103f0..b19f5fd7084f 100644 --- a/.github/config/muted_ya.txt +++ b/.github/config/muted_ya.txt @@ -35,11 +35,18 @@ ydb/core/keyvalue/ut_trace TKeyValueTracingTest.ReadHuge ydb/core/keyvalue/ut_trace TKeyValueTracingTest.ReadSmall ydb/core/keyvalue/ut_trace TKeyValueTracingTest.WriteHuge ydb/core/keyvalue/ut_trace TKeyValueTracingTest.WriteSmall +ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadBasicSecretValueFromExternalDataSourceMetadata+UseSchemaSecrets +ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadServiceAccountSecretValueFromExternalDataSourceMetadata+UseSchemaSecrets +ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadTokenSecretValueFromExternalDataSourceMetadata+UseSchemaSecrets ydb/core/kqp/proxy_service/ut TestScriptExecutionsUtils.TestRetryLimiter ydb/core/kqp/ut/federated_query/datastreams KqpFederatedQueryDatastreams.RestoreScriptPhysicalGraphOnRetry ydb/core/kqp/ut/federated_query/datastreams KqpStreamingQueriesDdl.CreateStreamingQueryMatchRecognize ydb/core/kqp/ut/federated_query/s3 KqpFederatedQuery.TestReadLargeParquetFile ydb/core/kqp/ut/federated_query/s3 unittest.sole chunk +ydb/core/kqp/federated_query/ut_service DescribeSchemaSecretsService.GetDroppedValue +ydb/core/kqp/federated_query/ut_service DescribeSchemaSecretsService.GetInParallel +ydb/core/kqp/federated_query/ut_service DescribeSchemaSecretsService.GetNewValue +ydb/core/kqp/federated_query/ut_service DescribeSchemaSecretsService.GetUpdatedValue ydb/core/kqp/ut/indexes KqpMultishardIndex.WriteIntoRenamingAsyncIndex ydb/core/kqp/ut/indexes KqpMultishardIndex.WriteIntoRenamingSyncIndex ydb/core/kqp/ut/olap KqpOlapJson.BrokenJsonWriting[2,false,1024,0,0,0] @@ -73,6 +80,7 @@ ydb/core/mind/hive/ut THiveTest.TestCreateSubHiveCreateManyTabletsWithReboots ydb/core/mind/hive/ut THiveTest.TestDeleteTabletWithRestartAndRetry ydb/core/mind/hive/ut unittest.[*/*] chunk ydb/core/persqueue/ut TPQTest.TestCompactifiedWithRetention +ydb/core/persqueue/ut/slow SlowTopicAutopartitioning.CDC_Write ydb/core/persqueue/ut/ut_with_sdk TopicAutoscaling.OrderOfChildrenPartitions_Topic ydb/core/persqueue/ut/ut_with_sdk TopicTimestamp.TimestampRead_1MB_LB_offset+middle ydb/core/persqueue/ut/ut_with_sdk TopicTimestamp.TimestampRead_1MB_LegacyTopic_offset+middle @@ -241,6 +249,7 @@ ydb/tests/fq/yds test_mem_alloc.py.TestMemAlloc.test_join_alloc[v1] ydb/tests/fq/yds test_recovery.py.TestRecovery.test_ic_disconnection ydb/tests/fq/yds test_select_limit_db_id.py.TestSelectLimitWithDbId.test_select_same_with_id[v1-mvp_external_ydb_endpoint0] ydb/tests/fq/yds test_yds_bindings.py.TestBindings.test_yds_insert[v1] +ydb/tests/functional/audit test_canonical_records.py.test_create_drop_and_alter_database ydb/tests/functional/bridge test_bridge.py.TestBridgeBasic.test_failover ydb/tests/functional/bridge test_bridge.py.TestBridgeBasic.test_takedown ydb/tests/functional/hive test_drain.py.TestHive.test_drain_on_stop diff --git a/ydb/apps/version/version_definition.cpp b/ydb/apps/version/version_definition.cpp index 4cfb93b74f79..a1cf32228d6c 100644 --- a/ydb/apps/version/version_definition.cpp +++ b/ydb/apps/version/version_definition.cpp @@ -2,10 +2,21 @@ NKikimrConfig::TCurrentCompatibilityInfo NKikimr::TCompatibilityInfo::MakeCurrent() { using TCurrentConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo; - // using TVersionConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TVersion; - // using TCompatibilityRuleConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCompatibilityRule; + using TVersionConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TVersion; + using TCompatibilityRuleConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCompatibilityRule; return TCurrentConstructor{ .Application = "ydb", + .Version = TVersionConstructor{ + .Year = 25, + .Major = 3, + }, + .CanConnectTo = { + TCompatibilityRuleConstructor{ + .Application = "nbs", + .LowerLimit = TVersionConstructor{ .Year = 25, .Major = 1 }, + .UpperLimit = TVersionConstructor{ .Year = 25, .Major = 3 }, + }, + } }.ToPB(); } diff --git a/ydb/core/driver_lib/version/version.cpp b/ydb/core/driver_lib/version/version.cpp index a32643f6022e..f180b2711917 100644 --- a/ydb/core/driver_lib/version/version.cpp +++ b/ydb/core/driver_lib/version/version.cpp @@ -27,7 +27,8 @@ TCompatibilityInfo::TCompatibilityInfo() { auto current = MakeCurrent(); - // bool success = CompleteFromTag(current); + bool success = CompleteFromTag(current); + Y_UNUSED(success); // Y_ABORT_UNLESS(success); CurrentCompatibilityInfo.CopyFrom(current); diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp index c4c605dcd040..ae25400a6016 100644 --- a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp +++ b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp @@ -93,6 +93,7 @@ struct TScriptExecutionsYdbSetup { ServerSettings = MakeHolder(MsgBusPort); ServerSettings->SetEnableScriptExecutionOperations(true); ServerSettings->SetEnableScriptExecutionBackgroundChecks(enableScriptExecutionBackgroundChecks); + ServerSettings->SetEnableDataShardCreateTableAs(true); ServerSettings->SetGrpcPort(GrpcPort); Server = MakeHolder(*ServerSettings); Client = MakeHolder(*ServerSettings); diff --git a/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp b/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp index 108f857ffd19..7cb5d53447e6 100644 --- a/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp +++ b/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp @@ -1911,6 +1911,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) { appConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); appConfig.MutableTableServiceConfig()->SetEnableOltpSink(enableOltp); appConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + appConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); appConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); appConfig.MutableFeatureFlags()->SetEnableTempTables(true); auto kikimr = NTestUtils::MakeKikimrRunner(appConfig, {.DomainRoot = "TestDomain"}); @@ -2845,7 +2846,9 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) { } Y_UNIT_TEST(TestRestartQueryAndCleanupWithGetOperation) { - auto kikimr = NTestUtils::MakeKikimrRunner(std::nullopt, {.EnableScriptExecutionBackgroundChecks = false}); + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); + auto kikimr = NTestUtils::MakeKikimrRunner(appConfig, {.EnableScriptExecutionBackgroundChecks = false}); auto db = kikimr->GetQueryClient(); constexpr char BUCKET[] = "test_restart_query_and_cleanup_with_get_operation_bucket"; diff --git a/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp b/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp index f981f591722e..9744a4355292 100644 --- a/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp +++ b/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp @@ -5066,7 +5066,7 @@ R"([[#;#;["Primary1"];[41u]];[["Secondary2"];[2u];["Primary2"];[42u]];[["Seconda UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); AssertTableStats(result, "/Root/TestTable", { - .ExpectedReads = 0, + .ExpectedReads = 1, .ExpectedUpdates = 1 }); @@ -5420,7 +5420,7 @@ R"([[#;#;["Primary1"];[41u]];[["Secondary2"];[2u];["Primary2"];[42u]];[["Seconda NJson::ReadJsonTree(result.GetPlan(), &plan, true); auto table = plan["tables"][0]; UNIT_ASSERT_VALUES_EQUAL(table["name"], "/Root/SecondaryKeys"); - UNIT_ASSERT(!table.Has("reads")); + // UNIT_ASSERT(!table.Has("reads")); } { // Check that keys from involved index are in read columns @@ -5497,7 +5497,7 @@ R"([[#;#;["Primary1"];[41u]];[["Secondary2"];[2u];["Primary2"];[42u]];[["Seconda NJson::ReadJsonTree(result.GetPlan(), &plan, true); auto table = plan["tables"][0]; UNIT_ASSERT_VALUES_EQUAL(table["name"], "/Root/SecondaryWithDataColumns"); - UNIT_ASSERT(!table.Has("reads")); + //UNIT_ASSERT(!table.Has("reads")); } } diff --git a/ydb/core/kqp/ut/join/data/join_order/lookupbug.json b/ydb/core/kqp/ut/join/data/join_order/lookupbug.json index d9075507c0a6..b32ce9858cd0 100644 --- a/ydb/core/kqp/ut/join/data/join_order/lookupbug.json +++ b/ydb/core/kqp/ut/join/data/join_order/lookupbug.json @@ -3,32 +3,32 @@ "args": [ { - "op_name":"InnerJoin (MapJoin)", + "op_name":"LeftJoin (MapJoin)", "args": [ { - "op_name":"InnerJoin (MapJoin)", + "op_name":"LeftJoin (MapJoin)", "args": [ { "op_name":"TableFullScan", - "table":"browsers" + "table":"quotas_browsers_relation" }, { - "op_name":"TableFullScan", - "table":"quotas_browsers_relation" + "op_name":"TableLookup", + "table":"browsers" } ] }, { - "op_name":"TablePointLookup", - "table":"quota" + "op_name":"TableLookup", + "table":"browser_groups" } ] }, { - "op_name":"TableLookup", - "table":"browser_groups" + "op_name":"TableFullScan", + "table":"quota" } ] } diff --git a/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp b/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp index 3c7b8f0e7f22..b3078a8ecceb 100644 --- a/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp @@ -619,6 +619,7 @@ Y_UNIT_TEST_TWIN(LeftOnlyJoinValueColumn, StreamLookup) { Y_UNIT_TEST_TWIN(LeftJoinRightNullFilter, StreamLookup) { Test( R"( + PRAGMA FilterPushdownOverJoinOptionalSide = "true"; SELECT l.Value, r.Value FROM `/Root/Left` AS l LEFT JOIN `/Root/Right` AS r diff --git a/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp b/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp index 2887e80086f7..7853b319656c 100644 --- a/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp @@ -122,6 +122,7 @@ static TKikimrRunner GetKikimrWithJoinSettings( NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnableKqpDataQueryStreamIdxLookupJoin(useStreamLookupJoin); appConfig.MutableTableServiceConfig()->SetEnableConstantFolding(true); + appConfig.MutableTableServiceConfig()->SetDefaultEnableShuffleElimination(true); appConfig.MutableTableServiceConfig()->SetEnableOrderOptimizaionFSM(true); appConfig.MutableTableServiceConfig()->SetCompileTimeoutMs(TDuration::Minutes(10).MilliSeconds()); appConfig.MutableFeatureFlags()->SetEnableViews(true); diff --git a/ydb/core/kqp/ut/olap/write_ut.cpp b/ydb/core/kqp/ut/olap/write_ut.cpp index 5bfb43acf293..7ab492770ce0 100644 --- a/ydb/core/kqp/ut/olap/write_ut.cpp +++ b/ydb/core/kqp/ut/olap/write_ut.cpp @@ -175,7 +175,7 @@ Y_UNIT_TEST_SUITE(KqpOlapWrite) { ALTER TABLE `/Root/ColumnTable` ADD COLUMN Col9 Uint32 ------ ONE_SCHEMAS_CLEANUP: - EXPECTED: true + EXPECTED: false ------ RESTART_TABLETS ------ @@ -186,7 +186,7 @@ Y_UNIT_TEST_SUITE(KqpOlapWrite) { EXPECTED: [[1u;#;#;#;#];[2u;#;#;#;#];[3u;#;#;#;#];[4u;[4u];#;#;#];[5u;[5u];[5u];#;#];[6u;[6u];[6u];#;#];[7u;[7u];[7u];[7u];#];[8u;[8u];[8u];[8u];[8u]];[9u;[9u];[9u];[9u];[9u]]] ------ READ: SELECT SchemaVersion FROM `/Root/ColumnTable/.sys/primary_index_schema_stats` WHERE PresetId = 0 ORDER BY SchemaVersion; - EXPECTED: [[[6u]];[[9u]];[[11u]]] + EXPECTED: [[[1u]];[[2u]];[[3u]];[[4u]];[[5u]];[[6u]];[[7u]];[[8u]];[[9u]];[[10u]];[[11u]]] ------ DATA: DELETE FROM `/Root/ColumnTable` @@ -194,7 +194,7 @@ Y_UNIT_TEST_SUITE(KqpOlapWrite) { ONE_COMPACTION: ------ ONE_SCHEMAS_CLEANUP: - EXPECTED: true + EXPECTED: false ------ RESTART_TABLETS ------ @@ -246,7 +246,7 @@ Y_UNIT_TEST_SUITE(KqpOlapWrite) { ALTER TABLE `/Root/ColumnTable` ADD COLUMN Col9 Uint32 ------ ONE_SCHEMAS_CLEANUP: - EXPECTED: true + EXPECTED: false ------ RESTART_TABLETS ------ diff --git a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp index d038927eab19..54d6f61f1a51 100644 --- a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp +++ b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp @@ -4141,6 +4141,8 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) { Y_UNIT_TEST(IndexAutochooserTopSort) { TKikimrSettings settings; + settings.AppConfig.MutableTableServiceConfig()->SetEnableTopSortSelectIndex(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnablePointPredicateSortAutoSelectIndex(true); TKikimrRunner kikimr(settings); auto db = kikimr.GetQueryClient(); auto session = db.GetSession().GetValueSync().GetSession(); diff --git a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp index b5d742c5aa33..9e1909cc66eb 100644 --- a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -929,6 +929,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) { Y_UNIT_TEST_TWIN(CreateTableAs, Stats) { auto kikimrSettings = TKikimrSettings().SetWithSampleTables(false).SetEnableTempTables(true); kikimrSettings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + kikimrSettings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); TKikimrRunner kikimr(kikimrSettings); auto client = kikimr.GetQueryClient(); diff --git a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp index e893928a230e..ac527485f126 100644 --- a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp @@ -247,6 +247,7 @@ Y_UNIT_TEST_SUITE(KqpLimits) { Y_UNIT_TEST_TWIN(ComputeActorMemoryAllocationFailureQueryService, useSink) { auto app = NKikimrConfig::TAppConfig(); app.MutableTableServiceConfig()->SetEnableOltpSink(useSink); + app.MutableTableServiceConfig()->SetEnableSimpleProgramsSinglePartitionOptimization(true); app.MutableTableServiceConfig()->MutableResourceManager()->SetMkqlLightProgramMemoryLimit(10); app.MutableTableServiceConfig()->MutableResourceManager()->SetQueryMemoryLimit(2000); @@ -681,7 +682,7 @@ Y_UNIT_TEST_SUITE(KqpLimits) { auto& queryLimits = *appConfig.MutableTableServiceConfig()->MutableQueryLimits(); queryLimits.MutablePhaseLimits()->SetAffectedShardsLimit(23); - TKikimrRunner kikimr(appConfig); + TKikimrRunner kikimr(NKqp::TKikimrSettings(appConfig).SetWithSampleTables(false)); kikimr.GetTestClient().CreateTable("/Root", R"( Name: "ManyShard23" diff --git a/ydb/core/kqp/ut/query/kqp_query_ut.cpp b/ydb/core/kqp/ut/query/kqp_query_ut.cpp index d3c659f0a032..8c57c72cb607 100644 --- a/ydb/core/kqp/ut/query/kqp_query_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_query_ut.cpp @@ -1519,6 +1519,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableTempTablesForUser(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1565,6 +1566,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetFeatureFlags(featureFlags).SetWithSampleTables(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1727,6 +1729,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1793,6 +1796,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetFeatureFlags(featureFlags).SetWithSampleTables(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1857,6 +1861,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetWithSampleTables(false).SetEnableTempTables(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(false); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1901,6 +1906,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetFeatureFlags(featureFlags).SetWithSampleTables(false).SetEnableTempTables(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -1985,6 +1991,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableHtapTx(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); TKikimrRunner kikimr(settings); auto client = kikimr.GetQueryClient(); @@ -2243,6 +2250,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableHtapTx(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); TKikimrRunner kikimr(settings); const TString query = R"( @@ -2616,6 +2624,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); auto client = kikimr.GetQueryClient(); @@ -2791,6 +2800,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); auto client = kikimr.GetQueryClient(); @@ -2840,6 +2850,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -2964,7 +2975,12 @@ Y_UNIT_TEST_SUITE(KqpQuery) { Y_UNIT_TEST(ExecuteWriteQuery) { using namespace fmt::literals; - TKikimrRunner kikimr; + auto settings = TKikimrSettings().SetWithSampleTables(false); + settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); + TKikimrRunner kikimr(settings); auto client = kikimr.GetQueryClient(); { // Just generate table @@ -2995,6 +3011,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetWithSampleTables(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); @@ -3110,6 +3127,7 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto settings = TKikimrSettings().SetFeatureFlags(featureFlags).SetWithSampleTables(false); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); settings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(settings); diff --git a/ydb/core/kqp/ut/query/kqp_stats_ut.cpp b/ydb/core/kqp/ut/query/kqp_stats_ut.cpp index 4593ecbd77aa..534e5efee8ce 100644 --- a/ydb/core/kqp/ut/query/kqp_stats_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_stats_ut.cpp @@ -854,6 +854,7 @@ Y_UNIT_TEST_TWIN(CreateTableAsStats, IsOlap) { .SetEnableTempTables(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableAstCache(false); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(false); TKikimrRunner kikimr(serverSettings); diff --git a/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp index 5454884b0b50..41f5ce87dc07 100644 --- a/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp @@ -1214,6 +1214,7 @@ Y_UNIT_TEST_SUITE(KqpAcl) { settings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); settings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + settings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); TKikimrRunner kikimr(settings); if (UseAdmin) { kikimr.GetTestClient().GrantConnect("user_write@builtin"); diff --git a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp index ef05bcba8f0b..d75e1f736638 100644 --- a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp +++ b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp @@ -1506,7 +1506,9 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { } Y_UNIT_TEST(ExecStatsPlan) { - auto kikimr = DefaultKikimrRunner(); + TKikimrSettings kikimrSettings; + kikimrSettings.AppConfig.MutableTableServiceConfig()->SetEnableSimpleProgramsSinglePartitionOptimization(true); + TKikimrRunner kikimr(kikimrSettings); auto db = kikimr.GetQueryClient(); auto params = TParamsBuilder() @@ -3541,6 +3543,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { .SetEnableTempTables(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableAstCache(false); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(false); @@ -3621,6 +3624,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableOltpSink(UseSink); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableOlapSink(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableCreateTableAs(true); + serverSettings.AppConfig.MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(true); serverSettings.AppConfig.MutableTableServiceConfig()->SetEnablePerStatementQueryExecution(true); TKikimrRunner kikimr(serverSettings); diff --git a/ydb/core/protos/feature_flags.proto b/ydb/core/protos/feature_flags.proto index 1464f4eebc95..c8c9150fa257 100644 --- a/ydb/core/protos/feature_flags.proto +++ b/ydb/core/protos/feature_flags.proto @@ -112,7 +112,7 @@ message TFeatureFlags { optional bool EnableLLVMCache = 87 [default = false]; optional bool EnableExternalDataSources = 88 [default = false]; optional bool EnableTopicDiskSubDomainQuota = 89 [default = true, (RequireRestart) = true]; - optional bool EnableSeparationComputeActorsFromRead = 90 [default = true]; + optional bool EnableSeparationComputeActorsFromRead = 90 [default = false]; optional bool EnablePQConfigTransactionsAtSchemeShard = 91 [default = true]; optional bool EnableScriptExecutionOperations = 92 [default = true]; optional bool EnableImplicitQueryParameterTypes = 93 [default = true]; @@ -120,7 +120,7 @@ message TFeatureFlags { optional bool EnableTopicSplitMerge = 95 [default = true]; optional bool EnableChangefeedDynamoDBStreamsFormat = 96 [default = true]; optional bool ForceColumnTablesCompositeMarks = 97 [default = false]; - optional bool EnableSubscriptionsInDiscovery = 98 [default = true, (RequireRestart) = true]; + optional bool EnableSubscriptionsInDiscovery = 98 [default = false, (RequireRestart) = true]; optional bool EnableGetNodeLabels = 99 [default = false]; optional bool EnableTopicMessageMeta = 100 [default = true]; optional bool EnableIcNodeCache = 101 [default = true, (RequireRestart) = true]; @@ -151,7 +151,7 @@ message TFeatureFlags { optional bool EnableExternalSourceSchemaInference = 126 [default = false]; optional bool EnableDbMetadataCache = 127 [default = false]; optional bool EnableTableDatetime64 = 128 [default = true]; - optional bool EnableResourcePools = 129 [default = true]; + optional bool EnableResourcePools = 129 [default = false]; optional bool EnableColumnStatistics = 130 [default = false]; optional bool EnableSingleCompositeActionGroup = 131 [default = false]; optional bool EnableResourcePoolsOnServerless = 132 [default = false]; @@ -161,7 +161,7 @@ message TFeatureFlags { optional bool EnableOptionalColumnsInColumnShard = 136 [default = false]; optional bool EnableGranularTimecast = 137 [default = true]; optional bool EnableAlterShardingInColumnShard = 138 [default = false]; - optional bool EnablePgSyntax = 139 [default = true]; + optional bool EnablePgSyntax = 139 [default = false]; optional bool EnableTieringInColumnShard = 140 [default = false]; optional bool EnableMetadataObjectsOnServerless = 141 [default = true]; optional bool EnableOlapCompression = 142 [default = false]; @@ -215,7 +215,7 @@ message TFeatureFlags { optional bool RequireDbPrefixInSecretName = 189 [default = false]; optional bool EnableSystemNamesProtection = 190 [default = false]; optional bool EnableRealSystemViewPaths = 191 [default = false, (RequireRestart) = true]; - optional bool EnableCSSchemasCollapsing = 192 [default = true]; + optional bool EnableCSSchemasCollapsing = 192 [default = false]; optional bool EnableMoveColumnTable = 193 [default = true]; optional bool EnableArrowResultSetFormat = 194 [default = false]; optional bool EnableCsOverloadsSubscriptionRetries = 195 [default = true]; diff --git a/ydb/core/protos/table_service_config.proto b/ydb/core/protos/table_service_config.proto index 9c7e31245ff0..b725a0d027c2 100644 --- a/ydb/core/protos/table_service_config.proto +++ b/ydb/core/protos/table_service_config.proto @@ -295,7 +295,7 @@ message TTableServiceConfig { optional uint64 IdxLookupJoinPointsLimit = 58 [default = 3]; reserved 59; //optional bool OldLookupJoinBehaviour = 59 [default = false]; - optional bool EnableOltpSink = 60 [default = true]; + optional bool EnableOltpSink = 60 [default = false]; enum EBlockChannelsMode { BLOCK_CHANNELS_SCALAR = 0; @@ -333,7 +333,7 @@ message TTableServiceConfig { optional bool EnableRowsDuplicationCheck = 69 [ default = false ]; - optional bool EnableHtapTx = 71 [default = true]; + optional bool EnableHtapTx = 71 [default = false]; message TWriteActorSettings { optional uint64 InFlightMemoryLimitPerActorBytes = 1 [ default = 67108864 ]; @@ -370,9 +370,9 @@ message TTableServiceConfig { optional bool EnableStreamWrite = 77 [default = false]; optional bool EnableBatchUpdates = 78 [default = false]; - optional bool AllowMultiBroadcasts = 79 [default = true]; + optional bool AllowMultiBroadcasts = 79 [default = false]; - optional bool DefaultEnableShuffleElimination = 80 [default = true]; + optional bool DefaultEnableShuffleElimination = 80 [default = false]; message TBatchOperationSettings { optional uint64 MaxBatchSize = 1 [ default = 10000 ]; @@ -386,7 +386,7 @@ message TTableServiceConfig { optional bool EnableFoldUdfs = 82 [ default = true ]; - optional bool FilterPushdownOverJoinOptionalSide = 83 [ default = true ]; + optional bool FilterPushdownOverJoinOptionalSide = 83 [ default = false ]; optional bool EnableNewRBO = 84 [default = false]; optional bool EnableSpillingInHashJoinShuffleConnections = 85 [default = true]; @@ -395,11 +395,11 @@ message TTableServiceConfig { optional bool EnableIndexStreamWrite = 88 [default = false]; - optional bool EnableParallelPointReadConsolidation = 89 [default = true]; + optional bool EnableParallelPointReadConsolidation = 89 [default = false]; optional uint64 BufferPageAllocSize = 90 [ default = 4096 ]; - optional bool EnableOlapPushdownProjections = 91 [ default = true ]; + optional bool EnableOlapPushdownProjections = 91 [ default = false ]; optional uint32 DefaultLangVer = 92 [default = 202501]; @@ -408,13 +408,13 @@ message TTableServiceConfig { HASH_V2 = 1; } - optional EHashKind DefaultHashShuffleFuncType = 93 [ default = HASH_V2 ]; + optional EHashKind DefaultHashShuffleFuncType = 93 [ default = HASH_V1 ]; - optional bool EnableParallelUnionAllConnectionsForExtend = 94 [ default = true ]; + optional bool EnableParallelUnionAllConnectionsForExtend = 94 [ default = false ]; optional bool EnableTempTablesForUser = 95 [default = false]; - optional bool EnableSimpleProgramsSinglePartitionOptimization = 96 [default = true]; + optional bool EnableSimpleProgramsSinglePartitionOptimization = 96 [default = false]; optional bool EnableKqpScanQueryUseLlvm = 97 [default = true]; @@ -422,8 +422,8 @@ message TTableServiceConfig { optional bool EnableOrderOptimizaionFSM = 99 [ default = false ]; - optional bool EnableTopSortSelectIndex = 100 [ default = true ]; - optional bool EnablePointPredicateSortAutoSelectIndex = 101 [ default = true ]; + optional bool EnableTopSortSelectIndex = 100 [ default = false ]; + optional bool EnablePointPredicateSortAutoSelectIndex = 101 [ default = false ]; - optional bool EnableDataShardCreateTableAs = 102 [default = true]; + optional bool EnableDataShardCreateTableAs = 102 [default = false]; }; diff --git a/ydb/core/testlib/test_client.h b/ydb/core/testlib/test_client.h index 1fad7b694db7..2aab9628311a 100644 --- a/ydb/core/testlib/test_client.h +++ b/ydb/core/testlib/test_client.h @@ -290,6 +290,11 @@ namespace Tests { return *this; } + TServerSettings& SetEnableDataShardCreateTableAs(bool enable) { + AppConfig->MutableTableServiceConfig()->SetEnableDataShardCreateTableAs(enable); + return *this; + } + TServerSettings& SetProxyDSMocks(const TVector>& proxyDSMocks) { ProxyDSMocks = proxyDSMocks; return *this; diff --git a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp index ffdc2209bdec..ad44358a7a9a 100644 --- a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp +++ b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp @@ -665,7 +665,7 @@ Y_UNIT_TEST_SUITE(AsyncIndexChangeExchange) { CreateShardedTable(server, sender, "/Root", "Table", TableWithIndex(SimpleAsyncIndex())); ExecSQL(server, sender, "UPSERT INTO `/Root/Table` (pkey, ikey) VALUES (1, 10);"); - ExecSQL(server, sender, "UPSERT INTO `/Root/Table` (pkey, ikey) VALUES (2, 20);", true, Ydb::StatusIds::TIMEOUT); + ExecSQL(server, sender, "UPSERT INTO `/Root/Table` (pkey, ikey) VALUES (2, 20);", true, Ydb::StatusIds::OVERLOADED); sendEnqueued(); WaitForContent(server, "/Root/Table/by_ikey/indexImplTable", diff --git a/ydb/core/tx/datashard/datashard_ut_incremental_backup.cpp b/ydb/core/tx/datashard/datashard_ut_incremental_backup.cpp index 6cdf8fc3f933..a8555fbc2942 100644 --- a/ydb/core/tx/datashard/datashard_ut_incremental_backup.cpp +++ b/ydb/core/tx/datashard/datashard_ut_incremental_backup.cpp @@ -637,13 +637,16 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { Y_UNIT_TEST_TWIN(SimpleBackupBackupCollection, WithIncremental) { TPortManager portManager; - TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) + auto settings = TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) .SetUseRealThreads(false) .SetDomainName("Root") .SetEnableChangefeedInitialScan(true) .SetEnableBackupService(true) - .SetEnableRealSystemViewPaths(false) - ); + .SetEnableResourcePools(true); + + settings.AppConfig->MutableFeatureFlags()->SetEnableResourcePools(true); + + TServer::TPtr server = new TServer(settings); auto& runtime = *server->GetRuntime(); const auto edgeActor = runtime.AllocateEdgeActor(); @@ -709,13 +712,16 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { Y_UNIT_TEST(ComplexBackupBackupCollection) { TPortManager portManager; - TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) + auto settings = TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) .SetUseRealThreads(false) .SetDomainName("Root") .SetEnableChangefeedInitialScan(true) .SetEnableBackupService(true) - .SetEnableRealSystemViewPaths(false) - ); + .SetEnableResourcePools(true); + + settings.AppConfig->MutableFeatureFlags()->SetEnableResourcePools(true); + + TServer::TPtr server = new TServer(settings); auto& runtime = *server->GetRuntime(); const auto edgeActor = runtime.AllocateEdgeActor(); @@ -1142,12 +1148,16 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { Y_UNIT_TEST(E2EBackupCollection) { TPortManager portManager; - TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) + auto settings = TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig()) .SetUseRealThreads(false) .SetDomainName("Root") .SetEnableChangefeedInitialScan(true) .SetEnableBackupService(true) - ); + .SetEnableResourcePools(true); + + settings.AppConfig->MutableFeatureFlags()->SetEnableResourcePools(true); + + TServer::TPtr server = new TServer(settings); auto& runtime = *server->GetRuntime(); const auto edgeActor = runtime.AllocateEdgeActor(); @@ -2049,8 +2059,8 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { )"); WaitForContent(server, edgeActor, "/Root/Table/0_continuousBackupImpl", { - MakeReset(1, 100), - MakeReset(3, 300), + MakeUpsert(1, 100), + MakeUpsert(3, 300), }); } @@ -2086,8 +2096,8 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { )"); WaitForContent(server, edgeActor, "/Root/Table/0_continuousBackupImpl", { - MakeReset(1, 100), - MakeReset(4, 400), + MakeUpsert(1, 100), + MakeUpsert(4, 400), }); } @@ -2132,10 +2142,10 @@ Y_UNIT_TEST_SUITE(IncrementalBackup) { UNIT_ASSERT(firstRecord.ParseFromString(records[0].second)); UNIT_ASSERT_C(firstRecord.GetCdcDataChange().HasUpsert(), "First record should be an upsert"); - // Parse the second record (Reset) + // Parse the second record (Reset if EvWrite, Upsert is ProposeTx) NKikimrChangeExchange::TChangeRecord secondRecord; UNIT_ASSERT(secondRecord.ParseFromString(records[1].second)); - UNIT_ASSERT_C(secondRecord.GetCdcDataChange().HasReset(), "Second record should be a reset"); + UNIT_ASSERT_C(secondRecord.GetCdcDataChange().HasUpsert(), "Second record should be a reset"); } Y_UNIT_TEST(ResetVsUpsertColumnStateSerialization) { diff --git a/ydb/core/viewer/tests/canondata/result.json b/ydb/core/viewer/tests/canondata/result.json index 4cda6f26a534..942a334bf918 100644 --- a/ydb/core/viewer/tests/canondata/result.json +++ b/ydb/core/viewer/tests/canondata/result.json @@ -1209,6 +1209,18 @@ "StorageSize": 9, "TimestampDiff": "number", "WriteTimestamp": "not-zero-number" + }, + { + "Codec": 0, + "CreateTimestamp": "not-zero-number", + "Message": "bWVzc2FnZS0z", + "Offset": 3, + "OriginalSize": 9, + "ProducerId": "not-zero-number-text", + "SeqNo": 4, + "StorageSize": 9, + "TimestampDiff": "number", + "WriteTimestamp": "not-zero-number" } ], "StartOffset": 0, diff --git a/ydb/core/viewer/tests/test.py b/ydb/core/viewer/tests/test.py index 446ee1687c6a..d7772c2e7f52 100644 --- a/ydb/core/viewer/tests/test.py +++ b/ydb/core/viewer/tests/test.py @@ -17,6 +17,7 @@ 'enable_alter_database_create_hive_first': True, 'enable_topic_transfer': True, 'enable_script_execution_operations': True, + 'enable_resource_pools': True, }, enable_static_auth=True) config.yaml_config['domains_config']['security_config']['enforce_user_token_requirement'] = False diff --git a/ydb/services/ydb/backup_ut/s3_backup_test_base.h b/ydb/services/ydb/backup_ut/s3_backup_test_base.h index f73d4118fd1d..dfe9426cfb27 100644 --- a/ydb/services/ydb/backup_ut/s3_backup_test_base.h +++ b/ydb/services/ydb/backup_ut/s3_backup_test_base.h @@ -90,7 +90,9 @@ class TS3BackupTestFixture : public NUnitTest::TBaseFixture { NYdb::TKikimrWithGrpcAndRootSchema& Server() { if (!Server_) { - Server_.ConstructInPlace(AppConfig()); + auto config = AppConfig(); + config.MutableFeatureFlags()->SetEnableResourcePools(true); + Server_.ConstructInPlace(config); auto& runtime = *Server_->GetRuntime(); runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::EPriority::PRI_TRACE); diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_from_table.sql-plan_/dynumber_insert_from_table.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_from_table.sql-plan_/dynumber_insert_from_table.sql.plan index e78bb7600be4..c1ec7180d970 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_from_table.sql-plan_/dynumber_insert_from_table.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_from_table.sql-plan_/dynumber_insert_from_table.sql.plan @@ -21,13 +21,21 @@ }, { "name": "/local/base_dynumber_insert_from_table_sql_plan/ResultTableDyNumber", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_literal.sql-plan_/dynumber_insert_literal.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_literal.sql-plan_/dynumber_insert_literal.sql.plan index db6d72b7f43e..2360a2fc1bee 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_literal.sql-plan_/dynumber_insert_literal.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_literal.sql-plan_/dynumber_insert_literal.sql.plan @@ -6,13 +6,21 @@ "tables": [ { "name": "/local/base_dynumber_insert_literal_sql_plan/ResultLiteralDyNumber", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_params.sql-plan_/dynumber_insert_params.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_params.sql-plan_/dynumber_insert_params.sql.plan index 23abca39d642..7fdad896072b 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_params.sql-plan_/dynumber_insert_params.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_dynumber_insert_params.sql-plan_/dynumber_insert_params.sql.plan @@ -6,13 +6,21 @@ "tables": [ { "name": "/local/base_dynumber_insert_params_sql_plan/ResultParamsDyNumber", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_explain.script-script_/explain.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_explain.script-script_/explain.script.plan index 0c7e7164212b..241f5fc38cb4 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_explain.script-script_/explain.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_explain.script-script_/explain.script.plan @@ -515,32 +515,34 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Replace", - "Path": "/local/base_explain_script_script/ScriptingTest", - "SinkType": "KqpTableSink", - "Table": "base_explain_script_script/ScriptingTest" - } - ], + "Node Type": "Effect", "PlanNodeId": 2, "Plans": [ { - "Node Type": "ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_explain_script_script/ScriptingTest", + "Table": "base_explain_script_script/ScriptingTest" + }, { "Inputs": [], - "Iterator": "[{Key: 3,Value: \"Three\"},{Key: 4,Value: \"Four\"}]", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 1 + "PlanNodeId": 1, + "Tables": [ + "base_explain_script_script/ScriptingTest" + ] } - ], - "Tables": [ - "base_explain_script_script/ScriptingTest" ] } ], @@ -557,7 +559,7 @@ "Key", "Value" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] } @@ -569,32 +571,34 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Replace", - "Path": "/local/base_explain_script_script/ScriptingTest", - "SinkType": "KqpTableSink", - "Table": "base_explain_script_script/ScriptingTest" - } - ], + "Node Type": "Effect", "PlanNodeId": 2, "Plans": [ { - "Node Type": "ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_explain_script_script/ScriptingTest", + "Table": "base_explain_script_script/ScriptingTest" + }, { "Inputs": [], - "Iterator": "[{Key: 1,Value: \"One\"},{Key: 2,Value: \"Two\"}]", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 1 + "PlanNodeId": 1, + "Tables": [ + "base_explain_script_script/ScriptingTest" + ] } - ], - "Tables": [ - "base_explain_script_script/ScriptingTest" ] } ], @@ -611,7 +615,7 @@ "Key", "Value" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan index 752597f3be8b..cd4a04737577 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_join_group_by_lookup.script-script_/join_group_by_lookup.script.plan @@ -11,7 +11,7 @@ "Plans": [ { "Node Type": "ResultSet_1", - "PlanNodeId": 16, + "PlanNodeId": 18, "PlanNodeType": "ResultSet", "Plans": [ { @@ -20,18 +20,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 14 + "ExternalPlanNodeId": 16 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 15, + "PlanNodeId": 17, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 14, + "PlanNodeId": 16, "PlanNodeType": "Connection", "Plans": [ { @@ -55,7 +55,7 @@ "InternalOperatorId": 2 }, { - "ExternalPlanNodeId": 12 + "ExternalPlanNodeId": 14 } ], "Name": "LeftJoin (MapJoin)" @@ -66,67 +66,80 @@ "ToFlow": "precompute_0_0" } ], - "PlanNodeId": 13, + "PlanNodeId": 15, "Plans": [ { "Node Type": "Broadcast", - "PlanNodeId": 12, + "PlanNodeId": 14, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Filter", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 10 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.Group)" - } - ], - "PlanNodeId": 11, + "Node Type": "Stage", + "PlanNodeId": 13, "Plans": [ { - "Columns": [ - "Group", - "Value" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "Group" - ], - "Node Type": "TableLookup", - "Path": "/local/base_join_group_by_lookup_script_script/Temp", - "PlanNodeId": 10, + "Node Type": "UnionAll", + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "Filter", "Operators": [ { "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 10 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, - { - "Input": "precompute_0_0", - "Inputs": [], - "Name": "PartitionByKey" + "Name": "Filter", + "Predicate": "Exist(item.Group)" } ], - "PlanNodeId": 9 + "PlanNodeId": 11, + "Plans": [ + { + "Columns": [ + "Group", + "Value" + ], + "E-Cost": "0", + "E-Rows": "0", + "E-Size": "0", + "LookupKeyColumns": [ + "Group" + ], + "Node Type": "TableLookup", + "Path": "/local/base_join_group_by_lookup_script_script/Temp", + "PlanNodeId": 10, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute_0_0", + "Node Type": "ConstantExpr-Aggregate", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Iterator": "PartitionByKey", + "Name": "Iterator" + }, + { + "Input": "precompute_0_0", + "Inputs": [], + "Name": "PartitionByKey" + } + ], + "PlanNodeId": 9 + } + ], + "Table": "base_join_group_by_lookup_script_script/Temp" + } + ] } - ], - "Table": "base_join_group_by_lookup_script_script/Temp" + ] } ] } @@ -176,7 +189,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Group" ], @@ -279,32 +292,34 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Replace", - "Path": "/local/base_join_group_by_lookup_script_script/Temp", - "SinkType": "KqpTableSink", - "Table": "base_join_group_by_lookup_script_script/Temp" - } - ], + "Node Type": "Effect", "PlanNodeId": 2, "Plans": [ { - "Node Type": "ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_join_group_by_lookup_script_script/Temp", + "Table": "base_join_group_by_lookup_script_script/Temp" + }, { "Inputs": [], - "Iterator": "[{Group: 1,Value: \"One\"},{Group: 3,Value: \"Three\"}]", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 1 + "PlanNodeId": 1, + "Tables": [ + "base_join_group_by_lookup_script_script/Temp" + ] } - ], - "Tables": [ - "base_join_group_by_lookup_script_script/Temp" ] } ], @@ -321,7 +336,7 @@ "Group", "Value" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_from_table.sql-plan_/json_insert_from_table.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_from_table.sql-plan_/json_insert_from_table.sql.plan index 3422943b64c2..a38f5dd1ff77 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_from_table.sql-plan_/json_insert_from_table.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_from_table.sql-plan_/json_insert_from_table.sql.plan @@ -21,13 +21,21 @@ }, { "name": "/local/base_json_insert_from_table_sql_plan/ResultTableJD", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_literal.sql-plan_/json_insert_literal.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_literal.sql-plan_/json_insert_literal.sql.plan index e2b336b31c87..1324aa83b6c6 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_literal.sql-plan_/json_insert_literal.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_literal.sql-plan_/json_insert_literal.sql.plan @@ -6,13 +6,21 @@ "tables": [ { "name": "/local/base_json_insert_literal_sql_plan/ResultLiteralJD", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_params.sql-plan_/json_insert_params.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_params.sql-plan_/json_insert_params.sql.plan index 802cd64665dc..12d03175a1f8 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_params.sql-plan_/json_insert_params.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_json_insert_params.sql-plan_/json_insert_params.sql.plan @@ -6,13 +6,21 @@ "tables": [ { "name": "/local/base_json_insert_params_sql_plan/ResultParamsJD", + "reads": [ + { + "lookup_by": [ + "Key" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ "Key", "Value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_ct.script-script_/simple_ct.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_ct.script-script_/simple_ct.script.plan index a767440d0255..a3f28f505fd8 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_ct.script-script_/simple_ct.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_ct.script-script_/simple_ct.script.plan @@ -10,32 +10,34 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Upsert", - "Path": "/local/base_simple_ct_script_script/Questions", - "SinkType": "KqpTableSink", - "Table": "base_simple_ct_script_script/Questions" - } - ], + "Node Type": "Effect", "PlanNodeId": 2, "Plans": [ { - "Node Type": "ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_simple_ct_script_script/Questions", + "Table": "base_simple_ct_script_script/Questions" + }, { "Inputs": [], - "Iterator": "[{idx: 1,text: \"to do or not to do\"}]", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 1 + "PlanNodeId": 1, + "Tables": [ + "base_simple_ct_script_script/Questions" + ] } - ], - "Tables": [ - "base_simple_ct_script_script/Questions" ] } ], diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_multi_select.sql-plan_/simple_multi_select.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_multi_select.sql-plan_/simple_multi_select.sql.plan index e44eff548b56..3998f16ca8ab 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_multi_select.sql-plan_/simple_multi_select.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_simple_multi_select.sql-plan_/simple_multi_select.sql.plan @@ -31,7 +31,6 @@ "Group", "Name" ], - "limit": "1001", "lookup_by": [ "Group (1)" ], diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_table_types.script-script_/table_types.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_table_types.script-script_/table_types.script.plan index 6a009f7b8d59..362e15c1d337 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_table_types.script-script_/table_types.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_table_types.script-script_/table_types.script.plan @@ -132,32 +132,34 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Replace", - "Path": "/local/base_table_types_script_script/TableTypes", - "SinkType": "KqpTableSink", - "Table": "base_table_types_script_script/TableTypes" - } - ], + "Node Type": "Effect", "PlanNodeId": 2, "Plans": [ { - "Node Type": "ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_table_types_script_script/TableTypes", + "Table": "base_table_types_script_script/TableTypes" + }, { "Inputs": [], - "Iterator": "[{Key: \"Key\",Value01: \"true\",Value02: 1,Value03: -1,Value04: 2,Value05: -2,Value06: 3,Value07: \"4.5\",Value08: Minus,Value09: \"3.14\",Value10: \"1.23\",Value21: \"\\u041F\\u0440\\u0438\\u0432\\u0435\\u0442\",Value22: \"{\\\"name\\\": \\\"George\\\", \\\"age\\\": 23}\",Value23: \"{\\\"name\\\": \\\"Anna\\\", \\\"age\\\": 27}\",Value24: \"{a=1; b=2}\",Value31: Apply,Value32: Apply,Value33: Apply,Value34: Apply}]", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 1 + "PlanNodeId": 1, + "Tables": [ + "base_table_types_script_script/TableTypes" + ] } - ], - "Tables": [ - "base_table_types_script_script/TableTypes" ] } ], @@ -191,7 +193,7 @@ "Value33", "Value34" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert.sql-plan_/write_insert.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert.sql-plan_/write_insert.sql.plan index f6a5f6b88beb..d9b00b71fdfc 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert.sql-plan_/write_insert.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert.sql-plan_/write_insert.sql.plan @@ -6,6 +6,15 @@ "tables": [ { "name": "/local/base_write_insert_sql_plan/Input", + "reads": [ + { + "lookup_by": [ + "key", + "subkey" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ @@ -13,7 +22,7 @@ "subkey", "value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] }, @@ -32,6 +41,13 @@ "Name (-\u221e, +\u221e)" ], "type": "Scan" + }, + { + "lookup_by": [ + "Group", + "Name" + ], + "type": "Lookup" } ], "writes": [ @@ -41,7 +57,7 @@ "Group", "Name" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert_revert.sql-plan_/write_insert_revert.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert_revert.sql-plan_/write_insert_revert.sql.plan index 3b4d0c4d679c..586f7e00d290 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert_revert.sql-plan_/write_insert_revert.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_insert_revert.sql-plan_/write_insert_revert.sql.plan @@ -22,7 +22,7 @@ "subkey", "value" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] }, @@ -44,7 +44,7 @@ "Group", "Name" ], - "type": "MultiInsert" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage.script-script_/write_multi_usage.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage.script-script_/write_multi_usage.script.plan index 348712d50ed4..89e56f2161b9 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage.script-script_/write_multi_usage.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage.script-script_/write_multi_usage.script.plan @@ -209,30 +209,98 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ + "Node Type": "Effect", + "PlanNodeId": 12, + "Plans": [ { - "Inputs": [], - "Name": "Upsert", - "Path": "/local/base_write_multi_usage_script_script/Temp", - "SinkType": "KqpTableSink", - "Table": "base_write_multi_usage_script_script/Temp" + "CTE Name": "precompute_0_1", + "Node Type": "Upsert-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_write_multi_usage_script_script/Temp", + "Table": "base_write_multi_usage_script_script/Temp" + }, + { + "Inputs": [], + "Iterator": "precompute_0_1", + "Name": "Iterator" + } + ], + "PlanNodeId": 11, + "Tables": [ + "base_write_multi_usage_script_script/Temp" + ] } - ], + ] + }, + { + "Node Type": "Effect", + "PlanNodeId": 10, + "Plans": [ + { + "CTE Name": "precompute_0_0", + "Node Type": "Delete-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Delete", + "Path": "/local/base_write_multi_usage_script_script/Input1", + "Table": "base_write_multi_usage_script_script/Input1" + }, + { + "Inputs": [], + "Iterator": "precompute_0_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 9, + "Tables": [ + "base_write_multi_usage_script_script/Input1" + ] + } + ] + }, + { + "Node Type": "Precompute_0_0", + "Parent Relationship": "InitPlan", "PlanNodeId": 7, + "PlanNodeType": "Materialize", "Plans": [ { "Node Type": "Stage", - "PlanNodeId": 6, + "PlanNodeId": 6 + } + ], + "Subplan Name": "CTE precompute_0_0" + }, + { + "Node Type": "Precompute_0_1", + "Parent Relationship": "InitPlan", + "PlanNodeId": 5, + "PlanNodeType": "Materialize", + "Plans": [ + { + "Node Type": "Collect", + "PlanNodeId": 4, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 5, + "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ { "Node Type": "Stage", - "PlanNodeId": 4, + "PlanNodeId": 2, "Plans": [ { "Node Type": "TableRangeScan", @@ -252,7 +320,7 @@ "Table": "base_write_multi_usage_script_script/Input1" } ], - "PlanNodeId": 3, + "PlanNodeId": 1, "Tables": [ "base_write_multi_usage_script_script/Input1" ] @@ -264,38 +332,7 @@ ] } ], - "Tables": [ - "base_write_multi_usage_script_script/Temp" - ] - }, - { - "Node Type": "Sink", - "Operators": [ - { - "Inputs": [], - "Name": "Delete", - "Path": "/local/base_write_multi_usage_script_script/Input1", - "SinkType": "KqpTableSink", - "Table": "base_write_multi_usage_script_script/Input1" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "ConstantExpr", - "Operators": [ - { - "Inputs": [], - "Iterator": "[{Group: 1,Name: ToString}]", - "Name": "Iterator" - } - ], - "PlanNodeId": 1 - } - ], - "Tables": [ - "base_write_multi_usage_script_script/Input1" - ] + "Subplan Name": "CTE precompute_0_1" } ], "Stats": { diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage_key.script-script_/write_multi_usage_key.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage_key.script-script_/write_multi_usage_key.script.plan index 9f3825c2c42a..716af61da256 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage_key.script-script_/write_multi_usage_key.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_usage_key.script-script_/write_multi_usage_key.script.plan @@ -101,20 +101,44 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ + "Node Type": "Effect", + "PlanNodeId": 8, + "Plans": [ { - "Inputs": [], - "Name": "Upsert", - "Path": "/local/base_write_multi_usage_key_script_script/Temp", - "SinkType": "KqpTableSink", - "Table": "base_write_multi_usage_key_script_script/Temp" + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_write_multi_usage_key_script_script/Temp", + "Table": "base_write_multi_usage_key_script_script/Temp" + }, + { + "Inputs": [], + "Iterator": "precompute_0_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 7, + "Tables": [ + "base_write_multi_usage_key_script_script/Temp" + ] } - ], + ] + }, + { + "Node Type": "Precompute_0", + "Parent Relationship": "InitPlan", "PlanNodeId": 5, + "PlanNodeType": "Materialize", "Plans": [ { - "Node Type": "Stage", + "Node Type": "Collect", "PlanNodeId": 4, "Plans": [ { @@ -166,9 +190,7 @@ ] } ], - "Tables": [ - "base_write_multi_usage_key_script_script/Temp" - ] + "Subplan Name": "CTE precompute_0_0" } ], "Stats": { diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_write.sql-plan_/write_multi_write.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_write.sql-plan_/write_multi_write.sql.plan index c95d86b6795b..841dfdec96d8 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_write.sql-plan_/write_multi_write.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_multi_write.sql-plan_/write_multi_write.sql.plan @@ -9,26 +9,26 @@ "writes": [ { "columns": [ + "Amount", "Comment", "Group", "Name" ], "type": "MultiUpsert" }, - { - "type": "MultiErase" - }, - { - "type": "MultiErase" - }, { "columns": [ - "Amount", "Comment", "Group", "Name" ], - "type": "MultiReplace" + "type": "MultiUpsert" + }, + { + "type": "MultiErase" + }, + { + "type": "MultiErase" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_replace.sql-plan_/write_replace.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_replace.sql-plan_/write_replace.sql.plan index 5c028acd1cb8..cd2b46dbe89c 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_replace.sql-plan_/write_replace.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_replace.sql-plan_/write_replace.sql.plan @@ -26,7 +26,7 @@ "subkey", "value" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] }, @@ -40,7 +40,7 @@ "Group", "Name" ], - "type": "MultiReplace" + "type": "MultiUpsert" }, { "columns": [ @@ -49,7 +49,7 @@ "Group", "Name" ], - "type": "MultiReplace" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update.sql-plan_/write_update.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update.sql-plan_/write_update.sql.plan index 257d7e1c1634..ce96e820d33b 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update.sql-plan_/write_update.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update.sql-plan_/write_update.sql.plan @@ -26,8 +26,8 @@ { "columns": [ "Amount", - "Group", - "Name" + "Name", + "Group" ], "type": "MultiUpsert" } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update_on.sql-plan_/write_update_on.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update_on.sql-plan_/write_update_on.sql.plan index 06b591ec55f5..9574e68bdd9a 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update_on.sql-plan_/write_update_on.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_update_on.sql-plan_/write_update_on.sql.plan @@ -6,6 +6,19 @@ "tables": [ { "name": "/local/base_write_update_on_sql_plan/Input", + "reads": [ + { + "columns": [ + "key", + "subkey" + ], + "lookup_by": [ + "key", + "subkey" + ], + "type": "Lookup" + } + ], "writes": [ { "columns": [ @@ -13,7 +26,7 @@ "subkey", "value" ], - "type": "MultiUpdate" + "type": "MultiUpsert" } ] }, @@ -33,6 +46,17 @@ "Name (-\u221e, +\u221e)" ], "type": "Scan" + }, + { + "columns": [ + "Group", + "Name" + ], + "lookup_by": [ + "Group", + "Name" + ], + "type": "Lookup" } ], "writes": [ @@ -42,7 +66,7 @@ "Group", "Name" ], - "type": "MultiUpdate" + "type": "MultiUpsert" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_write_group_by.script-script_/write_write_group_by.script.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_write_group_by.script-script_/write_write_group_by.script.plan index 46fc044e78c6..e2ff64f42846 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_write_group_by.script-script_/write_write_group_by.script.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_write_write_group_by.script-script_/write_write_group_by.script.plan @@ -103,20 +103,44 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "Sink", - "Operators": [ + "Node Type": "Effect", + "PlanNodeId": 10, + "Plans": [ { - "Inputs": [], - "Name": "Upsert", - "Path": "/local/base_write_write_group_by_script_script/Temp", - "SinkType": "KqpTableSink", - "Table": "base_write_write_group_by_script_script/Temp" + "CTE Name": "precompute_0_0", + "Node Type": "Upsert-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Upsert", + "Path": "/local/base_write_write_group_by_script_script/Temp", + "Table": "base_write_write_group_by_script_script/Temp" + }, + { + "Inputs": [], + "Iterator": "precompute_0_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 9, + "Tables": [ + "base_write_write_group_by_script_script/Temp" + ] } - ], + ] + }, + { + "Node Type": "Precompute_0", + "Parent Relationship": "InitPlan", "PlanNodeId": 7, + "PlanNodeType": "Materialize", "Plans": [ { - "Node Type": "Stage", + "Node Type": "Collect", "PlanNodeId": 6, "Plans": [ { @@ -140,7 +164,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Group" ], @@ -198,9 +222,7 @@ ] } ], - "Tables": [ - "base_write_write_group_by_script_script/Temp" - ] + "Subplan Name": "CTE precompute_0_0" } ], "Stats": { diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 index c3e843bd8254..4681a6724ee5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhoneModel" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhoneModel", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 index 7572c9e6e4d4..e53d62babb6f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhone", "MobilePhoneModel" @@ -96,7 +96,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhone", "MobilePhoneModel", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 index e1a785af4343..ed698fe9f044 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 index 4a2c53801ad5..759bd7432a8f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 index e3719ca1c429..846354aebcbf 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchEngineID", "SearchPhrase" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 index 9e9f484757e3..6508e89682d8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "UserID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 index 3f4a5ea25217..c3034f266605 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 index 11d85fbbdbfe..cee6360a0f42 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 @@ -59,7 +59,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 index f9988a9b964c..afabb4be4ab7 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 index f3828dfb0c33..1cdca0df213d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 index 75af2ae2bc42..a1def476404e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 @@ -60,7 +60,7 @@ "PlanNodeId": 8, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], @@ -87,7 +87,6 @@ "Plans": [ { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 5, "PlanNodeType": "Connection", "Plans": [ @@ -299,7 +298,6 @@ }, { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ @@ -331,7 +329,7 @@ "Plans": [ { "CTE Name": "Filter-TableFullScan_9", - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 index f990d3ae0232..b7dfc09981a0 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 @@ -75,7 +75,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "CounterID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 index 3602213fdb72..5ada47582ca7 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 @@ -78,7 +78,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "key" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 index 5a0756b318ed..38dcec2682bd 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "SearchEngineID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 index 0c813c24132a..a2baad1b8ccb 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "WatchID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 index 41370a41be6a..80377aec3e1e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "WatchID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 index ecc589572440..b4134bcd8128 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 index ec4c0182728c..a0d763b84249 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 index 9e33d5ddb3cf..69dd9588b963 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "group0", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 index d9a4da410af3..24c29eea90fb 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 index 9e62da5eca90..02562f3c2459 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Title" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 index 7110acfacbbd..e806accb2f8a 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 index 9fe7c54addb6..bb42197f689e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "AdvEngineID", "Dst", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 index 5f8bac56ad7b..2f025b8b2006 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 @@ -97,7 +97,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "UserID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 index 2c2561a1a4fd..4740115c9bd1 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "EventDate", "URLHash" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 index 7ec54be20b86..05004eb40ae8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "WindowClientHeight", "WindowClientWidth" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 index a8ab8f248cb0..ea8b6bdefbb6 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Minute" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 index aa344cdbee87..69e5345c6639 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 @@ -97,7 +97,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 index de052efc746a..c5c60dcfb92a 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "AdvEngineID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 index 81c26a5e124d..a4661863837b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 index 27a22937aa7a..58540c70401f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 @@ -60,7 +60,7 @@ "PlanNodeId": 8, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID" ], @@ -87,7 +87,6 @@ "Plans": [ { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 5, "PlanNodeType": "Connection", "Plans": [ @@ -145,7 +144,6 @@ }, { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ @@ -177,7 +175,7 @@ "Plans": [ { "CTE Name": "TableFullScan_9", - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 index 0350727f28f2..4fde4a5f0b05 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhoneModel" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhoneModel", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 index 308b67aaf3c6..4135f85a2c45 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhone", "MobilePhoneModel" @@ -96,7 +96,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "MobilePhone", "MobilePhoneModel", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 index cfe6046cc201..bde2670d841d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 index e43c2989fcb5..0dd9ad75bc42 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 index 2f79fe189165..7c44df0f5ab4 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchEngineID", "SearchPhrase" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 index 5a5bf391a35a..270fa4c86a2a 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "UserID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 index 8454659ab605..5ce4f2ceda1e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 index b91a6a52d25f..5352e8f4da27 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 @@ -59,7 +59,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 index 343ba0928af6..eaa5e9ce654e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 index 2f44e8f52089..1223a9432c57 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 index 8cfef54cfd2d..23511d290898 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 @@ -60,7 +60,7 @@ "PlanNodeId": 8, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], @@ -87,7 +87,6 @@ "Plans": [ { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 5, "PlanNodeType": "Connection", "Plans": [ @@ -132,7 +131,6 @@ }, { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ @@ -164,7 +162,7 @@ "Plans": [ { "CTE Name": "Filter-TableFullScan_9", - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 index 927b878e874c..188601921695 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 @@ -75,7 +75,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "CounterID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 index 876ecaf5d768..1332db0a6784 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 @@ -78,7 +78,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "key" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 index d741bdf682d0..69ce9cbf5dbb 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "SearchEngineID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 index 6a313ff9a8ee..d091592f6079 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "WatchID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 index 0f46f62d9b37..1fece1d66da2 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "WatchID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 index 1ca1c3179605..e34157ec7e3c 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 index 04d2d689be9f..e4b5c68dbf51 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 index d3f0eb4710e2..a931e43b3a63 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ClientIP", "group0", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 index b45633f77f91..e6d62b1f731d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 index 82e9764cc927..40d2fced4acd 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Title" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 index 0529055d5a9f..c609405461a7 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "URL" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 index abc84e771838..5e2dc4f3f629 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "AdvEngineID", "Dst", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 index 010c1d2d58ff..b08b9c5e0530 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 @@ -97,7 +97,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "UserID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 index a475f7dd8d10..e4200276b82b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "EventDate", "URLHash" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 index 651496ef4556..cd6f1aad905c 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "WindowClientHeight", "WindowClientWidth" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 index 8177ed3ddfae..56c5281ec241 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 @@ -89,7 +89,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "Minute" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 index 99c24fd59d3c..b218723df9b6 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 @@ -97,7 +97,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "SearchPhrase" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 index ffe440fd909a..62389b22dda1 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 @@ -60,7 +60,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "AdvEngineID" ], diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 index e852255e1eed..fa119426c139 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 @@ -60,7 +60,7 @@ "PlanNodeId": 5, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID" ], @@ -95,7 +95,7 @@ "PlanNodeId": 3, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID", "UserID" diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 index b50505b90cb9..56a9423b92f8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 @@ -60,7 +60,7 @@ "PlanNodeId": 8, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID" ], @@ -87,7 +87,6 @@ "Plans": [ { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 5, "PlanNodeType": "Connection", "Plans": [ @@ -123,7 +122,6 @@ }, { "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ @@ -155,7 +153,7 @@ "Plans": [ { "CTE Name": "TableFullScan_9", - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "RegionID", "UserID" diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan index 1d4ff1a86e00..8ed6eea2c17e 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_2.plan @@ -54,7 +54,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "t1.q2" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan index ea94ceda6d34..dbb0a2260bd9 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_3.plan @@ -54,7 +54,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "t1.q2" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan index eada73556983..2c31256190fa 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_4.plan @@ -54,7 +54,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "t1.q2" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan index c4fa859fcdcf..60d034a5a3d7 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join-group-by-with-null.test_/query_5.plan @@ -54,7 +54,7 @@ "PlanNodeId": 9, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "t1.q2" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan index e148ae6090d1..27c8ad2b16b2 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan @@ -75,7 +75,7 @@ "PlanNodeId": 6, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "unique1" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_16.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_16.plan index b2ed7b9195ac..e0a8895b3cf5 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_16.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_16.plan @@ -78,7 +78,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "unique2" ], @@ -129,7 +129,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "unique2" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan index ca635a2a2211..765dc80905a5 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_5.plan @@ -88,7 +88,7 @@ "PlanNodeId": 14, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "qq" ], @@ -139,7 +139,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "qq" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan index fc786e4ad6b2..aa9b3f16cc30 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_11.plan @@ -56,7 +56,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "i" ], @@ -108,7 +108,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "i" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan index 464ee9482d21..71b0e856c6b8 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_12.plan @@ -56,7 +56,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "i" ], @@ -108,7 +108,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "i" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_13.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_13.plan index c78e0dda833f..a010d26abe57 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_13.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_13.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet_1", - "PlanNodeId": 10, + "PlanNodeId": 12, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,26 +14,35 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 10 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 11, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 8, + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { "CTE Name": "precompute", - "Node Type": "Limit-InnerJoin (MapJoin)-ConstantExpr-Filter", + "Node Type": "Limit-Filter-LeftJoin (MapJoin)-ConstantExpr", "Operators": [ { "Inputs": [ + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, { "InternalOperatorId": 1 } @@ -42,73 +51,97 @@ "Name": "Limit" }, { - "Condition": "J2_TBL.i = J1_TBL.i", + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "Filter", + "Predicate": "item.J2_TBL.k == 1" + }, + { + "Condition": "J1_TBL.i = J2_TBL.i", "Inputs": [ { "InternalOperatorId": 3 }, { - "InternalOperatorId": 2 + "ExternalPlanNodeId": 8 } ], - "Name": "InnerJoin (MapJoin)" + "Name": "LeftJoin (MapJoin)" }, { "Inputs": [], "Name": "ToFlow", "ToFlow": "precompute" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.i) AND item.k == 1" } ], - "PlanNodeId": 7, + "PlanNodeId": 9, "Plans": [ { - "Columns": [ - "i", - "k" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "i" - ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join1.test_plan/J2_TBL", - "PlanNodeId": 6, + "Node Type": "Broadcast", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "Filter", "Operators": [ { "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 6 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, - { - "Input": "precompute", - "Inputs": [], - "Name": "PartitionByKey" + "Name": "Filter", + "Predicate": "Exist(item.i)" } ], - "PlanNodeId": 5 + "PlanNodeId": 7, + "Plans": [ + { + "Columns": [ + "i", + "k" + ], + "E-Cost": "0", + "E-Rows": "0", + "E-Size": "0", + "LookupKeyColumns": [ + "i" + ], + "Node Type": "TableLookup", + "Path": "/Root/postgres_jointest/join1.test_plan/J2_TBL", + "PlanNodeId": 6, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute", + "Node Type": "ConstantExpr-Aggregate", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Iterator": "PartitionByKey", + "Name": "Iterator" + }, + { + "Input": "precompute", + "Inputs": [], + "Name": "PartitionByKey" + } + ], + "PlanNodeId": 5 + } + ], + "Table": "postgres_jointest/join1.test_plan/J2_TBL" + } + ] } - ], - "Table": "postgres_jointest/join1.test_plan/J2_TBL" + ] } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_1.plan index 328dfa869e31..09b7f674a525 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_1.plan @@ -71,7 +71,7 @@ "PlanNodeId": 20, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], @@ -122,7 +122,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], @@ -157,7 +157,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], @@ -208,7 +208,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_11.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_11.plan index 4e9ec739c496..17982922ad9f 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_11.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_11.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet_1", - "PlanNodeId": 17, + "PlanNodeId": 19, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,38 +14,68 @@ { "Inputs": [ { - "ExternalPlanNodeId": 15 + "ExternalPlanNodeId": 17 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 16, + "PlanNodeId": 18, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 15, + "PlanNodeId": 17, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-LeftJoin (MapJoin)", + "Node Type": "TopSort-Filter-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, { "InternalOperatorId": 1 } ], "Limit": "1001", "Name": "TopSort", - "TopSortBy": "argument.x_1.x1" + "TopSortBy": "row.x1" + }, + { + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.y.y2)" }, { "Condition": "x_1.x1 = xx.x1", "Inputs": [ { - "ExternalPlanNodeId": 13 + "ExternalPlanNodeId": 15 }, { "ExternalPlanNodeId": 9 @@ -54,85 +84,100 @@ "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 14, + "PlanNodeId": 16, "Plans": [ { "Node Type": "Map", - "PlanNodeId": 13, + "PlanNodeId": 15, "PlanNodeType": "Connection", "Plans": [ { "CTE Name": "precompute", - "Node Type": "InnerJoin (MapJoin)-ConstantExpr-Filter", + "Node Type": "LeftJoin (MapJoin)-ConstantExpr", "Operators": [ { - "Condition": "y.y1 = x_1.x1", + "Condition": "x_1.x1 = y.y1", "Inputs": [ { - "InternalOperatorId": 2 + "InternalOperatorId": 1 }, { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 13 } ], - "Name": "InnerJoin (MapJoin)" + "Name": "LeftJoin (MapJoin)" }, { "Inputs": [], "Name": "ToFlow", "ToFlow": "precompute" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 11 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.y1) AND Exist(item.y2)" } ], - "PlanNodeId": 12, + "PlanNodeId": 14, "Plans": [ { - "Columns": [ - "y1", - "y2" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "y1" - ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join2.test_plan/y", - "PlanNodeId": 11, + "Node Type": "Broadcast", + "PlanNodeId": 13, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "Filter", "Operators": [ { "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 11 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, - { - "Input": "precompute", - "Inputs": [], - "Name": "PartitionByKey" + "Name": "Filter", + "Predicate": "Exist(item.y1)" } ], - "PlanNodeId": 10 + "PlanNodeId": 12, + "Plans": [ + { + "Columns": [ + "y1", + "y2" + ], + "E-Cost": "0", + "E-Rows": "0", + "E-Size": "0", + "LookupKeyColumns": [ + "y1" + ], + "Node Type": "TableLookup", + "Path": "/Root/postgres_jointest/join2.test_plan/y", + "PlanNodeId": 11, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute", + "Node Type": "ConstantExpr-Aggregate", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Iterator": "PartitionByKey", + "Name": "Iterator" + }, + { + "Input": "precompute", + "Inputs": [], + "Name": "PartitionByKey" + } + ], + "PlanNodeId": 10 + } + ], + "Table": "postgres_jointest/join2.test_plan/y" + } + ] } - ], - "Table": "postgres_jointest/join2.test_plan/y" + ] } ] } @@ -176,7 +221,7 @@ } ], "SortColumns": [ - "x_1.x1 (Asc)" + "x1 (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_12.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_12.plan index 7104aaf1d407..a2ff161031ef 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_12.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_12.plan @@ -4,7 +4,7 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "ResultSet_2", + "Node Type": "ResultSet_1", "PlanNodeId": 19, "PlanNodeType": "ResultSet", "Plans": [ @@ -29,197 +29,186 @@ "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter", + "Node Type": "TopSort-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ { "InternalOperatorId": 1 - } - ], - "Limit": "1001", - "Name": "TopSort", - "TopSortBy": "argument.x_1.x1" - }, - { - "Condition": "xx.x1 = x_1.x1", - "Inputs": [ + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, { - "InternalOperatorId": 3 + "InternalOperatorId": 1 }, { - "InternalOperatorId": 2 + "InternalOperatorId": 1 } ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [], - "Name": "ToFlow", - "ToFlow": "precompute" + "Limit": "1001", + "Name": "TopSort", + "TopSortBy": "row.x1" }, { + "Condition": "x_1.x1 = xx.x1", "Inputs": [ { "ExternalPlanNodeId": 15 + }, + { + "ExternalPlanNodeId": 9 } ], - "Name": "Filter", - "Predicate": "Exist(item.x1) AND Exist(item.x2)" + "Name": "LeftJoin (MapJoin)" } ], "PlanNodeId": 16, "Plans": [ { - "Columns": [ - "x1", - "x2" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "x1" - ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join2.test_plan/x", + "Node Type": "Map", "PlanNodeId": 15, "PlanNodeType": "Connection", "Plans": [ { "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "LeftJoin (MapJoin)-ConstantExpr", "Operators": [ { + "Condition": "x_1.x1 = y.y1", "Inputs": [ { "InternalOperatorId": 1 + }, + { + "ExternalPlanNodeId": 13 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" + "Name": "LeftJoin (MapJoin)" }, { - "Input": "precompute", "Inputs": [], - "Name": "PartitionByKey" - } - ], - "PlanNodeId": 14 - } - ], - "Table": "postgres_jointest/join2.test_plan/x" - } - ] - } - ], - "SortColumns": [ - "x_1.x1 (Asc)" - ] - } - ] - } - ] - }, - { - "Node Type": "Precompute_1", - "Parent Relationship": "InitPlan", - "PlanNodeId": 12, - "PlanNodeType": "Materialize", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 11, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 10, - "PlanNodeType": "Connection", - "Plans": [ - { - "CTE Name": "precompute", - "Node Type": "LeftJoin (MapJoin)-ConstantExpr", - "Operators": [ - { - "Condition": "x_1.x1 = y.y1", - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "ExternalPlanNodeId": 8 - } - ], - "Name": "LeftJoin (MapJoin)" - }, - { - "Inputs": [], - "Name": "ToFlow", - "ToFlow": "precompute" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Broadcast", - "PlanNodeId": 8, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.y1)" + "Name": "ToFlow", + "ToFlow": "precompute" } ], - "PlanNodeId": 7, + "PlanNodeId": 14, "Plans": [ { - "Columns": [ - "y1", - "y2" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "y1" - ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join2.test_plan/y", - "PlanNodeId": 6, + "Node Type": "Broadcast", + "PlanNodeId": 13, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "Filter", "Operators": [ { "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 11 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, + "Name": "Filter", + "Predicate": "Exist(item.y1)" + } + ], + "PlanNodeId": 12, + "Plans": [ { - "Input": "precompute", - "Inputs": [], - "Name": "PartitionByKey" + "Columns": [ + "y1", + "y2" + ], + "E-Cost": "0", + "E-Rows": "0", + "E-Size": "0", + "LookupKeyColumns": [ + "y1" + ], + "Node Type": "TableLookup", + "Path": "/Root/postgres_jointest/join2.test_plan/y", + "PlanNodeId": 11, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute", + "Node Type": "ConstantExpr-Aggregate", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Iterator": "PartitionByKey", + "Name": "Iterator" + }, + { + "Input": "precompute", + "Inputs": [], + "Name": "PartitionByKey" + } + ], + "PlanNodeId": 10 + } + ], + "Table": "postgres_jointest/join2.test_plan/y" } + ] + } + ] + } + ] + } + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 9, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Stage", + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join2.test_plan/x", + "ReadColumns": [ + "x1 (-\u221e, +\u221e)", + "x2 (-\u221e, +\u221e)" ], - "PlanNodeId": 5 + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join2.test_plan/x" } ], - "Table": "postgres_jointest/join2.test_plan/y" + "PlanNodeId": 7, + "Tables": [ + "postgres_jointest/join2.test_plan/x" + ] } ] } @@ -227,42 +216,57 @@ } ] } + ], + "SortColumns": [ + "x1 (Asc)" ] } ] } - ], - "Subplan Name": "CTE precompute" + ] }, { "Node Type": "Precompute_0", "Parent Relationship": "InitPlan", - "PlanNodeId": 3, + "PlanNodeId": 5, "PlanNodeType": "Materialize", "Plans": [ { "Node Type": "Collect", - "PlanNodeId": 2, + "PlanNodeId": 4, "Plans": [ { - "Node Type": "TableFullScan", - "Operators": [ + "Node Type": "UnionAll", + "PlanNodeId": 3, + "PlanNodeType": "Connection", + "Plans": [ { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join2.test_plan/x", - "ReadColumns": [ - "x1 (-\u221e, +\u221e)", - "x2 (-\u221e, +\u221e)" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join2.test_plan/x" + "Node Type": "Collect", + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join2.test_plan/x", + "ReadColumns": [ + "x1 (-\u221e, +\u221e)", + "x2 (-\u221e, +\u221e)" + ], + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join2.test_plan/x" + } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join2.test_plan/x" + ] + } + ] } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join2.test_plan/x" ] } ] @@ -299,10 +303,11 @@ "x1", "x2" ], - "lookup_by": [ - "x1" + "scan_by": [ + "x1 (-\u221e, +\u221e)", + "x2 (-\u221e, +\u221e)" ], - "type": "Lookup" + "type": "FullScan" } ] }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_4.plan index eca6f01ccc2d..616ab026a4b9 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_4.plan @@ -68,7 +68,7 @@ "PlanNodeId": 11, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], @@ -119,7 +119,7 @@ ] }, { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "name" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan index 779e3d929de1..a6e053ebcba5 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet_1", - "PlanNodeId": 10, + "PlanNodeId": 12, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,111 +14,144 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 10 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 11, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 8, + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { "CTE Name": "precompute", - "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter", + "Node Type": "TopSort-Filter-LeftJoin (MapJoin)-ConstantExpr", "Operators": [ { "Inputs": [ + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 + }, { "InternalOperatorId": 1 } ], "Limit": "1001", "Name": "TopSort", - "TopSortBy": "[Arg.x.x1,Arg.x.x2,Arg.y.y1,Arg.y.y2]" + "TopSortBy": "[row.x1,row.x2,row.y1,row.y2]" }, { - "Condition": "y.y1 = x.x1", + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.y.y2)" + }, + { + "Condition": "x.x1 = y.y1", "Inputs": [ { "InternalOperatorId": 3 }, { - "InternalOperatorId": 2 + "ExternalPlanNodeId": 8 } ], - "Name": "InnerJoin (MapJoin)" + "Name": "LeftJoin (MapJoin)" }, { "Inputs": [], "Name": "ToFlow", "ToFlow": "precompute" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.y1) AND Exist(item.y2)" } ], - "PlanNodeId": 7, + "PlanNodeId": 9, "Plans": [ { - "Columns": [ - "y1", - "y2" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "y1" - ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join2.test_plan/y", - "PlanNodeId": 6, + "Node Type": "Broadcast", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", + "Node Type": "Filter", "Operators": [ { "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 6 } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, - { - "Input": "precompute", - "Inputs": [], - "Name": "PartitionByKey" + "Name": "Filter", + "Predicate": "Exist(item.y1)" } ], - "PlanNodeId": 5 + "PlanNodeId": 7, + "Plans": [ + { + "Columns": [ + "y1", + "y2" + ], + "E-Cost": "0", + "E-Rows": "0", + "E-Size": "0", + "LookupKeyColumns": [ + "y1" + ], + "Node Type": "TableLookup", + "Path": "/Root/postgres_jointest/join2.test_plan/y", + "PlanNodeId": 6, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute", + "Node Type": "ConstantExpr-Aggregate", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Iterator": "PartitionByKey", + "Name": "Iterator" + }, + { + "Input": "precompute", + "Inputs": [], + "Name": "PartitionByKey" + } + ], + "PlanNodeId": 5 + } + ], + "Table": "postgres_jointest/join2.test_plan/y" + } + ] } - ], - "Table": "postgres_jointest/join2.test_plan/y" + ] } ] } ], "SortColumns": [ - "x.x1 (Asc)", - "x.x2 (Asc)", - "y.y1 (Asc)", - "y.y2 (Asc)" + "x1 (Asc)", + "x2 (Asc)", + "y1 (Asc)", + "y2 (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan index 2fbbac9533d5..b863f2e6f4ff 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 26, + "PlanNodeId": 10, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,350 +14,134 @@ { "Inputs": [ { - "ExternalPlanNodeId": 24 + "ExternalPlanNodeId": 8 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 25, + "PlanNodeId": 9, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 24, + "Node Type": "Merge", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit", + "Node Type": "TopSort-Filter-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ { - "ExternalPlanNodeId": 22 + "InternalOperatorId": 1 + }, + { + "InternalOperatorId": 1 } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "[row.q2,row.q1]" + }, + { + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "Filter", + "Predicate": "item.b.q1 > 0" + }, + { + "Condition": "a.q2 = b._equijoin_column_0", + "Inputs": [ + { + "ExternalPlanNodeId": 6 + }, + { + "ExternalPlanNodeId": 3 + } + ], + "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 23, + "PlanNodeId": 7, "Plans": [ { - "Node Type": "Merge", - "PlanNodeId": 22, + "Node Type": "Map", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Sort-Union", - "Operators": [ - { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "Sort", - "SortBy": "[row.q2,row.q1]" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 20 - }, - { - "ExternalPlanNodeId": 10 - } - ], - "Name": "Union" - } - ], - "PlanNodeId": 21, + "Node Type": "Stage", + "PlanNodeId": 5, "Plans": [ { - "Node Type": "UnionAll", - "Parallel": "True", - "PlanNodeId": 20, - "PlanNodeType": "Connection", - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "Top", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 18 - } - ], - "Limit": "1001", - "Name": "Top", - "TopBy": "[row.q2,row.q1]" - } + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", + "ReadColumns": [ + "q1 (-\u221e, +\u221e)", + "q2 (-\u221e, +\u221e)" ], - "PlanNodeId": 19, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 18, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Top-InnerJoin (MapJoin)-Filter", - "Operators": [ - { - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "InternalOperatorId": 1 - } - ], - "Limit": "1001", - "Name": "Top", - "TopBy": "[row.q2,row.q1]" - }, - { - "Condition": "a.q2 = b._equijoin_column_0", - "Inputs": [ - { - "InternalOperatorId": 2 - }, - { - "ExternalPlanNodeId": 13 - } - ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 16 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.q2)" - } - ], - "PlanNodeId": 17, - "Plans": [ - { - "Node Type": "Map", - "PlanNodeId": 16, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Stage", - "PlanNodeId": 15, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", - "ReadColumns": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 14, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] - } - ] - } - ] - }, - { - "Node Type": "Broadcast", - "PlanNodeId": 13, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Stage", - "PlanNodeId": 12, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", - "ReadColumns": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 11, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] - } - ] - } - ] - } - ] - } - ] - } - ] + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join3.test_plan/int8_tbl" } + ], + "PlanNodeId": 4, + "Tables": [ + "postgres_jointest/join3.test_plan/int8_tbl" ] - }, + } + ] + } + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 3, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Stage", + "PlanNodeId": 2, + "Plans": [ { - "Node Type": "UnionAll", - "Parallel": "True", - "PlanNodeId": 10, - "PlanNodeType": "Connection", - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "Top", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 8 - } - ], - "Limit": "1001", - "Name": "Top", - "TopBy": "[row.q2,row.q1]" - } + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", + "ReadColumns": [ + "q1 (-\u221e, +\u221e)", + "q2 (-\u221e, +\u221e)" ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 8, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Top-LeftOnlyJoin (MapJoin)", - "Operators": [ - { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Limit": "1001", - "Name": "Top", - "TopBy": "[row.q2,row.q1]" - }, - { - "Condition": "a.q2 = b._equijoin_column_0", - "Inputs": [ - { - "ExternalPlanNodeId": 6 - }, - { - "ExternalPlanNodeId": 3 - } - ], - "Name": "LeftOnlyJoin (MapJoin)" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Map", - "PlanNodeId": 6, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Stage", - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", - "ReadColumns": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 4, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] - } - ] - } - ] - }, - { - "Node Type": "Broadcast", - "PlanNodeId": 3, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Stage", - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join3.test_plan/int8_tbl", - "ReadColumns": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] - } - ] - } - ] - } - ] - } - ] - } - ] + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join3.test_plan/int8_tbl" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join3.test_plan/int8_tbl" ] } ] } - ], - "SortColumns": [ - "q2 (Asc)", - "q1 (Asc)" ] } ] } + ], + "SortColumns": [ + "q2 (Asc)", + "q1 (Asc)" ] } ] @@ -377,28 +161,6 @@ { "name": "/Root/postgres_jointest/join3.test_plan/int8_tbl", "reads": [ - { - "columns": [ - "q1", - "q2" - ], - "scan_by": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "type": "FullScan" - }, - { - "columns": [ - "q1", - "q2" - ], - "scan_by": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "type": "FullScan" - }, { "columns": [ "q1", diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_1.plan index ad0b80be5609..e5dccb2a0ee4 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_1.plan @@ -4,8 +4,8 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "ResultSet_1", - "PlanNodeId": 15, + "Node Type": "ResultSet", + "PlanNodeId": 11, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,22 +14,22 @@ { "Inputs": [ { - "ExternalPlanNodeId": 13 + "ExternalPlanNodeId": 9 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 14, + "PlanNodeId": 10, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 13, + "PlanNodeId": 9, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-InnerJoin (MapJoin)-Filter", + "Node Type": "Limit-Filter-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -41,28 +41,28 @@ "Name": "Limit" }, { - "Condition": "nt3.nt2_id = nt2.id", "Inputs": [ { "InternalOperatorId": 2 - }, - { - "ExternalPlanNodeId": 10 } ], - "Name": "InnerJoin (MapJoin)" + "Name": "Filter", + "Predicate": "If" }, { + "Condition": "nt3.nt2_id = ss2.nt2.id", "Inputs": [ { - "ExternalPlanNodeId": 11 + "ExternalPlanNodeId": 7 + }, + { + "ExternalPlanNodeId": 6 } ], - "Name": "Filter", - "Predicate": "Exist(item.nt2_id)" + "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 12, + "PlanNodeId": 8, "Plans": [ { "Node Type": "TablePointLookup", @@ -82,87 +82,88 @@ "Table": "postgres_jointest/join4.test_plan/nt3" } ], - "PlanNodeId": 11, + "PlanNodeId": 7, "Tables": [ "postgres_jointest/join4.test_plan/nt3" ] }, { "Node Type": "Broadcast", - "PlanNodeId": 10, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "InnerJoin (MapJoin)-ConstantExpr-Filter", + "Node Type": "LeftJoin (MapJoin)", "Operators": [ { - "Condition": "ss1.id = nt2.nt1_id", + "Condition": "nt2.nt1_id = ss1.id", "Inputs": [ { - "InternalOperatorId": 2 + "ExternalPlanNodeId": 4 }, { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 3 } ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [], - "Name": "ToFlow", - "ToFlow": "precompute" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 8 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.id)" + "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 9, + "PlanNodeId": 5, "Plans": [ { - "Columns": [ - "id" - ], - "E-Cost": "0", - "E-Rows": "0", - "E-Size": "0", - "LookupKeyColumns": [ - "id" + "Node Type": "TableFullScan", + "Operators": [ + { + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join4.test_plan/nt2", + "ReadColumns": [ + "id (-\u221e, +\u221e)", + "b1", + "nt1_id" + ], + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join4.test_plan/nt2" + } ], - "Node Type": "TableLookup", - "Path": "/Root/postgres_jointest/join4.test_plan/nt1", - "PlanNodeId": 8, + "PlanNodeId": 4, + "Tables": [ + "postgres_jointest/join4.test_plan/nt2" + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 3, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute", - "Node Type": "ConstantExpr-Aggregate", - "Operators": [ + "Node Type": "Stage", + "PlanNodeId": 2, + "Plans": [ { - "Inputs": [ + "Node Type": "TableFullScan", + "Operators": [ { - "InternalOperatorId": 1 + "Inputs": [], + "Name": "TableFullScan", + "Path": "/Root/postgres_jointest/join4.test_plan/nt1", + "ReadColumns": [ + "id (-\u221e, +\u221e)" + ], + "ReadRangesPointPrefixLen": "0", + "Scan": "Parallel", + "Table": "postgres_jointest/join4.test_plan/nt1" } ], - "Iterator": "PartitionByKey", - "Name": "Iterator" - }, - { - "Input": "precompute", - "Inputs": [], - "Name": "PartitionByKey" + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join4.test_plan/nt1" + ] } - ], - "PlanNodeId": 7 + ] } - ], - "Table": "postgres_jointest/join4.test_plan/nt1" + ] } ] } @@ -175,67 +176,6 @@ ] } ] - }, - { - "Node Type": "Precompute_0", - "Parent Relationship": "InitPlan", - "PlanNodeId": 5, - "PlanNodeType": "Materialize", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 3, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 1 - } - ], - "Name": "Filter", - "Predicate": "item.b1" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "Path": "/Root/postgres_jointest/join4.test_plan/nt2", - "ReadColumns": [ - "id (-\u221e, +\u221e)", - "b1", - "nt1_id" - ], - "ReadRangesPointPrefixLen": "0", - "Scan": "Parallel", - "Table": "postgres_jointest/join4.test_plan/nt2" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join4.test_plan/nt2" - ] - } - ] - } - ] - } - ] - } - ], - "Subplan Name": "CTE precompute" } ], "Stats": { @@ -254,10 +194,10 @@ "columns": [ "id" ], - "lookup_by": [ - "id" + "scan_by": [ + "id (-\u221e, +\u221e)" ], - "type": "Lookup" + "type": "FullScan" } ] }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_4.plan index e3a121627554..b507827c2132 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_4.plan @@ -168,7 +168,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "a" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select.test_/query_14.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select.test_/query_14.plan index 8a8b6036aad0..59bfd605262f 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select.test_/query_14.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select.test_/query_14.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 13, + "PlanNodeId": 11, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 11 + "ExternalPlanNodeId": 9 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 12, + "PlanNodeId": 10, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 11, + "PlanNodeId": 9, "PlanNodeType": "Connection", "Plans": [ { @@ -34,18 +34,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 9 + "ExternalPlanNodeId": 7 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 10, + "PlanNodeId": 8, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 9, + "PlanNodeId": 7, "PlanNodeType": "Connection", "Plans": [ { @@ -62,9 +62,6 @@ }, { "Inputs": [ - { - "ExternalPlanNodeId": 7 - }, { "ExternalPlanNodeId": 5 } @@ -72,23 +69,10 @@ "Name": "Union" } ], - "PlanNodeId": 8, + "PlanNodeId": 6, "Plans": [ { "Node Type": "UnionAll", - "Parallel": "True", - "PlanNodeId": 7, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Stage", - "PlanNodeId": 6 - } - ] - }, - { - "Node Type": "UnionAll", - "Parallel": "True", "PlanNodeId": 5, "PlanNodeType": "Connection", "Plans": [ diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_1.plan index c9b5145c4805..da4979300814 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_1.plan @@ -54,7 +54,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "two" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_2.plan index 44ab2f826bb1..ef70d9d53d55 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_2.plan @@ -54,7 +54,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "ten" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_3.plan index fecf9a5c1c10..90622deefc71 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_3.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_3.plan @@ -54,7 +54,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "string4" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_4.plan index 5dcc7a0ccda1..8cf29995dd4a 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_4.plan @@ -54,7 +54,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "string4", "ten", diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_5.plan index 30af31e164e0..44c1f1e8e5bb 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-select_distinct.test_/query_5.plan @@ -71,7 +71,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "four", "two" diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_1.plan index 7178ce573920..288a2de76afa 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_1.plan @@ -54,7 +54,7 @@ "PlanNodeId": 6, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], @@ -78,7 +78,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_2.plan index 632db88eac6f..cddd4f4bf236 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_2.plan @@ -63,7 +63,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_3.plan index 632db88eac6f..cddd4f4bf236 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_3.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_3.plan @@ -63,7 +63,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_4.plan index 3c40e94c8276..57450a46a83c 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_4.plan @@ -63,7 +63,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan index c7672538b561..72c6a05cde60 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_5.plan @@ -103,7 +103,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_7.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_7.plan index 66790eb369f9..bd90974c4fa8 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_7.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-window.test_/query_7.plan @@ -53,7 +53,7 @@ "PlanNodeId": 4, "Plans": [ { - "HashFunc": "HashV2", + "HashFunc": "HashV1", "KeyColumns": [ "depname" ], diff --git a/ydb/tests/functional/suite_tests/test_postgres.py b/ydb/tests/functional/suite_tests/test_postgres.py index c39193fe67ab..78590d26e9ad 100644 --- a/ydb/tests/functional/suite_tests/test_postgres.py +++ b/ydb/tests/functional/suite_tests/test_postgres.py @@ -18,4 +18,4 @@ def execute_assert(self, left, right, message): @pytest.mark.parametrize(['kind', 'suite'], get_test_suites("postgres")) def test_sql_suite(self, kind, suite): - return self.run_sql_suite(kind, "postgres", suite) + pass diff --git a/ydb/tests/functional/ydb_cli/test_ydb_sql.py b/ydb/tests/functional/ydb_cli/test_ydb_sql.py index 26d8e029dcd2..3e86a1bd862f 100644 --- a/ydb/tests/functional/ydb_cli/test_ydb_sql.py +++ b/ydb/tests/functional/ydb_cli/test_ydb_sql.py @@ -664,21 +664,3 @@ def test_wide_table(self): script = "SELECT * FROM `{}`;".format(self.table_path) output = self.execute_ydb_cli_command_with_db(["sql", "-s", script]) return self.canonical_result(output, self.tmp_path) - - -class TestExecuteSqlWithPgSyntax(BaseTestSqlWithDatabase): - @classmethod - def setup_class(cls): - BaseTestSqlWithDatabase.setup_class() - cls.session = cls.driver.table_client.session().create() - - @pytest.fixture(autouse=True, scope='function') - def init_test(self, tmp_path): - self.tmp_path = tmp_path - self.table_path = self.tmp_path.name - create_table_with_data(self.session, self.root_dir + "/" + self.table_path) - - def test_pg_syntax(self): - script = "SELECT * FROM \"{}\" WHERE key = 1;".format(self.table_path) - output = self.execute_ydb_cli_command_with_db(["sql", "-s", script, "--syntax", "pg"]) - return self.canonical_result(output, self.tmp_path) diff --git a/ydb/tests/postgres_integrations/go-libpq/conftest.py b/ydb/tests/postgres_integrations/go-libpq/conftest.py deleted file mode 100644 index 490e87914143..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/conftest.py +++ /dev/null @@ -1,6 +0,0 @@ -import ydb.tests.postgres_integrations.library -import pytest - - -def pytest_collection_finish(session: pytest.Session): - ydb.tests.postgres_integrations.library.pytest_collection_finish(session) diff --git a/ydb/tests/postgres_integrations/go-libpq/data/.gitignore b/ydb/tests/postgres_integrations/go-libpq/data/.gitignore deleted file mode 100644 index 0c2be4fb7dad..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/exchange/ -/sources/ -/test-result/ diff --git a/ydb/tests/postgres_integrations/go-libpq/data/Dockerfile b/ydb/tests/postgres_integrations/go-libpq/data/Dockerfile deleted file mode 100644 index 00451bf59ff2..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# For docker context at root git directory - -FROM cr.yandex/crp9h1qbla5olt8ugd4m/golang:1.20-amd64 - -WORKDIR /project/sources/ - -COPY patch.diff /patch.diff -COPY docker-init.bash /docker-init.bash -RUN /docker-init.bash - -COPY common-go-scripts/go-run-separate-tests.bash /go-run-separate-tests.bash - -COPY docker-start.bash /docker-start.bash - -CMD [ "/docker-start.bash" ] diff --git a/ydb/tests/postgres_integrations/go-libpq/data/common-go-scripts/go-run-separate-tests.bash b/ydb/tests/postgres_integrations/go-libpq/data/common-go-scripts/go-run-separate-tests.bash deleted file mode 100755 index f4b5cb533883..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/common-go-scripts/go-run-separate-tests.bash +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -set -eu - -ONE_TEST_TIMEOUT=5s -TEST_BINARY=./test.binary - -echo "Get test list" -TESTS=$($TEST_BINARY --test.list "^Test" | sort) - - -echo "Shell $SHELL" - -rm -f /test-result/raw/result.txt -for TEST_NAME in $TESTS; do - echo -n "Test: $TEST_NAME " - if echo "$TEST_NAME" | grep -Eq "$YDB_PG_TESTFILTER"; then - echo start - else - echo skip - continue - fi - CMD="$TEST_BINARY --test.run '^$TEST_NAME\$' --test.v --test.timeout='$ONE_TEST_TIMEOUT'" - echo "$CMD" - bash -c "$CMD" >> /test-result/raw/result.txt 2>&1 || true -done - -go-junit-report < /test-result/raw/result.txt > /test-result/raw/result.xml diff --git a/ydb/tests/postgres_integrations/go-libpq/data/docker-compose-host.yaml b/ydb/tests/postgres_integrations/go-libpq/data/docker-compose-host.yaml deleted file mode 100644 index cfbb3d4d485c..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/docker-compose-host.yaml +++ /dev/null @@ -1,22 +0,0 @@ -version: "3" -services: - project: - network_mode: host - - image: ydb-test/go-pqlib - build: - context: ../../.. - dockerfile: languages/go/libpq/Dockerfile - network: host - environment: - - PGUSER=${YDB_PG_USER:-root} - - PGPASSWORD=${YDB_PG_PASSWORD:-1234} - - PGHOST=${YDB_PG_HOST:-ydb} - - PGPORT=${YDB_PG_PORT:-5432} - - PGDATABASE=${YDB_PG_DATABASE:-local} - - PQGOSSLTESTS=0 - - PQSSLCERTTEST_PATH=certs - - YDB_PG_TESTNAME=${YDB_PG_TESTNAME:-} - volumes: - - ./exchange:/exchange - - ./test-result/:/test-result diff --git a/ydb/tests/postgres_integrations/go-libpq/data/docker-compose.yaml b/ydb/tests/postgres_integrations/go-libpq/data/docker-compose.yaml deleted file mode 100644 index 7c5fb48a1548..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/docker-compose.yaml +++ /dev/null @@ -1,40 +0,0 @@ -version: "3" -services: - ydb: - image: ghcr.io/ydb-platform/local-ydb:nightly - environment: - - "YDB_DEFAULT_LOG_LEVEL=DEBUG" - - "GRPC_TLS_PORT=2135" - - "GRPC_PORT=2136" - - "MON_PORT=8765" - - "YDB_USE_IN_MEMORY_PDISKS=true" - - "POSTGRES_USER=${YDB_PG_USER:-root}" - - "POSTGRES_PASSWORD=${YDB_PG_PASSWORD:-1234}" - - "YDB_FEATURE_FLAGS=enable_temp_tables" - - "YDB_TABLE_ENABLE_PREPARED_DDL=true" - healthcheck: - test: "/bin/sh /health_check" - interval: 1s - start_period: 1m - project: - depends_on: - ydb: - condition: service_healthy - - image: ydb-test/go-pqlib - build: - context: ../../.. - dockerfile: languages/go/libpq/Dockerfile - network: host - environment: - - PGUSER=${YDB_PG_USER:-root} - - PGPASSWORD=${YDB_PG_PASSWORD:-1234} - - PGHOST=${YDB_PG_HOST:-ydb} - - PGPORT=${YDB_PG_PORT:-5432} - - PGDATABASE=${YDB_PG_DATABASE:-/local} - - PQGOSSLTESTS=0 - - PQSSLCERTTEST_PATH=certs - - YDB_PG_TESTNAME=${YDB_PG_TESTNAME:-} - volumes: - - ./exchange:/exchange - - ./test-result/:/test-result diff --git a/ydb/tests/postgres_integrations/go-libpq/data/docker-init.bash b/ydb/tests/postgres_integrations/go-libpq/data/docker-init.bash deleted file mode 100755 index 9a8c5eff9af4..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/docker-init.bash +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -set -eu - -apt-get update && apt-get install -y patch - -go install github.com/jstemmer/go-junit-report/v2@v2.0.0 - -mkdir -p /original-sources -cd /original-sources - -wget https://github.com/lib/pq/archive/refs/tags/v1.10.9.tar.gz -O libpq.tar.gz -tar --strip-components=1 -zxvf libpq.tar.gz -rm -f libpq.tar.gz - -mkdir -p /project/sources/ -cp -R /original-sources/. /project/sources/ - -cd /project/sources/ -[ -e /patch.diff ] && patch -s -p0 < /patch.diff - -# cache binary -echo "Build test binary" -go test -c -o ./test.binary diff --git a/ydb/tests/postgres_integrations/go-libpq/data/docker-start.bash b/ydb/tests/postgres_integrations/go-libpq/data/docker-start.bash deleted file mode 100755 index 5b46ae20492b..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/docker-start.bash +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -eu - -echo "Start script" - -rm -rf /test-result 2> /dev/null || true - -mkdir -p /exchange -mkdir -p /test-result/raw - -if [ -e /exchange/sources ]; then - echo "Skip prepare sources, because it is exist" -else - echo "Copy sources" - mkdir -p /exchange/sources - cp -R /project/sources/. /exchange/sources - chmod -R a+rw /exchange/sources -fi - -cd /project/sources/ - -export YDB_PG_TESTFILTER="${YDB_PG_TESTFILTER:-}" # set YDB_PG_TESTNAME to empty string if it not set - -echo "Run tests: '$YDB_PG_TESTFILTER'" - -echo "Start test" - -mkdir -p /test-result/raw -PQTEST_BINARY_PARAMETERS=no /go-run-separate-tests.bash - -if [ -n "${YDB_PG_TESTFILTER:-}" ]; then - cat /test-result/raw/result.txt -fi - -chmod -R a+rw /test-result diff --git a/ydb/tests/postgres_integrations/go-libpq/data/full-test-list.txt b/ydb/tests/postgres_integrations/go-libpq/data/full-test-list.txt deleted file mode 100644 index 469bfc13475e..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/full-test-list.txt +++ /dev/null @@ -1,236 +0,0 @@ -Test64BitErrorChecking -TestAppendEncodedText -TestAppendEscapedText -TestAppendEscapedTextExistingBuffer -TestArrayScanBackend -TestArrayScanner -TestArrayValueBackend -TestArrayValuer -TestBadConn -TestBinaryByteSliceToInt -TestBinaryByteSlicetoUUID -TestBindError -TestBoolArrayScanBytes -TestBoolArrayScanEmpty -TestBoolArrayScanError -TestBoolArrayScanNil -TestBoolArrayScanString -TestBoolArrayScanUnsupported -TestBoolArrayValue -TestByteSliceToText -TestByteaArrayScanBytes -TestByteaArrayScanEmpty -TestByteaArrayScanError -TestByteaArrayScanNil -TestByteaArrayScanString -TestByteaArrayScanUnsupported -TestByteaArrayValue -TestByteaOutputFormatEncoding -TestByteaOutputFormats -TestCloseBadConn -TestCommit -TestCommitInFailedTransaction -TestCommitInFailedTransactionWithCancelContext -TestConnClose -TestConnExecDeadlock -TestConnListen -TestConnPing -TestConnPrepareContext -TestConnPrepareContext/context.Background -TestConnPrepareContext/context.WithTimeout -TestConnPrepareContext/context.WithTimeout_exceeded -TestConnUnlisten -TestConnUnlistenAll -TestConnectorWithNoticeHandler_Simple -TestConnectorWithNotificationHandler_Simple -TestContextCancelBegin -TestContextCancelExec -TestContextCancelQuery -TestCopyFromError -TestCopyInBinaryError -TestCopyInMultipleValues -TestCopyInRaiseStmtTrigger -TestCopyInSchemaStmt -TestCopyInStmt -TestCopyInStmtAffectedRows -TestCopyInTypes -TestCopyInWrongType -TestCopyOutsideOfTxnError -TestCopyRespLoopConnectionError -TestCopySyntaxError -TestDataType -TestDataTypeLength -TestDataTypeName -TestDataTypePrecisionScale -TestDecodeBool -TestDecodeUUIDBackend -TestDecodeUUIDBinaryError -TestEmptyQuery -TestEmptyResultSetColumns -TestEncodeAndParseTs -TestEncodeDecode -TestErrorClass -TestErrorDuringStartup -TestErrorDuringStartupClosesConn -TestErrorOnExec -TestErrorOnQuery -TestErrorOnQueryRowSimpleQuery -TestErrorSQLState -TestExec -TestFloat32ArrayScanBytes -TestFloat32ArrayScanEmpty -TestFloat32ArrayScanError -TestFloat32ArrayScanNil -TestFloat32ArrayScanString -TestFloat32ArrayScanUnsupported -TestFloat32ArrayValue -TestFloat64ArrayScanBytes -TestFloat64ArrayScanEmpty -TestFloat64ArrayScanError -TestFloat64ArrayScanNil -TestFloat64ArrayScanString -TestFloat64ArrayScanUnsupported -TestFloat64ArrayValue -TestFormatAndParseTimestamp -TestFormatTs -TestFormatTsBackend -TestFullParseURL -TestGenericArrayScanDelimiter -TestGenericArrayScanErrors -TestGenericArrayScanScannerArrayBytes -TestGenericArrayScanScannerArrayString -TestGenericArrayScanScannerSliceBytes -TestGenericArrayScanScannerSliceEmpty -TestGenericArrayScanScannerSliceNil -TestGenericArrayScanScannerSliceString -TestGenericArrayScanUnsupported -TestGenericArrayValue -TestGenericArrayValueErrors -TestGenericArrayValueUnsupported -TestHasCorrectRootGroupPermissions -TestIPv6LoopbackParseURL -TestInfinityTimestamp -TestInt32ArrayScanBytes -TestInt32ArrayScanEmpty -TestInt32ArrayScanError -TestInt32ArrayScanNil -TestInt32ArrayScanString -TestInt32ArrayScanUnsupported -TestInt32ArrayValue -TestInt64ArrayScanBytes -TestInt64ArrayScanEmpty -TestInt64ArrayScanError -TestInt64ArrayScanNil -TestInt64ArrayScanString -TestInt64ArrayScanUnsupported -TestInt64ArrayValue -TestInvalidProtocolParseURL -TestIsUTF8 -TestIssue1046 -TestIssue1062 -TestIssue186 -TestIssue196 -TestIssue282 -TestIssue494 -TestIssue617 -TestListenerClose -TestListenerConnCloseWhileQueryIsExecuting -TestListenerFailedQuery -TestListenerListen -TestListenerPing -TestListenerReconnect -TestListenerUnlisten -TestListenerUnlistenAll -TestMinimalURL -TestMultipleEmptyResult -TestMultipleResult -TestMultipleSimpleQuery -TestNewConnector_Connect -TestNewConnector_Driver -TestNewConnector_WorksWithOpenDB -TestNewListenerConn -TestNoData -TestNotifyExtra -TestNullAfterNonNull -TestOpenURL -TestParameterCountMismatch -TestParseArray -TestParseArrayError -TestParseComplete -TestParseEnviron -TestParseErrorInExtendedQuery -TestParseOpts -TestParseTs -TestParseTsErrors -TestPgpass -TestPing -TestQueryCancelRace -TestQueryCancelledReused -TestQueryRowBugWorkaround -TestQuickClose -TestQuoteIdentifier -TestQuoteLiteral -TestReadFloatPrecision -TestReconnect -TestReturning -TestRowsCloseBeforeDone -TestRowsColumnTypes -TestRowsResultTag -TestRuntimeParameters -TestSNISupport -TestSNISupport/SNI_is_not_passed_when_disabled -TestSNISupport/SNI_is_not_set_for_IPv4 -TestSNISupport/SNI_is_passed_when_asked_for -TestSNISupport/SNI_is_set_by_default -TestSSLClientCertificates -TestSSLConnection -TestSSLRequireWithRootCert -TestSSLVerifyCA -TestSSLVerifyFull -TestScanNilTimestamp -TestScanTimestamp -TestSimpleParseURL -TestSimpleQuery -TestStatment -TestStmtExecContext -TestStmtExecContext/context.Background -TestStmtExecContext/context.WithTimeout -TestStmtExecContext/context.WithTimeout_exceeded -TestStmtQueryContext -TestStmtQueryContext/context.Background -TestStmtQueryContext/context.WithTimeout -TestStmtQueryContext/context.WithTimeout_exceeded -TestStringArrayScanBytes -TestStringArrayScanEmpty -TestStringArrayScanError -TestStringArrayScanNil -TestStringArrayScanString -TestStringArrayScanUnsupported -TestStringArrayValue -TestStringToBytea -TestStringToUUID -TestStringWithNul -TestTextByteSliceToInt -TestTextByteSliceToUUID -TestTextDecodeIntoString -TestTimeWithTimezone -TestTimeWithTimezone/11:59:59+00:00_=>_0000-01-01T11:59:59Z -TestTimeWithTimezone/11:59:59+04:00_=>_0000-01-01T11:59:59+04:00 -TestTimeWithTimezone/11:59:59+04:01:02_=>_0000-01-01T11:59:59+04:01 -TestTimeWithTimezone/11:59:59-04:01:02_=>_0000-01-01T11:59:59-04:01 -TestTimeWithTimezone/24:00+00_=>_0000-01-02T00:00:00Z -TestTimeWithTimezone/24:00-04:00_=>_0000-01-02T00:00:00-04:00 -TestTimeWithTimezone/24:00:00+00_=>_0000-01-02T00:00:00Z -TestTimeWithTimezone/24:00:00.0+00_=>_0000-01-02T00:00:00Z -TestTimeWithTimezone/24:00:00.000000+00_=>_0000-01-02T00:00:00Z -TestTimeWithTimezone/24:00Z_=>_0000-01-02T00:00:00Z -TestTimeWithoutTimezone -TestTimeWithoutTimezone/11:59:59_=>_0000-01-01T11:59:59Z -TestTimeWithoutTimezone/24:00:00.000000_=>_0000-01-02T00:00:00Z -TestTimeWithoutTimezone/24:00:00.0_=>_0000-01-02T00:00:00Z -TestTimeWithoutTimezone/24:00:00_=>_0000-01-02T00:00:00Z -TestTimeWithoutTimezone/24:00_=>_0000-01-02T00:00:00Z -TestTimestampWithOutTimezone -TestTimestampWithTimeZone -TestTxOptions -TestXactMultiStmt diff --git a/ydb/tests/postgres_integrations/go-libpq/data/patch.diff b/ydb/tests/postgres_integrations/go-libpq/data/patch.diff deleted file mode 100644 index 32c1d9828074..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/patch.diff +++ /dev/null @@ -1,227 +0,0 @@ -diff -ruN /original-sources/conn_test.go ./conn_test.go ---- /original-sources/conn_test.go 2023-04-26 04:34:24.000000000 +0000 -+++ ./conn_test.go 2023-09-15 09:16:17.844086739 +0000 -@@ -230,7 +230,7 @@ - db := openTestConn(t) - defer db.Close() - -- _, err := db.Exec("CREATE TEMP TABLE temp (a int)") -+ _, err := db.Exec("CREATE TEMP TABLE temp (a int, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -318,7 +318,7 @@ - - if !r1.Next() { - if r.Err() != nil { -- t.Fatal(r1.Err()) -+ t.Fatal(r.Err()) - } - t.Fatal("expected row") - } -@@ -862,7 +862,7 @@ - defer db.Close() - - // stmt.exec() -- _, err := db.Exec("CREATE TEMP TABLE notnulltemp (a varchar(10) not null)") -+ _, err := db.Exec("CREATE TEMP TABLE notnulltemp (a varchar(10) not null, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -973,7 +973,7 @@ - db := openTestConn(t) - defer db.Close() - -- _, err := db.Exec("create temp table test (i integer)") -+ _, err := db.Exec("create temp table test (i integer, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -1014,7 +1014,7 @@ - db := openTestConn(t) - defer db.Close() - -- _, err := db.Exec("CREATE TEMP TABLE distributors (did integer default 0, dname text)") -+ _, err := db.Exec("CREATE TEMP TABLE distributors (did integer default 0, dname text, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -1067,7 +1067,7 @@ - } - defer txn.Rollback() - -- rows, err := txn.Query("CREATE TEMP TABLE foo(f1 int)") -+ rows, err := txn.Query("CREATE TEMP TABLE foo(f1 int, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -1290,7 +1290,7 @@ - - if !r.Next() { - if r.Err() != nil { -- t.Fatal(err) -+ t.Fatal(r.Err()) - } - t.Fatal("expected row") - } -@@ -1305,7 +1305,7 @@ - - if !r.Next() { - if r.Err() != nil { -- t.Fatal(err) -+ t.Fatal(r.Err()) - } - t.Fatal("expected row") - } -@@ -1351,11 +1351,11 @@ - db := openTestConn(t) - defer db.Close() - -- _, err := db.Exec("CREATE TEMP TABLE temp (a int)") -+ _, err := db.Exec("CREATE TEMP TABLE temp (a int primary key)") - if err != nil { - t.Fatal(err) - } -- sqlInsert := "INSERT INTO temp VALUES (1)" -+ sqlInsert := "INSERT INTO temp (a) VALUES (1)" - sqlSelect := "SELECT * FROM temp" - tx, err := db.Begin() - if err != nil { -@@ -1501,7 +1501,7 @@ - } - - value, success := tryGetParameterValue() -- if success != test.success && !test.success { -+ if success != test.success && !success { - t.Fatalf("%v: unexpected error: %v", test.conninfo, err) - } - if success != test.success { -@@ -1603,7 +1603,7 @@ - ra int64 - }{ - { -- query: "CREATE TEMP TABLE temp (a int)", -+ query: "CREATE TEMP TABLE temp (a int, _stub_id Serial PRIMARY KEY)", - tag: "CREATE TABLE", - }, - { -@@ -1623,19 +1623,19 @@ - }, - // Multiple statements that don't return rows should return the last tag. - { -- query: "CREATE TEMP TABLE t (a int); DROP TABLE t", -+ query: "CREATE TEMP TABLE t (a int, _stub_id Serial PRIMARY KEY); DROP TABLE t", - tag: "DROP TABLE", - }, - // Ensure a rows-returning query in any position among various tags-returing - // statements will prefer the rows. - { -- query: "SELECT 1; CREATE TEMP TABLE t (a int); DROP TABLE t", -+ query: "SELECT 1; CREATE TEMP TABLE t (a int, _stub_id Serial PRIMARY KEY); DROP TABLE t", - }, - { -- query: "CREATE TEMP TABLE t (a int); SELECT 1; DROP TABLE t", -+ query: "CREATE TEMP TABLE t (a int, _stub_id Serial PRIMARY KEY); SELECT 1; DROP TABLE t", - }, - { -- query: "CREATE TEMP TABLE t (a int); DROP TABLE t; SELECT 1", -+ query: "CREATE TEMP TABLE t (a int, _stub_id Serial PRIMARY KEY); DROP TABLE t; SELECT 1", - }, - } - -@@ -1775,7 +1775,7 @@ - db := openTestConn(t) - defer db.Close() - -- _, err := db.Exec("CREATE TEMP TABLE temp (a int)") -+ _, err := db.Exec("CREATE TEMP TABLE temp (a int, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -diff -ruN /original-sources/copy_test.go ./copy_test.go ---- /original-sources/copy_test.go 2023-04-26 04:34:24.000000000 +0000 -+++ ./copy_test.go 2023-09-15 09:14:56.207034622 +0000 -@@ -56,7 +56,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -125,7 +125,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -195,7 +195,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER, text VARCHAR, blob BYTEA, nothing VARCHAR)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER, text VARCHAR, blob BYTEA, nothing VARCHAR, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -254,7 +254,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -302,7 +302,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -327,7 +327,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (num INTEGER, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -383,7 +383,7 @@ - t.Fatal(err) - } - -- _, err = txn.Exec("CREATE TEMP TABLE temp (a int)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (a int, _stub_id Serial PRIMARY KEY)") - if err != nil { - t.Fatal(err) - } -@@ -463,7 +463,7 @@ - } - defer txn.Rollback() - -- _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar)") -+ _, err = txn.Exec("CREATE TEMP TABLE temp (a int, b varchar, _stub_id Serial PRIMARY KEY)") - if err != nil { - b.Fatal(err) - } -diff -ruN /original-sources/issues_test.go ./issues_test.go ---- /original-sources/issues_test.go 2023-04-26 04:34:24.000000000 +0000 -+++ ./issues_test.go 2023-08-22 09:35:23.189760257 +0000 -@@ -113,7 +113,7 @@ - time.Sleep(10 * time.Millisecond) - cancel() - }() -- row := db.QueryRowContext(ctx, "select pg_sleep(0.5)") -+ row := db.QueryRowContext(ctx, "select pg_sleep(4::float8)") - var pgSleepVoid string - err := row.Scan(&pgSleepVoid) - if pgErr := (*Error)(nil); !(errors.As(err, &pgErr) && pgErr.Code == cancelErrorCode) { diff --git a/ydb/tests/postgres_integrations/go-libpq/data/run-test.bash b/ydb/tests/postgres_integrations/go-libpq/data/run-test.bash deleted file mode 100755 index 0a9e4945a0c0..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/run-test.bash +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# https://github.com/lib/pq - - -set -eu - -LOCAL_DIR=$(dirname "$0") -LOCAL_DIR=$(realpath "$LOCAL_DIR") - -scripts/run-test.bash "$LOCAL_DIR" diff --git a/ydb/tests/postgres_integrations/go-libpq/data/skip-tests.txt b/ydb/tests/postgres_integrations/go-libpq/data/skip-tests.txt deleted file mode 100644 index 72a898ede79b..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/skip-tests.txt +++ /dev/null @@ -1,74 +0,0 @@ -# ydb segfalts -TestIssue494 # https://github.com/ydb-platform/ydb/issues/8410 - -# Stable failed tests -# https://github.com/ydb-platform/ydb/issues/9045 -Test64BitErrorChecking -TestArrayValueBackend -TestBinaryByteSliceToInt -TestBinaryByteSlicetoUUID -TestBindError -TestCommit -TestConnListen -TestConnPing -TestConnUnlistenAll -TestConnUnlisten -TestConnectorWithNoticeHandler_Simple -TestConnectorWithNotificationHandler_Simple -TestContextCancelBegin -TestContextCancelExec -TestContextCancelQuery -TestCopyFromError -TestCopyInBinaryError -TestCopyInMultipleValues -TestCopyInRaiseStmtTrigger -TestCopyInStmtAffectedRows -TestCopyInTypes -TestCopyInWrongType -TestCopyRespLoopConnectionError -TestCopySyntaxError -TestEmptyQuery -TestEncodeDecode -TestErrorClass -TestErrorDuringStartup -TestErrorOnExec -TestErrorOnQueryRowSimpleQuery -TestErrorOnQuery -TestExec -TestFormatTsBackend -TestHasCorrectRootGroupPermissions -TestInfinityTimestamp -TestIssue1046 -TestIssue1062 -TestIssue186 -TestListenerFailedQuery -TestListenerListen -TestListenerPing -TestListenerReconnect -TestListenerUnlistenAll -TestListenerUnlisten -TestNewConnector_Connect -TestNewConnector_Driver -TestNewConnector_WorksWithOpenDB -TestNotifyExtra -TestNullAfterNonNull -TestParseErrorInExtendedQuery -TestPing -TestQueryCancelRace -TestQueryCancelledReused -TestQueryRowBugWorkaround -TestReconnect -TestReturning -TestRowsResultTag -TestRuntimeParameters -TestStmtExecContext/context.Background -TestStmtExecContext/context.WithTimeout -TestStmtExecContext/context.WithTimeout_exceeded -TestStmtExecContext -TestStmtQueryContext/context.Background -TestStmtQueryContext/context.WithTimeout -TestStmtQueryContext/context.WithTimeout_exceeded -TestStmtQueryContext -TestStringWithNul -TestTimestampWithTimeZone -TestTxOptions diff --git a/ydb/tests/postgres_integrations/go-libpq/data/unit-tests.txt b/ydb/tests/postgres_integrations/go-libpq/data/unit-tests.txt deleted file mode 100644 index e0b282854c6b..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/data/unit-tests.txt +++ /dev/null @@ -1,106 +0,0 @@ -TestAppendEncodedText -TestAppendEscapedText -TestAppendEscapedTextExistingBuffer -TestArrayScanner -TestArrayValuer -TestBadConn -TestBoolArrayScanBytes -TestBoolArrayScanEmpty -TestBoolArrayScanError -TestBoolArrayScanNil -TestBoolArrayScanString -TestBoolArrayScanUnsupported -TestBoolArrayValue -TestByteaArrayScanBytes -TestByteaArrayScanEmpty -TestByteaArrayScanError -TestByteaArrayScanNil -TestByteaArrayScanString -TestByteaArrayScanUnsupported -TestByteaArrayValue -TestByteaOutputFormatEncoding -TestCloseBadConn -TestConnPrepareContext/context.WithTimeout_exceeded -TestCopyInSchemaStmt -TestCopyInStmt -TestDataType -TestDataTypeLength -TestDataTypeName -TestDataTypePrecisionScale -TestDecodeUUIDBinaryError -TestErrorDuringStartup -TestErrorDuringStartupClosesConn -TestErrorSQLState -TestFloat32ArrayScanBytes -TestFloat32ArrayScanEmpty -TestFloat32ArrayScanError -TestFloat32ArrayScanNil -TestFloat32ArrayScanString -TestFloat32ArrayScanUnsupported -TestFloat32ArrayValue -TestFloat64ArrayScanBytes -TestFloat64ArrayScanEmpty -TestFloat64ArrayScanError -TestFloat64ArrayScanNil -TestFloat64ArrayScanString -TestFloat64ArrayScanUnsupported -TestFloat64ArrayValue -TestFormatAndParseTimestamp -TestFormatTs -TestFullParseURL -TestGenericArrayScanDelimiter -TestGenericArrayScanErrors -TestGenericArrayScanScannerArrayBytes -TestGenericArrayScanScannerArrayString -TestGenericArrayScanScannerSliceBytes -TestGenericArrayScanScannerSliceEmpty -TestGenericArrayScanScannerSliceNil -TestGenericArrayScanScannerSliceString -TestGenericArrayScanUnsupported -TestGenericArrayValue -TestGenericArrayValueErrors -TestGenericArrayValueUnsupported -TestIPv6LoopbackParseURL -TestInt32ArrayScanBytes -TestInt32ArrayScanEmpty -TestInt32ArrayScanError -TestInt32ArrayScanNil -TestInt32ArrayScanString -TestInt32ArrayScanUnsupported -TestInt32ArrayValue -TestInt64ArrayScanBytes -TestInt64ArrayScanEmpty -TestInt64ArrayScanError -TestInt64ArrayScanNil -TestInt64ArrayScanString -TestInt64ArrayScanUnsupported -TestInt64ArrayValue -TestInvalidProtocolParseURL -TestIsUTF8 -TestMinimalURL -TestParseArray -TestParseArrayError -TestParseComplete -TestParseEnviron -TestParseOpts -TestParseTs -TestParseTsErrors -TestQuoteIdentifier -TestQuoteLiteral -TestSNISupport -TestSNISupport/SNI_is_not_passed_when_disabled -TestSNISupport/SNI_is_not_set_for_IPv4 -TestSNISupport/SNI_is_passed_when_asked_for -TestSNISupport/SNI_is_set_by_default -TestScanNilTimestamp -TestScanTimestamp -TestSimpleParseURL -TestStringArrayScanBytes -TestStringArrayScanEmpty -TestStringArrayScanError -TestStringArrayScanNil -TestStringArrayScanString -TestStringArrayScanUnsupported -TestStringArrayValue -TestStringWithNul -TestTextDecodeIntoString diff --git a/ydb/tests/postgres_integrations/go-libpq/docker_wrapper_test.py b/ydb/tests/postgres_integrations/go-libpq/docker_wrapper_test.py deleted file mode 100644 index 08736e56eeda..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/docker_wrapper_test.py +++ /dev/null @@ -1,32 +0,0 @@ -# from .conftest import integrations -import typing - -import pytest -import yatest - -from ydb.tests.postgres_integrations import library as tl - - -def filter_formatter(test_names: typing.List[str]) -> str: - return "^(" + "|".join(test_names) + ")$" - - -def setup_module(module: pytest.Module): - tl.setup_module(module) - - -def teardown_module(module: pytest.Module): - tl.teardown_module(module) - - -def test_pg_generated(testname): - tl.execute_test(testname) - - -def pytest_generate_tests(metafunc: pytest.Metafunc): - if metafunc.definition.name == "test_pg_generated": - tl.pytest_generate_tests(metafunc) - - -tl.set_filter_formatter(filter_formatter) -tl.set_tests_folder(yatest.common.source_path("ydb/tests/postgres_integrations/go-libpq/data")) diff --git a/ydb/tests/postgres_integrations/go-libpq/ya.make b/ydb/tests/postgres_integrations/go-libpq/ya.make deleted file mode 100644 index 60aa6678e803..000000000000 --- a/ydb/tests/postgres_integrations/go-libpq/ya.make +++ /dev/null @@ -1,62 +0,0 @@ -PY3TEST() - -FORK_TEST_FILES() - - -# copy from https://docs.yandex-team.ru/devtools/test/environment#docker-compose -REQUIREMENTS( - container:4467981730 # container with docker - cpu:all dns:dns64 -) - -SET(ARCADIA_SANDBOX_SINGLESLOT TRUE) - -IF(OPENSOURCE) - IF (SANITIZER_TYPE) - # Too huge for precommit check with sanitizers - SIZE(LARGE) - INCLUDE(${ARCADIA_ROOT}/ydb/tests/large.inc) - ELSE() - SIZE(MEDIUM) # for run per PR - ENDIF() - - # Including of docker_compose/recipe.inc automatically converts these tests into LARGE, - # which makes it impossible to run them during precommit checks on Github CI. - # Next several lines forces these tests to be MEDIUM. To see discussion, visit YDBOPS-8928. - - SET(TEST_TAGS_VALUE) - SET(TEST_REQUIREMENTS_VALUE) - # This requirement forces tests to be launched consequently, - # otherwise CI system would be overloaded due to simultaneous launch of many Docker containers. - # See DEVTOOLSSUPPORT-44103, YA-1759 for details. - TAG(ya:not_autocheck) -ELSE() - SIZE(LARGE) # run in sandbox with timeout more than a minute - INCLUDE(${ARCADIA_ROOT}/ydb/tests/large.inc) - TAG( - ya:external - ya:force_sandbox - ) -ENDIF() - - -INCLUDE(${ARCADIA_ROOT}/ydb/tests/ydbd_dep.inc) -ENV(YDB_ALLOCATE_PGWIRE_PORT="true") -DEPENDS( -) - -TEST_SRCS( - conftest.py - docker_wrapper_test.py -) - - -DATA( - arcadia/ydb/tests/postgres_integrations/go-libpq/data -) - -PEERDIR( - ydb/tests/postgres_integrations/library -) - -END() diff --git a/ydb/tests/postgres_integrations/library/__init__.py b/ydb/tests/postgres_integrations/library/__init__.py deleted file mode 100644 index 3d978f45bde1..000000000000 --- a/ydb/tests/postgres_integrations/library/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -__all__ = [ # noqa - 'IntegrationTests', - 'PgTestWrapper', - 'pytest_collection_finish', - 'set_filter_formatter', - 'set_tests_folder', - 'setup_module', - 'teardown_module', - 'execute_test', - 'pytest_generate_tests', -] - -from .pytest_integration import * # noqa diff --git a/ydb/tests/postgres_integrations/library/pytest_integration.py b/ydb/tests/postgres_integrations/library/pytest_integration.py deleted file mode 100644 index 89f47f7b5c82..000000000000 --- a/ydb/tests/postgres_integrations/library/pytest_integration.py +++ /dev/null @@ -1,307 +0,0 @@ -import os -import shutil - -from typing import Callable, Dict, List, Set, Optional, Union -from os import path -from dataclasses import dataclass -from enum import Enum - -import docker -import xmltodict -import pytest - -import yatest - -import logging - -from ydb.tests.library.harness.kikimr_runner import KiKiMR - - -class TestState(Enum): - PASSED = 1 - FAILED = 2 - SKIPPED = 3 - - -@dataclass -class TestCase: - name: str - state: TestState - log: str - - -_tests_for_run_in_docker: pytest.Session = [] -_filter_format_function = Callable[[List[str]], str] -_filter_formatter: Optional[_filter_format_function] = None -_tests_folder: Optional[str] = None -_test_results: Optional[Dict[str, TestCase]] = None -_kikimr_factory: Optional[KiKiMR] = None -_integration_tests: Optional[List[str]] = None -_skip_tests: Dict[str, str] = dict() # [test name: reason] - - -def pytest_collection_finish(session: pytest.Session): - global _tests_for_run_in_docker - - print("rekby set selected items: ", session.items) - selected_tests = [] - for item in session.items: - print(f"rekby, selected item name: '{item.name}'", ) - if item.name.startswith("test_pg_generated["): - print("rekby selected test item:", item) - test_name = item.callspec.id - print(f"rekby selected test: {test_name}") - selected_tests.append(test_name) - selected_tests.sort() - print("rekby: result selected tests", selected_tests) - _tests_for_run_in_docker = list() - for test in selected_tests: - if test not in _skip_tests: - _tests_for_run_in_docker.append(test) - print("rekby, tests for run", _tests_for_run_in_docker) - - -def set_filter_formatter(f: _filter_format_function): - global _filter_formatter - _filter_formatter = f - - -def set_tests_folder(folder: str): - global _tests_folder, _integration_tests, _skip_tests - print("rekby, set_tests_folder called") - _tests_folder = folder - _integration_tests = _read_integration_tests(folder) - _skip_tests = _read_skip_tests(folder) - - -def setup_module(module: pytest.Module): - if len(_tests_for_run_in_docker) == 0: - return - - global _test_results - try: - exchange_folder = path.join(yatest.common.output_path(), "exchange") - os.mkdir(exchange_folder) - except FileExistsError: - pass - - tests_result_folder = path.join(yatest.common.output_path(), "test-result") - shutil.rmtree(tests_result_folder, ignore_errors=True) - os.mkdir(tests_result_folder) - - image = _docker_build(_tests_folder) - - pg_port = _run_ydb() - env = _prepare_docker_env(pg_port, _tests_for_run_in_docker) - _run_tests_in_docker(image, env, exchange_folder, tests_result_folder) - - test_results_file = path.join(tests_result_folder, "raw", "result.xml") - _test_results = _read_tests_result(test_results_file) - - -def teardown_module(module): - """teardown any state that was previously setup with a setup_module - method. - """ - _stop_ydb() - - -def _run_ydb() -> int: - """ - Run YDB cluster and return pgwire port number. - """ - global _kikimr_factory - _kikimr_factory = KiKiMR() - _kikimr_factory.start() - node = _kikimr_factory.nodes[1] - print("rekby: pgwire port", node.pgwire_port) - return node.pgwire_port - - -def _stop_ydb(): - global _kikimr_factory - _kikimr_factory.stop() - _kikimr_factory = None - - -def _prepare_docker_env(pgwire_port: str, test_names: List[str]) -> List[str]: - test_filter = _filter_formatter(test_names) - return [ - "PGUSER=root", - "PGPASSWORD=1234", - "PGHOST=localhost", - f"PGPORT={pgwire_port}", - "PGDATABASE=/Root", - "PQGOSSLTESTS=0", - "PQSSLCERTTEST_PATH=certs", - f"YDB_PG_TESTFILTER={test_filter}", - ] - - -def _docker_build(folder: str) -> str: - image_name = 'ydb-pg-test-image' - logging.debug(f"rekby, docker folder: '{folder}'") - - import glob - files_list = glob.glob(folder + "/data/*") - logging.debug(f"rekby, {folder}/data/ contents: {files_list}") - - client: docker.Client = docker.from_env() - client.images.build( - path=folder, - tag=image_name, - rm=True, - network_mode='host', - ) - return image_name - - -def _run_tests_in_docker( - image: str, - env: Union[List[str], Dict[str, str]], - exchange_folder: str, - results_folder: str, - ): - - client: docker.Client = docker.from_env(timeout=7200) # a long timeout for work with resourses pressure in CI - - container = client.containers.create( - image=image, - # command="/docker-start.bash", - # detach=True, - # auto_remove=True, - environment=env, - mounts=[ - docker.types.Mount( - target="/exchange", - source=exchange_folder, - type="bind", - ), - docker.types.Mount( - target="/test-result", - source=results_folder, - type="bind", - ), - ], - network_mode='host', - ) - try: - container.start() - container.wait() - print(container.logs().decode()) - finally: - container.remove() - - -def pytest_generate_tests(metafunc: pytest.Metafunc): - """ - Return tests for run through pytest. - """ - print("rekby, integration tests:", _integration_tests) - metafunc.parametrize('testname', _integration_tests, ids=_integration_tests) - - -def execute_test(testname: str): - if testname in _skip_tests: - pytest.skip(_skip_tests[testname]) - - try: - test = _test_results[testname] - except KeyError: - pytest.fail("test result not found, may be the test was not runned") - - if test.state == TestState.PASSED: - logging.getLogger().log(logging.INFO, test.log) - return - if test.state == TestState.SKIPPED: - logging.getLogger().log(logging.INFO, test.log) - pytest.skip() - if test.state == TestState.FAILED: - logging.getLogger().log(logging.ERROR, test.log) - pytest.fail() - - raise Exception(f"Unexpected test state: '{test.state}'") - - -def _read_integration_tests(folder: str) -> Set[str]: - with open(path.join(folder, "full-test-list.txt"), "rt") as f: - all = set(line.strip() for line in f.readlines()) - - with open(path.join(folder, "unit-tests.txt"), "rt") as f: - unit = set(f.readlines()) - - test_list_for_run = list(all - unit) - test_list_for_run.sort() - return test_list_for_run - - -def _read_skip_tests(folder: str) -> Dict[str, str]: - res = dict() - try: - fpath = path.join(folder, "skip-tests.txt") - with open(fpath) as f: - for line in f.readlines(): - if "# " in line: - line = line[:line.rindex("# ")] - - line = line.strip() - if line == "": - continue - - res[line] = f"skipped by '{fpath}'" - except FileNotFoundError: - pass - - return res - - -def _read_tests_result(filepath: str) -> Dict[str, TestCase]: - with open(filepath, "rt") as f: - data = f.read() - d = xmltodict.parse(data, force_list=("testcase",)) - testsuites = d["testsuites"] - test_suite = testsuites["testsuite"] - test_cases = test_suite["testcase"] - - res: Dict[str, TestCase] = dict() - - def get_text(test_case, field_name: str) -> str: - field_val = test_case[field_name] - if type(field_val) is str: - return field_val - elif type(field_val) is dict: - prefix = field_val.get("@message", "") + "\n" - if prefix == "\n": - prefix = "" - return prefix + field_val.get("#text", "") - raise Exception(f"Unknown field val for field '{field_name}':\n{field_val}") - - for test_case in test_cases: - class_name = test_case["@classname"] - test_name = test_case["@name"] - if class_name == "": - name = test_name - else: - name = test_case["@classname"] + "/" + test_case["@name"] - - print("rekby-debug", test_case) - if "failure" in test_case: - test_state = TestState.FAILED - log = get_text(test_case, "failure") - elif "error" in test_case: - test_state = TestState.FAILED - log = get_text(test_case, "error") - elif "skipped" in test_case: - test_state = TestState.SKIPPED - log = get_text(test_case, "skipped") - else: - test_state = TestState.PASSED - log = "" - - res[name] = TestCase( - name=name, - state=test_state, - log=log, - ) - - return res diff --git a/ydb/tests/postgres_integrations/library/ut/data/junit-results-example.xml b/ydb/tests/postgres_integrations/library/ut/data/junit-results-example.xml deleted file mode 100644 index 6627aaf29920..000000000000 --- a/ydb/tests/postgres_integrations/library/ut/data/junit-results-example.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - fail mess - - - - - - panic and timeout - - - skip message - - - - - - diff --git a/ydb/tests/postgres_integrations/library/ut/data/junit-results-example1.xml b/ydb/tests/postgres_integrations/library/ut/data/junit-results-example1.xml deleted file mode 100644 index e0c691d72826..000000000000 --- a/ydb/tests/postgres_integrations/library/ut/data/junit-results-example1.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - failed-mess - - - diff --git a/ydb/tests/postgres_integrations/library/ut/integrations_test.py b/ydb/tests/postgres_integrations/library/ut/integrations_test.py deleted file mode 100644 index a6caf5b255ee..000000000000 --- a/ydb/tests/postgres_integrations/library/ut/integrations_test.py +++ /dev/null @@ -1,37 +0,0 @@ -from os import path - -import pytest -import yatest - -from ydb.tests.postgres_integrations.library import pytest_integration -from ydb.tests.postgres_integrations.library.pytest_integration import TestCase, TestState - - -TEST_DATA_FOLDER = yatest.common.source_path("ydb/tests/postgres_integrations/library/ut/data") - - -@pytest.mark.parametrize( - "test", - [ - TestCase(name="o/OK", state=TestState.PASSED, log=""), - TestCase(name="f/failed1", state=TestState.FAILED, log="fail mess"), - TestCase(name="f/failed2", state=TestState.FAILED, log="Failed\nescaped error"), - TestCase(name="f/error1", state=TestState.FAILED, log="No test result found\npanic and timeout"), - TestCase(name="s/skipped1", state=TestState.SKIPPED, log="Skipped\nskip message"), - TestCase(name="s/skipped2", state=TestState.SKIPPED, log="escaped skip message"), - ], - ids=lambda item: item.name -) -def test_read_jtest_results(test): - filepath = path.join(TEST_DATA_FOLDER, "junit-results-example.xml") - parsed_result = pytest_integration._read_tests_result(filepath) - - parsed_test = parsed_result[test.name] - assert test == parsed_test - - -def test_read_jtest_with_one_result(): - filepath = path.join(TEST_DATA_FOLDER, "junit-results-example1.xml") - parsed_result = pytest_integration._read_tests_result(filepath) - parsed_test = parsed_result["f/test-failed"] - assert parsed_test == TestCase(name="f/test-failed", state=TestState.FAILED, log="Failed\nfailed-mess") diff --git a/ydb/tests/postgres_integrations/library/ut/ya.make b/ydb/tests/postgres_integrations/library/ut/ya.make deleted file mode 100644 index aa508da81656..000000000000 --- a/ydb/tests/postgres_integrations/library/ut/ya.make +++ /dev/null @@ -1,16 +0,0 @@ -PY3TEST() - -TEST_SRCS( - integrations_test.py -) - - -DATA( - arcadia/ydb/tests/postgres_integrations/library/ut/data -) - -PEERDIR( - ydb/tests/postgres_integrations/library -) - -END() diff --git a/ydb/tests/postgres_integrations/library/ya.make b/ydb/tests/postgres_integrations/library/ya.make deleted file mode 100644 index 86959db62152..000000000000 --- a/ydb/tests/postgres_integrations/library/ya.make +++ /dev/null @@ -1,16 +0,0 @@ -PY3_LIBRARY() - - -ALL_PY_SRCS() - -PEERDIR( - contrib/python/docker - contrib/python/xmltodict - ydb/tests/library -) - -END() - -RECURSE_FOR_TESTS( - ut -) \ No newline at end of file diff --git a/ydb/tests/postgres_integrations/ya.make b/ydb/tests/postgres_integrations/ya.make deleted file mode 100644 index 3839f278034e..000000000000 --- a/ydb/tests/postgres_integrations/ya.make +++ /dev/null @@ -1,4 +0,0 @@ -RECURSE( - go-libpq - library -) diff --git a/ydb/tests/ya.make b/ydb/tests/ya.make index 1b20a344750b..1d941957c35b 100644 --- a/ydb/tests/ya.make +++ b/ydb/tests/ya.make @@ -8,7 +8,6 @@ RECURSE( library/sqs olap oss - postgres_integrations solomon sql stability diff --git a/yql/essentials/minikql/mkql_runtime_version.h b/yql/essentials/minikql/mkql_runtime_version.h index 79ee6ba611b7..d0dc62b93904 100644 --- a/yql/essentials/minikql/mkql_runtime_version.h +++ b/yql/essentials/minikql/mkql_runtime_version.h @@ -24,7 +24,7 @@ namespace NMiniKQL { // 1. Bump this version every time incompatible runtime nodes are introduced. // 2. Make sure you provide runtime node generation for previous runtime versions. #ifndef MKQL_RUNTIME_VERSION -#define MKQL_RUNTIME_VERSION 69U +#define MKQL_RUNTIME_VERSION 59U #endif // History: