Skip to content

Commit 146d7fa

Browse files
authored
Merge b48a40f into 8ce7edb
2 parents 8ce7edb + b48a40f commit 146d7fa

File tree

14 files changed

+295
-38
lines changed

14 files changed

+295
-38
lines changed

ydb/library/yql/parser/pg_catalog/catalog.cpp

+45-23
Original file line numberDiff line numberDiff line change
@@ -1402,26 +1402,28 @@ struct TCatalog {
14021402
"lo_unlink"
14031403
}),
14041404
StaticTables({
1405-
{"pg_catalog", "pg_type"},
1406-
{"pg_catalog", "pg_database"},
1407-
{"pg_catalog", "pg_tablespace"},
1408-
{"pg_catalog", "pg_shdescription"},
1409-
{"pg_catalog", "pg_trigger"},
1410-
{"pg_catalog", "pg_locks"},
1411-
{"pg_catalog", "pg_stat_gssapi"},
1412-
{"pg_catalog", "pg_inherits"},
1413-
{"pg_catalog", "pg_stat_activity"},
1414-
{"pg_catalog", "pg_timezone_names"},
1415-
{"pg_catalog", "pg_timezone_abbrevs"},
1416-
{"pg_catalog", "pg_tables"},
1417-
{"pg_catalog", "pg_description"},
1418-
{"pg_catalog", "pg_am"},
1419-
{"pg_catalog", "pg_namespace"},
1420-
{"pg_catalog", "pg_auth_members"},
1421-
{"pg_catalog", "pg_roles"},
1422-
{"information_schema", "tables"},
1423-
{"information_schema", "columns"},
1424-
{"information_schema", "table_constraints"},
1405+
{{"pg_catalog", "pg_type"}, ERelKind::Relation, TypeRelationOid},
1406+
{{"pg_catalog", "pg_database"}, ERelKind::Relation, DatabaseRelationOid},
1407+
{{"pg_catalog", "pg_tablespace"}, ERelKind::Relation, TableSpaceRelationOid},
1408+
{{"pg_catalog", "pg_shdescription"}, ERelKind::Relation, SharedDescriptionRelationOid},
1409+
{{"pg_catalog", "pg_trigger"}, ERelKind::Relation, TriggerRelationOid},
1410+
{{"pg_catalog", "pg_locks"}, ERelKind::View, 10000},
1411+
{{"pg_catalog", "pg_stat_gssapi"}, ERelKind::View, 10001},
1412+
{{"pg_catalog", "pg_inherits"}, ERelKind::Relation, InheritsRelationOid},
1413+
{{"pg_catalog", "pg_stat_activity"}, ERelKind::View, 10002},
1414+
{{"pg_catalog", "pg_timezone_names"}, ERelKind::View, 10003},
1415+
{{"pg_catalog", "pg_timezone_abbrevs"}, ERelKind::View, 10004},
1416+
{{"pg_catalog", "pg_tables"}, ERelKind::View, 10005},
1417+
{{"pg_catalog", "pg_description"}, ERelKind::Relation, DescriptionRelationOid},
1418+
{{"pg_catalog", "pg_am"}, ERelKind::Relation, AccessMethodRelationOid},
1419+
{{"pg_catalog", "pg_namespace"}, ERelKind::Relation, NamespaceRelationOid},
1420+
{{"pg_catalog", "pg_auth_members"}, ERelKind::Relation, AuthMemRelationOid},
1421+
{{"pg_catalog", "pg_roles"}, ERelKind::View, 10006},
1422+
{{"pg_catalog", "pg_stat_database"}, ERelKind::View, 10007},
1423+
{{"pg_catalog", "pg_class"}, ERelKind::Relation, RelationRelationOid},
1424+
{{"information_schema", "tables"}, ERelKind::View, 10008},
1425+
{{"information_schema", "columns"}, ERelKind::View, 10009},
1426+
{{"information_schema", "table_constraints"}, ERelKind::View, 10010},
14251427
}),
14261428
AllStaticColumns({
14271429
{"pg_catalog", "pg_type", "oid", "oid"},
@@ -1510,6 +1512,24 @@ struct TCatalog {
15101512
{"pg_catalog", "pg_roles", "rolsuper", "bool"},
15111513
{"pg_catalog", "pg_roles", "rolvaliduntil", "timestamptz"},
15121514

1515+
{"pg_catalog", "pg_stat_database", "datid", "oid"},
1516+
{"pg_catalog", "pg_stat_database", "blks_hit", "int8"},
1517+
{"pg_catalog", "pg_stat_database", "blks_read", "int8"},
1518+
{"pg_catalog", "pg_stat_database", "tup_deleted", "int8"},
1519+
{"pg_catalog", "pg_stat_database", "tup_fetched", "int8"},
1520+
{"pg_catalog", "pg_stat_database", "tup_inserted", "int8"},
1521+
{"pg_catalog", "pg_stat_database", "tup_returned", "int8"},
1522+
{"pg_catalog", "pg_stat_database", "tup_updated", "int8"},
1523+
{"pg_catalog", "pg_stat_database", "xact_commit", "int8"},
1524+
{"pg_catalog", "pg_stat_database", "xact_rollback", "int8"},
1525+
1526+
{"pg_catalog", "pg_class", "oid", "oid"},
1527+
{"pg_catalog", "pg_class", "relispartition", "bool"},
1528+
{"pg_catalog", "pg_class", "relkind", "char"},
1529+
{"pg_catalog", "pg_class", "relname", "name"},
1530+
{"pg_catalog", "pg_class", "relnamespace", "oid"},
1531+
{"pg_catalog", "pg_class", "relowner", "oid"},
1532+
15131533
{"information_schema", "tables", "table_schema", "name"},
15141534
{"information_schema", "tables", "table_name", "name"},
15151535

@@ -1523,12 +1543,14 @@ struct TCatalog {
15231543
{"information_schema", "table_constraints", "constraint_type", "varchar"},
15241544
})
15251545
{
1546+
THashSet<ui32> usedTableOids;
15261547
for (const auto& t : StaticTables) {
15271548
StaticColumns.insert(std::make_pair(t, TVector<TColumnInfo>()));
1549+
Y_ENSURE(usedTableOids.insert(t.Oid).first);
15281550
}
15291551

15301552
for (const auto& c: AllStaticColumns) {
1531-
auto tablePtr = StaticColumns.FindPtr(TTableInfo{c.Schema, c.TableName});
1553+
auto tablePtr = StaticColumns.FindPtr(TTableInfoKey{c.Schema, c.TableName});
15321554
Y_ENSURE(tablePtr);
15331555
tablePtr->push_back(c);
15341556
}
@@ -1740,7 +1762,7 @@ struct TCatalog {
17401762

17411763
TVector<TTableInfo> StaticTables;
17421764
TVector<TColumnInfo> AllStaticColumns;
1743-
THashMap<TTableInfo, TVector<TColumnInfo>> StaticColumns;
1765+
THashMap<TTableInfoKey, TVector<TColumnInfo>> StaticColumns;
17441766
};
17451767

17461768
bool ValidateArgs(const TVector<ui32>& descArgTypeIds, const TVector<ui32>& argTypeIds) {
@@ -2904,7 +2926,7 @@ const TVector<TTableInfo>& GetStaticTables() {
29042926
return catalog.StaticTables;
29052927
}
29062928

2907-
const THashMap<TTableInfo, TVector<TColumnInfo>>& GetStaticColumns() {
2929+
const THashMap<TTableInfoKey, TVector<TColumnInfo>>& GetStaticColumns() {
29082930
const auto& catalog = TCatalog::Instance();
29092931
return catalog.StaticColumns;
29102932
}

ydb/library/yql/parser/pg_catalog/catalog.h

+27-5
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,16 @@ bool IsCoercible(ui32 fromTypeId, ui32 toTypeId, ECoercionCode coercionType);
285285
inline bool IsArrayType(const TTypeDesc& typeDesc) noexcept {
286286
return typeDesc.ArrayTypeId == typeDesc.TypeId;
287287
}
288-
struct TTableInfo {
288+
289+
enum class ERelKind : char {
290+
Relation = 'r',
291+
View = 'v'
292+
};
293+
struct TTableInfoKey {
289294
TString Schema;
290295
TString Name;
291296

292-
bool operator==(const TTableInfo& other) const {
297+
bool operator==(const TTableInfoKey& other) const {
293298
return Schema == other.Schema && Name == other.Name;
294299
}
295300

@@ -299,6 +304,23 @@ struct TTableInfo {
299304
}
300305
};
301306

307+
constexpr ui32 TypeRelationOid = 1247;
308+
constexpr ui32 DatabaseRelationOid = 1262;
309+
constexpr ui32 TableSpaceRelationOid = 1213;
310+
constexpr ui32 SharedDescriptionRelationOid = 2396;
311+
constexpr ui32 TriggerRelationOid = 2620;
312+
constexpr ui32 InheritsRelationOid = 2611;
313+
constexpr ui32 DescriptionRelationOid = 2609;
314+
constexpr ui32 AccessMethodRelationOid = 2601;
315+
constexpr ui32 NamespaceRelationOid = 2615;
316+
constexpr ui32 AuthMemRelationOid = 1261;
317+
constexpr ui32 RelationRelationOid = 1259;
318+
319+
struct TTableInfo : public TTableInfoKey {
320+
ERelKind Kind;
321+
ui32 Oid;
322+
};
323+
302324
struct TColumnInfo {
303325
TString Schema;
304326
TString TableName;
@@ -307,7 +329,7 @@ struct TColumnInfo {
307329
};
308330

309331
const TVector<TTableInfo>& GetStaticTables();
310-
const THashMap<TTableInfo, TVector<TColumnInfo>>& GetStaticColumns();
332+
const THashMap<TTableInfoKey, TVector<TColumnInfo>>& GetStaticColumns();
311333

312334
}
313335

@@ -322,8 +344,8 @@ inline void Out<NYql::NPg::ECoercionCode>(IOutputStream& o, NYql::NPg::ECoercion
322344
}
323345

324346
template <>
325-
struct THash<NYql::NPg::TTableInfo> {
326-
size_t operator ()(const NYql::NPg::TTableInfo& val) const {
347+
struct THash<NYql::NPg::TTableInfoKey> {
348+
size_t operator ()(const NYql::NPg::TTableInfoKey& val) const {
327349
return val.Hash();
328350
}
329351
};

ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33

44
extern "C" {
55
#include "catalog/pg_collation_d.h"
6+
#include "catalog/pg_type_d.h"
7+
#include "catalog/pg_database_d.h"
8+
#include "catalog/pg_tablespace_d.h"
9+
#include "catalog/pg_shdescription_d.h"
10+
#include "catalog/pg_trigger_d.h"
11+
#include "catalog/pg_inherits_d.h"
12+
#include "catalog/pg_description_d.h"
13+
#include "catalog/pg_am_d.h"
14+
#include "catalog/pg_namespace_d.h"
15+
#include "catalog/pg_auth_members_d.h"
16+
#include "catalog/pg_class_d.h"
617
#include "access/stratnum.h"
718
}
819

@@ -41,4 +52,18 @@ Y_UNIT_TEST_SUITE(TConstantsTests) {
4152
typeDesc = LookupType("text");
4253
UNIT_ASSERT_VALUES_EQUAL(typeDesc.TypeId, TextOid);
4354
}
55+
56+
Y_UNIT_TEST(TRelationOidConsts) {
57+
UNIT_ASSERT_VALUES_EQUAL(TypeRelationOid, TypeRelationId);
58+
UNIT_ASSERT_VALUES_EQUAL(DatabaseRelationOid, DatabaseRelationId);
59+
UNIT_ASSERT_VALUES_EQUAL(TableSpaceRelationOid, TableSpaceRelationId);
60+
UNIT_ASSERT_VALUES_EQUAL(SharedDescriptionRelationOid, SharedDescriptionRelationId);
61+
UNIT_ASSERT_VALUES_EQUAL(TriggerRelationOid, TriggerRelationId);
62+
UNIT_ASSERT_VALUES_EQUAL(InheritsRelationOid, InheritsRelationId);
63+
UNIT_ASSERT_VALUES_EQUAL(DescriptionRelationOid, DescriptionRelationId);
64+
UNIT_ASSERT_VALUES_EQUAL(AccessMethodRelationOid, AccessMethodRelationId);
65+
UNIT_ASSERT_VALUES_EQUAL(NamespaceRelationOid, NamespaceRelationId);
66+
UNIT_ASSERT_VALUES_EQUAL(AuthMemRelationOid, AuthMemRelationId);
67+
UNIT_ASSERT_VALUES_EQUAL(RelationRelationOid, RelationRelationId);
68+
}
4469
}

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

+61
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,32 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
393393
};
394394

395395
ApplyFillers(AllPgRolesFillers, Y_ARRAY_SIZE(AllPgRolesFillers), PgRolesFillers_);
396+
} else if (Table_ == "pg_stat_database") {
397+
static const std::pair<const char*, TPgDatabaseStatFiller> AllPgDatabaseStatFillers[] = {
398+
{"datid", [](ui32 index) { return ScalarDatumToPod(ObjectIdGetDatum(index ? 3 : 0)); }},
399+
{"blks_hit", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
400+
{"blks_read", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
401+
{"tup_deleted", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
402+
{"tup_fetched", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
403+
{"tup_inserted", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
404+
{"tup_returned", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
405+
{"tup_updated", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
406+
{"xact_commit", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
407+
{"xact_rollback", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }},
408+
};
409+
410+
ApplyFillers(AllPgDatabaseStatFillers, Y_ARRAY_SIZE(AllPgDatabaseStatFillers), PgDatabaseStatFillers_);
411+
} else if (Table_ == "pg_class") {
412+
static const std::pair<const char*, TPgClassFiller> AllPgClassFillers[] = {
413+
{"oid", [](const NPg::TTableInfo& desc, ui32) { return ScalarDatumToPod(ObjectIdGetDatum(desc.Oid)); }},
414+
{"relispartition", [](const NPg::TTableInfo&, ui32) { return ScalarDatumToPod(BoolGetDatum(false)); }},
415+
{"relkind", [](const NPg::TTableInfo& desc, ui32) { return ScalarDatumToPod(CharGetDatum(desc.Kind)); }},
416+
{"relname", [](const NPg::TTableInfo& desc, ui32) { return PointerDatumToPod((Datum)MakeFixedString(desc.Name, NAMEDATALEN)); }},
417+
{"relnamespace", [](const NPg::TTableInfo&, ui32 namespaceOid) { return ScalarDatumToPod(ObjectIdGetDatum(namespaceOid)); }},
418+
{"relowner", [](const NPg::TTableInfo&, ui32) { return ScalarDatumToPod(ObjectIdGetDatum(1)); }},
419+
};
420+
421+
ApplyFillers(AllPgClassFillers, Y_ARRAY_SIZE(AllPgClassFillers), PgClassFillers_);
396422
}
397423
} else {
398424
if (Table_ == "tables") {
@@ -424,6 +450,10 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
424450
fillers[*pos] = func;
425451
}
426452
}
453+
454+
for (const auto& f : fillers) {
455+
Y_ENSURE(f);
456+
}
427457
}
428458

429459
NUdf::TUnboxedValuePod DoCalculate(TComputationContext& compCtx) const {
@@ -602,6 +632,32 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
602632
}
603633

604634
rows.emplace_back(row);
635+
} else if (Table_ == "pg_stat_database") {
636+
for (ui32 index = 0; index <= 1; ++index) {
637+
NUdf::TUnboxedValue* items;
638+
auto row = compCtx.HolderFactory.CreateDirectArrayHolder(PgDatabaseStatFillers_.size(), items);
639+
for (ui32 i = 0; i < PgDatabaseStatFillers_.size(); ++i) {
640+
items[i] = PgDatabaseStatFillers_[i](index);
641+
}
642+
643+
rows.emplace_back(row);
644+
}
645+
} else if (Table_ == "pg_class") {
646+
const auto& tables = NPg::GetStaticTables();
647+
THashMap<TString, ui32> namespaces;
648+
NPg::EnumNamespace([&](ui32 oid, const NPg::TNamespaceDesc& desc) {
649+
namespaces[desc.Name] = oid;
650+
});
651+
652+
for (const auto& t : tables) {
653+
NUdf::TUnboxedValue* items;
654+
auto row = compCtx.HolderFactory.CreateDirectArrayHolder(PgClassFillers_.size(), items);
655+
for (ui32 i = 0; i < PgClassFillers_.size(); ++i) {
656+
items[i] = PgClassFillers_[i](t, namespaces[t.Schema]);
657+
}
658+
659+
rows.emplace_back(row);
660+
}
605661
}
606662
} else {
607663
if (Table_ == "tables") {
@@ -658,6 +714,8 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
658714
TVector<TPgAmFiller> PgAmFillers_;
659715
using TPgRolesFiller = NUdf::TUnboxedValuePod(*)();
660716
TVector<TPgRolesFiller> PgRolesFillers_;
717+
using TPgDatabaseStatFiller = NUdf::TUnboxedValuePod(*)(ui32 index);
718+
TVector<TPgDatabaseStatFiller> PgDatabaseStatFillers_;
661719

662720
struct TDescriptionDesc {
663721
ui32 Objoid = 0;
@@ -675,6 +733,9 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
675733

676734
using TColumnsFiller = NUdf::TUnboxedValuePod(*)(const NPg::TColumnInfo&);
677735
TVector<TColumnsFiller> ColumnsFillers_;
736+
737+
using TPgClassFiller = NUdf::TUnboxedValuePod(*)(const NPg::TTableInfo&, ui32 namespaceOid);
738+
TVector<TPgClassFiller> PgClassFillers_;
678739
};
679740

680741
class TFunctionCallInfo {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class TPgDataSourceTypeAnnotationTransformer : public TVisitorTransformerBase {
107107

108108
auto tableName = input->Child(TNode::idx_Table)->Content();
109109
TVector<const TItemExprType*> items;
110-
auto columnsPtr = NPg::GetStaticColumns().FindPtr(NPg::TTableInfo{ cluster, TString(tableName) });
110+
auto columnsPtr = NPg::GetStaticColumns().FindPtr(NPg::TTableInfoKey{ cluster, TString(tableName) });
111111
if (!columnsPtr) {
112112
ctx.AddError(TIssue(ctx.GetPosition(input->Child(TPgReadTable::idx_Table)->Pos()), TStringBuilder() << "Unsupported table: " << tableName));
113113
return TStatus::Error;

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

+22
Original file line numberDiff line numberDiff line change
@@ -2506,6 +2506,28 @@
25062506
}
25072507
],
25082508
"test.test[pg-tpch-q16-default.txt-Results]": [],
2509+
"test.test[pg_catalog-pg_class-default.txt-Analyze]": [
2510+
{
2511+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2512+
"size": 948,
2513+
"uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Analyze_/plan.txt"
2514+
}
2515+
],
2516+
"test.test[pg_catalog-pg_class-default.txt-Debug]": [
2517+
{
2518+
"checksum": "48c1e7df973ab53841f9705a3a6f1d3e",
2519+
"size": 549,
2520+
"uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Debug_/opt.yql_patched"
2521+
}
2522+
],
2523+
"test.test[pg_catalog-pg_class-default.txt-Plan]": [
2524+
{
2525+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2526+
"size": 948,
2527+
"uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Plan_/plan.txt"
2528+
}
2529+
],
2530+
"test.test[pg_catalog-pg_class-default.txt-Results]": [],
25092531
"test.test[pg_catalog-pg_description_pg_syntax-default.txt-Analyze]": [
25102532
{
25112533
"checksum": "c1f2d837c3623c81dd596a9877913fb8",

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_stat_database-default.txt-Analyze]": [
2439+
{
2440+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2441+
"size": 948,
2442+
"uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Analyze_/plan.txt"
2443+
}
2444+
],
2445+
"test.test[pg_catalog-pg_stat_database-default.txt-Debug]": [
2446+
{
2447+
"checksum": "62d4a7970f183dc24931fa2cf712509e",
2448+
"size": 1205,
2449+
"uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Debug_/opt.yql_patched"
2450+
}
2451+
],
2452+
"test.test[pg_catalog-pg_stat_database-default.txt-Plan]": [
2453+
{
2454+
"checksum": "c1f2d837c3623c81dd596a9877913fb8",
2455+
"size": 948,
2456+
"uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Plan_/plan.txt"
2457+
}
2458+
],
2459+
"test.test[pg_catalog-pg_stat_database-default.txt-Results]": [],
24382460
"test.test[pg_catalog-pg_tables-default.txt-Analyze]": [
24392461
{
24402462
"checksum": "c1f2d837c3623c81dd596a9877913fb8",

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

+14
Original file line numberDiff line numberDiff line change
@@ -13264,6 +13264,13 @@
1326413264
"uri": "https://{canondata_backend}/1942671/97ffbf971de6e6c2db7e871e5dfde6d17befe266/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_auth_members_/sql.yql"
1326513265
}
1326613266
],
13267+
"test_sql2yql.test[pg_catalog-pg_class]": [
13268+
{
13269+
"checksum": "22ebe252b77b53e39b177ca4c9a7b530",
13270+
"size": 1075,
13271+
"uri": "https://{canondata_backend}/1936842/55a7040ab1de9722f14ba790e6f8065314d91717/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_class_/sql.yql"
13272+
}
13273+
],
1326713274
"test_sql2yql.test[pg_catalog-pg_database]": [
1326813275
{
1326913276
"checksum": "3c66358cd738a51ccd0766e18e21fc45",
@@ -13334,6 +13341,13 @@
1333413341
"uri": "https://{canondata_backend}/1773845/118c740ff9ea824c1b2998c5bad993b2a2276f6e/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_stat_activity_/sql.yql"
1333513342
}
1333613343
],
13344+
"test_sql2yql.test[pg_catalog-pg_stat_database]": [
13345+
{
13346+
"checksum": "76a9374e0363e44c5cffffc9d23b8f51",
13347+
"size": 1346,
13348+
"uri": "https://{canondata_backend}/1936842/55a7040ab1de9722f14ba790e6f8065314d91717/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_stat_database_/sql.yql"
13349+
}
13350+
],
1333713351
"test_sql2yql.test[pg_catalog-pg_stat_gssapi]": [
1333813352
{
1333913353
"checksum": "618acd0a4c833faffdb13606ed680142",

0 commit comments

Comments
 (0)