Skip to content

Commit a9ade7d

Browse files
authored
Merge e6c52fc into 11e4668
2 parents 11e4668 + e6c52fc commit a9ade7d

File tree

2 files changed

+7
-59
lines changed

2 files changed

+7
-59
lines changed

ydb/library/yql/sql/pg/pg_sql.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -2549,7 +2549,11 @@ class TConverter : public IPGParseEvents {
25492549
return true;
25502550
}
25512551

2552-
TString ResolveCluster(const TStringBuf schemaname) {
2552+
TString ResolveCluster(const TStringBuf schemaname, TString name) {
2553+
if (NYql::NPg::GetStaticColumns().contains(NPg::TTableInfoKey{"pg_catalog", name})) {
2554+
return "pg_catalog";
2555+
}
2556+
25532557
if (schemaname == "public") {
25542558
return "";
25552559
}
@@ -2603,7 +2607,7 @@ class TConverter : public IPGParseEvents {
26032607
return {};
26042608
}
26052609

2606-
const auto cluster = ResolveCluster(schemaname);
2610+
const auto cluster = ResolveCluster(schemaname, TString(relname));
26072611
const auto sinkOrSource = BuildClusterSinkOrSourceExpression(isSink, cluster);
26082612
const auto key = BuildTableKeyExpression(relname, cluster, isScheme);
26092613
return {sinkOrSource, key};
@@ -2630,7 +2634,7 @@ class TConverter : public IPGParseEvents {
26302634
return {};
26312635
}
26322636

2633-
const auto cluster = ResolveCluster(schemaname);
2637+
const auto cluster = ResolveCluster(schemaname, TString(objectName));
26342638
const auto sinkOrSource = BuildClusterSinkOrSourceExpression(true, cluster);
26352639
const auto key = BuildPgObjectExpression(objectName, pgObjectType);
26362640
return {sinkOrSource, key};

ydb/library/yql/sql/pg/pg_sql_ut.cpp

-56
Original file line numberDiff line numberDiff line change
@@ -516,61 +516,5 @@ from pg_catalog.pg_type)",
516516
settings);
517517
UNIT_ASSERT(res.IsOk());
518518
UNIT_ASSERT(res.Root);
519-
520-
res = SqlToYqlWithMode(
521-
R"(select set_config('search_path', 'yql', false);)",
522-
NSQLTranslation::ESqlMode::QUERY,
523-
10,
524-
{},
525-
EDebugOutput::None,
526-
false,
527-
settings);
528-
UNIT_ASSERT(!res.IsOk());
529-
UNIT_ASSERT(!res.Root);
530-
531-
res = SqlToYqlWithMode(
532-
R"(select set_config('search_path', 'pg_catalog', false);)",
533-
NSQLTranslation::ESqlMode::QUERY,
534-
10,
535-
{},
536-
EDebugOutput::None,
537-
false,
538-
settings);
539-
UNIT_ASSERT(res.IsOk());
540-
UNIT_ASSERT(res.Root);
541-
542-
res = SqlToYqlWithMode(
543-
R"(rollback;)",
544-
NSQLTranslation::ESqlMode::QUERY,
545-
10,
546-
{},
547-
EDebugOutput::None,
548-
false,
549-
settings);
550-
UNIT_ASSERT(res.IsOk());
551-
UNIT_ASSERT(res.Root);
552-
553-
google::protobuf::Arena arena;
554-
const auto service = TString(NYql::YtProviderName);
555-
settings.ClusterMapping["hahn"] = NYql::YtProviderName;
556-
settings.ClusterMapping["mon"] = NYql::SolomonProviderName;
557-
settings.MaxErrors = 10;
558-
settings.Mode = NSQLTranslation::ESqlMode::QUERY;
559-
settings.Arena = &arena;
560-
settings.AnsiLexer = false;
561-
settings.SyntaxVersion = 1;
562-
settings.PgParser = true;
563-
564-
res = SqlToYql(
565-
R"(select oid,
566-
typinput::int4 as typinput,
567-
typname,
568-
typnamespace,
569-
typtype
570-
from pg_type)",
571-
settings);
572-
UNIT_ASSERT(res.Issues.ToString().Contains("Unknown cluster:"));
573-
UNIT_ASSERT(!res.IsOk());
574-
UNIT_ASSERT(!res.Root);
575519
}
576520
}

0 commit comments

Comments
 (0)