Skip to content

Commit 7c0758e

Browse files
authored
init (#1327)
1 parent 9812973 commit 7c0758e

File tree

14 files changed

+448
-237
lines changed

14 files changed

+448
-237
lines changed

ydb/library/yql/parser/pg_wrapper/comp_factory.cpp

+278-207
Large diffs are not rendered by default.

ydb/library/yql/providers/pg/provider/yql_pg_datasource_type_ann.cpp

+49-29
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class TPgDataSourceTypeAnnotationTransformer : public TVisitorTransformerBase {
5656
cluster = input->Child(TNode::idx_Cluster)->Content();
5757
}
5858

59-
if (cluster != "pg_catalog") {
59+
if (cluster != "pg_catalog" && cluster != "information_schema") {
6060
ctx.AddError(TIssue(ctx.GetPosition(input->Pos()), TStringBuilder() << "Unexpected cluster: " << cluster));
6161
return TStatus::Error;
6262
}
@@ -107,35 +107,45 @@ class TPgDataSourceTypeAnnotationTransformer : public TVisitorTransformerBase {
107107

108108
auto tableName = input->Child(TNode::idx_Table)->Content();
109109
TVector<const TItemExprType*> items;
110-
if (tableName == "pg_type") {
111-
FillPgTypeSchema(items, ctx);
112-
} else if (tableName == "pg_database") {
113-
FillPgDatabaseSchema(items, ctx);
114-
} else if (tableName == "pg_tablespace") {
115-
FillPgTablespaceSchema(items, ctx);
116-
} else if (tableName == "pg_shdescription") {
117-
FillPgShDescriptionSchema(items, ctx);
118-
} else if (tableName == "pg_trigger") {
119-
FillPgTriggerSchema(items, ctx);
120-
} else if (tableName == "pg_locks") {
121-
FillPgLocksSchema(items, ctx);
122-
} else if (tableName == "pg_stat_gssapi") {
123-
FillPgStatGssapiSchema(items, ctx);
124-
} else if (tableName == "pg_inherits") {
125-
FillPgInheritsSchema(items, ctx);
126-
} else if (tableName == "pg_stat_activity") {
127-
FillPgStatActivitySchema(items, ctx);
128-
} else if (tableName == "pg_timezone_names") {
129-
FillPgTimezoneNamesSchema(items, ctx);
130-
} else if (tableName == "pg_timezone_abbrevs") {
131-
FillPgTimezoneAbbrevsSchema(items, ctx);
132-
} else if (tableName == "pg_namespace") {
133-
FillPgNamespaceSchema(items, ctx);
134-
} else if (tableName == "pg_description") {
135-
FillPgDescriptionSchema(items, ctx);
136-
} else if (tableName == "pg_am") {
137-
FillPgAmSchema(items, ctx);
110+
if (cluster == "pg_catalog") {
111+
if (tableName == "pg_type") {
112+
FillPgTypeSchema(items, ctx);
113+
} else if (tableName == "pg_database") {
114+
FillPgDatabaseSchema(items, ctx);
115+
} else if (tableName == "pg_tablespace") {
116+
FillPgTablespaceSchema(items, ctx);
117+
} else if (tableName == "pg_shdescription") {
118+
FillPgShDescriptionSchema(items, ctx);
119+
} else if (tableName == "pg_trigger") {
120+
FillPgTriggerSchema(items, ctx);
121+
} else if (tableName == "pg_locks") {
122+
FillPgLocksSchema(items, ctx);
123+
} else if (tableName == "pg_stat_gssapi") {
124+
FillPgStatGssapiSchema(items, ctx);
125+
} else if (tableName == "pg_inherits") {
126+
FillPgInheritsSchema(items, ctx);
127+
} else if (tableName == "pg_stat_activity") {
128+
FillPgStatActivitySchema(items, ctx);
129+
} else if (tableName == "pg_timezone_names") {
130+
FillPgTimezoneNamesSchema(items, ctx);
131+
} else if (tableName == "pg_timezone_abbrevs") {
132+
FillPgTimezoneAbbrevsSchema(items, ctx);
133+
} else if (tableName == "pg_namespace") {
134+
FillPgNamespaceSchema(items, ctx);
135+
} else if (tableName == "pg_description") {
136+
FillPgDescriptionSchema(items, ctx);
137+
} else if (tableName == "pg_am") {
138+
FillPgAmSchema(items, ctx);
139+
} else if (tableName == "pg_tables") {
140+
FillPgTablesSchema(items, ctx);
141+
}
138142
} else {
143+
if (tableName == "tables") {
144+
FillTablesSchema(items, ctx);
145+
}
146+
}
147+
148+
if (items.empty()) {
139149
ctx.AddError(TIssue(ctx.GetPosition(input->Child(TPgReadTable::idx_Table)->Pos()), TStringBuilder() << "Unsupported table: " << tableName));
140150
return TStatus::Error;
141151
}
@@ -259,6 +269,16 @@ class TPgDataSourceTypeAnnotationTransformer : public TVisitorTransformerBase {
259269
AddColumn(items, ctx, "amtype", "char");
260270
}
261271

272+
void FillPgTablesSchema(TVector<const TItemExprType*>& items, TExprContext& ctx) {
273+
AddColumn(items, ctx, "schemaname", "name");
274+
AddColumn(items, ctx, "tablename", "name");
275+
}
276+
277+
void FillTablesSchema(TVector<const TItemExprType*>& items, TExprContext& ctx) {
278+
AddColumn(items, ctx, "table_schema", "name");
279+
AddColumn(items, ctx, "table_name", "name");
280+
}
281+
262282
void AddColumn(TVector<const TItemExprType*>& items, TExprContext& ctx, const TString& name, const TString& type) {
263283
items.push_back(ctx.MakeType<TItemExprType>(name, ctx.MakeType<TPgExprType>(NPg::LookupType(type).TypeId)));
264284
}

ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json

+22
Original file line numberDiff line numberDiff line change
@@ -2435,6 +2435,28 @@
24352435
}
24362436
],
24372437
"test.test[pg_catalog-pg_stat_activity-default.txt-Results]": [],
2438+
"test.test[pg_catalog-pg_tables-default.txt-Analyze]": [
2439+
{
2440+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2441+
"size": 948,
2442+
"uri": "https://{canondata_backend}/1942415/8d010130e1284b2e3b1f4a934fc3768cc8409e69/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Analyze_/plan.txt"
2443+
}
2444+
],
2445+
"test.test[pg_catalog-pg_tables-default.txt-Debug]": [
2446+
{
2447+
"checksum": "52297e9a1b7af4cacb9a5bf01b89b20e",
2448+
"size": 548,
2449+
"uri": "https://{canondata_backend}/1942415/8d010130e1284b2e3b1f4a934fc3768cc8409e69/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Debug_/opt.yql_patched"
2450+
}
2451+
],
2452+
"test.test[pg_catalog-pg_tables-default.txt-Plan]": [
2453+
{
2454+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2455+
"size": 948,
2456+
"uri": "https://{canondata_backend}/1942415/8d010130e1284b2e3b1f4a934fc3768cc8409e69/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Plan_/plan.txt"
2457+
}
2458+
],
2459+
"test.test[pg_catalog-pg_tables-default.txt-Results]": [],
24382460
"test.test[sampling-mapjoin_right_sample-default.txt-Analyze]": [
24392461
{
24402462
"checksum": "87b97895afd9ac6a3350f69a77811ed1",

ydb/library/yql/tests/sql/dq_file/part3/canondata/result.json

+22
Original file line numberDiff line numberDiff line change
@@ -1962,6 +1962,28 @@
19621962
}
19631963
],
19641964
"test.test[pg_catalog-pg_am_pg_syntax-default.txt-Results]": [],
1965+
"test.test[pg_catalog-tables-default.txt-Analyze]": [
1966+
{
1967+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
1968+
"size": 948,
1969+
"uri": "https://{canondata_backend}/1923547/63a9bf11f98a47ebc6a355858fc4c8179b67ce82/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Analyze_/plan.txt"
1970+
}
1971+
],
1972+
"test.test[pg_catalog-tables-default.txt-Debug]": [
1973+
{
1974+
"checksum": "2e8892e4dc2cd80714860bf3b4264747",
1975+
"size": 562,
1976+
"uri": "https://{canondata_backend}/1923547/63a9bf11f98a47ebc6a355858fc4c8179b67ce82/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Debug_/opt.yql_patched"
1977+
}
1978+
],
1979+
"test.test[pg_catalog-tables-default.txt-Plan]": [
1980+
{
1981+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
1982+
"size": 948,
1983+
"uri": "https://{canondata_backend}/1923547/63a9bf11f98a47ebc6a355858fc4c8179b67ce82/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Plan_/plan.txt"
1984+
}
1985+
],
1986+
"test.test[pg_catalog-tables-default.txt-Results]": [],
19651987
"test.test[produce-process_row_and_columns-default.txt-Analyze]": [
19661988
{
19671989
"checksum": "ebe34f5d2b86ce7954a161dc02a783aa",

ydb/library/yql/tests/sql/sql2yql/canondata/result.json

+14
Original file line numberDiff line numberDiff line change
@@ -13320,6 +13320,13 @@
1332013320
"uri": "https://{canondata_backend}/1773845/118c740ff9ea824c1b2998c5bad993b2a2276f6e/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_stat_gssapi_/sql.yql"
1332113321
}
1332213322
],
13323+
"test_sql2yql.test[pg_catalog-pg_tables]": [
13324+
{
13325+
"checksum": "83d08986e200ccb6828e343083d43e97",
13326+
"size": 853,
13327+
"uri": "https://{canondata_backend}/1942100/35599942a1c753fdf2120a615bed33fc024774bc/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_tables_/sql.yql"
13328+
}
13329+
],
1332313330
"test_sql2yql.test[pg_catalog-pg_tablespace]": [
1332413331
{
1332513332
"checksum": "755687f11614cdbe84381134ddba275c",
@@ -13362,6 +13369,13 @@
1336213369
"uri": "https://{canondata_backend}/1942173/cb2fdcf9620011c608e9c76afbfe1a17bdd9d6f4/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_type_syntax_yql_/sql.yql"
1336313370
}
1336413371
],
13372+
"test_sql2yql.test[pg_catalog-tables]": [
13373+
{
13374+
"checksum": "fb7f166f5cfb2889f9271ec26d395289",
13375+
"size": 864,
13376+
"uri": "https://{canondata_backend}/1942100/35599942a1c753fdf2120a615bed33fc024774bc/resource.tar.gz#test_sql2yql.test_pg_catalog-tables_/sql.yql"
13377+
}
13378+
],
1336513379
"test_sql2yql.test[pragma-classic_division]": [
1336613380
{
1336713381
"checksum": "3e4104661f310517756ba3c530ebd08e",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
--!syntax_pg
2+
select
3+
schemaname,
4+
tablename
5+
from pg_catalog.pg_tables
6+
order by schemaname,tablename;
7+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
--!syntax_pg
2+
select
3+
table_schema,
4+
table_name
5+
from information_schema.tables
6+
order by table_schema, table_name;
7+

ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json

+21
Original file line numberDiff line numberDiff line change
@@ -2370,6 +2370,27 @@
23702370
"uri": "https://{canondata_backend}/1880306/1ee788a2569716571a36649ae2ceeb626ced8876/resource.tar.gz#test.test_pg_catalog-pg_stat_activity-default.txt-Results_/results.txt"
23712371
}
23722372
],
2373+
"test.test[pg_catalog-pg_tables-default.txt-Debug]": [
2374+
{
2375+
"checksum": "85f7ad11d93163d11c5a12a8df3dec7f",
2376+
"size": 489,
2377+
"uri": "https://{canondata_backend}/1600758/bdc527da4970a74ab81bbc76ba66f5dbb6340187/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Debug_/opt.yql"
2378+
}
2379+
],
2380+
"test.test[pg_catalog-pg_tables-default.txt-Plan]": [
2381+
{
2382+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2383+
"size": 948,
2384+
"uri": "https://{canondata_backend}/1600758/bdc527da4970a74ab81bbc76ba66f5dbb6340187/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Plan_/plan.txt"
2385+
}
2386+
],
2387+
"test.test[pg_catalog-pg_tables-default.txt-Results]": [
2388+
{
2389+
"checksum": "40a0cc11ca3cade6503a95d7d62e609c",
2390+
"size": 2450,
2391+
"uri": "https://{canondata_backend}/1600758/bdc527da4970a74ab81bbc76ba66f5dbb6340187/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Results_/results.txt"
2392+
}
2393+
],
23732394
"test.test[produce-process_rows_sorted_desc_multi_out--Debug]": [
23742395
{
23752396
"checksum": "202fbb809a2ada2cd5905af79fdf20b0",

ydb/library/yql/tests/sql/yt_native_file/part3/canondata/result.json

+21
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,27 @@
16551655
"uri": "https://{canondata_backend}/1597364/7422967ce2af0a6bf5112b931f1ddb2e9b629e98/resource.tar.gz#test.test_pg_catalog-pg_am_pg_syntax-default.txt-Results_/results.txt"
16561656
}
16571657
],
1658+
"test.test[pg_catalog-tables-default.txt-Debug]": [
1659+
{
1660+
"checksum": "2efbb7e2f9c464af418ffb3775c9fd13",
1661+
"size": 501,
1662+
"uri": "https://{canondata_backend}/1942100/3f6203e58cb404b40c036990713353e16c2dde44/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Debug_/opt.yql"
1663+
}
1664+
],
1665+
"test.test[pg_catalog-tables-default.txt-Plan]": [
1666+
{
1667+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
1668+
"size": 948,
1669+
"uri": "https://{canondata_backend}/1942100/3f6203e58cb404b40c036990713353e16c2dde44/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Plan_/plan.txt"
1670+
}
1671+
],
1672+
"test.test[pg_catalog-tables-default.txt-Results]": [
1673+
{
1674+
"checksum": "aec1d30f05185d9a4d18baa033e21b73",
1675+
"size": 2453,
1676+
"uri": "https://{canondata_backend}/1942100/3f6203e58cb404b40c036990713353e16c2dde44/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Results_/results.txt"
1677+
}
1678+
],
16581679
"test.test[produce-process_row_and_columns-default.txt-Debug]": [
16591680
{
16601681
"checksum": "a76d7d28c380c337f07a61a7a671ed0f",

ydb/library/yql/tools/dqrun/dqrun.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ int RunMain(int argc, const char* argv[])
422422
IMetricsRegistryPtr metricsRegistry = CreateMetricsRegistry(GetSensorsGroupFor(NSensorComponent::kDq));
423423
clusterMapping["plato"] = YtProviderName;
424424
clusterMapping["pg_catalog"] = PgProviderName;
425+
clusterMapping["information_schema"] = PgProviderName;
425426

426427
TString mountConfig;
427428
TString mestricsPusherConfig;
@@ -696,6 +697,7 @@ int RunMain(int argc, const char* argv[])
696697

697698
THashMap<TString, TString> clusters;
698699
clusters["pg_catalog"] = PgProviderName;
700+
clusters["information_schema"] = PgProviderName;
699701

700702
TVector<TDataProviderInitializer> dataProvidersInit;
701703
dataProvidersInit.push_back(GetPgDataProviderInitializer());

ydb/library/yql/tools/pgrun/pgrun.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,7 @@ int Main(int argc, char* argv[])
10711071
static const TString DefaultCluster{"plato"};
10721072
clusterMapping[DefaultCluster] = YtProviderName;
10731073
clusterMapping["pg_catalog"] = PgProviderName;
1074+
clusterMapping["information_schema"] = PgProviderName;
10741075

10751076
opts.AddHelpOption();
10761077
opts.AddLongOption("datadir", "directory for tables").StoreResult<TString>(&rawDataDir);

ydb/library/yql/tools/sql2yql/sql2yql.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ int BuildAST(int argc, char* argv[]) {
173173
THashMap<TString, TString> clusterMapping;
174174
clusterMapping["plato"] = NYql::YtProviderName;
175175
clusterMapping["pg_catalog"] = NYql::PgProviderName;
176+
clusterMapping["information_schema"] = NYql::PgProviderName;
176177

177178
THashMap<TString, TString> tables;
178179
THashSet<TString> flags;

ydb/library/yql/tools/yqlrun/http/yql_server.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ NSQLTranslation::TTranslationSettings GetTranslationSettings(const THolder<TGate
141141
static const THashMap<TString, TString> clusters = {
142142
{ "plato", TString(YtProviderName) },
143143
{ "plato_rtmr", TString(RtmrProviderName) },
144-
{ "pg_catalog", TString(PgProviderName) }
144+
{ "pg_catalog", TString(PgProviderName) },
145+
{ "information_schema", TString(PgProviderName) },
145146
};
146147

147148
NSQLTranslation::TTranslationSettings settings;

ydb/library/yql/tools/yqlrun/yqlrun.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ int Main(int argc, const char *argv[])
400400
THashSet<TString> sqlFlags;
401401
clusterMapping["plato"] = YtProviderName;
402402
clusterMapping["pg_catalog"] = PgProviderName;
403+
clusterMapping["information_schema"] = PgProviderName;
403404
ui32 progsConcurrentCount = 0;
404405
TString paramsFile;
405406
ui16 syntaxVersion;

0 commit comments

Comments
 (0)