diff options
author | Vitaly Stoyan <vvvv@ydb.tech> | 2024-01-31 10:22:36 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-31 10:22:36 +0300 |
commit | 827a532736dc6a7c9f435060d451b5fba6d577d2 (patch) | |
tree | 5530f3e2e45e7c2174a83290f734497d4495f144 | |
parent | 2ef413e77b8c0cc97847e13af643292fffa8c2bb (diff) | |
download | ydb-827a532736dc6a7c9f435060d451b5fba6d577d2.tar.gz |
init (#1437)
14 files changed, 295 insertions, 38 deletions
diff --git a/ydb/library/yql/parser/pg_catalog/catalog.cpp b/ydb/library/yql/parser/pg_catalog/catalog.cpp index f0b3f2bbc3..6a96ef4920 100644 --- a/ydb/library/yql/parser/pg_catalog/catalog.cpp +++ b/ydb/library/yql/parser/pg_catalog/catalog.cpp @@ -1402,26 +1402,28 @@ struct TCatalog { "lo_unlink" }), StaticTables({ - {"pg_catalog", "pg_type"}, - {"pg_catalog", "pg_database"}, - {"pg_catalog", "pg_tablespace"}, - {"pg_catalog", "pg_shdescription"}, - {"pg_catalog", "pg_trigger"}, - {"pg_catalog", "pg_locks"}, - {"pg_catalog", "pg_stat_gssapi"}, - {"pg_catalog", "pg_inherits"}, - {"pg_catalog", "pg_stat_activity"}, - {"pg_catalog", "pg_timezone_names"}, - {"pg_catalog", "pg_timezone_abbrevs"}, - {"pg_catalog", "pg_tables"}, - {"pg_catalog", "pg_description"}, - {"pg_catalog", "pg_am"}, - {"pg_catalog", "pg_namespace"}, - {"pg_catalog", "pg_auth_members"}, - {"pg_catalog", "pg_roles"}, - {"information_schema", "tables"}, - {"information_schema", "columns"}, - {"information_schema", "table_constraints"}, + {{"pg_catalog", "pg_type"}, ERelKind::Relation, TypeRelationOid}, + {{"pg_catalog", "pg_database"}, ERelKind::Relation, DatabaseRelationOid}, + {{"pg_catalog", "pg_tablespace"}, ERelKind::Relation, TableSpaceRelationOid}, + {{"pg_catalog", "pg_shdescription"}, ERelKind::Relation, SharedDescriptionRelationOid}, + {{"pg_catalog", "pg_trigger"}, ERelKind::Relation, TriggerRelationOid}, + {{"pg_catalog", "pg_locks"}, ERelKind::View, 10000}, + {{"pg_catalog", "pg_stat_gssapi"}, ERelKind::View, 10001}, + {{"pg_catalog", "pg_inherits"}, ERelKind::Relation, InheritsRelationOid}, + {{"pg_catalog", "pg_stat_activity"}, ERelKind::View, 10002}, + {{"pg_catalog", "pg_timezone_names"}, ERelKind::View, 10003}, + {{"pg_catalog", "pg_timezone_abbrevs"}, ERelKind::View, 10004}, + {{"pg_catalog", "pg_tables"}, ERelKind::View, 10005}, + {{"pg_catalog", "pg_description"}, ERelKind::Relation, DescriptionRelationOid}, + {{"pg_catalog", "pg_am"}, ERelKind::Relation, AccessMethodRelationOid}, + {{"pg_catalog", "pg_namespace"}, ERelKind::Relation, NamespaceRelationOid}, + {{"pg_catalog", "pg_auth_members"}, ERelKind::Relation, AuthMemRelationOid}, + {{"pg_catalog", "pg_roles"}, ERelKind::View, 10006}, + {{"pg_catalog", "pg_stat_database"}, ERelKind::View, 10007}, + {{"pg_catalog", "pg_class"}, ERelKind::Relation, RelationRelationOid}, + {{"information_schema", "tables"}, ERelKind::View, 10008}, + {{"information_schema", "columns"}, ERelKind::View, 10009}, + {{"information_schema", "table_constraints"}, ERelKind::View, 10010}, }), AllStaticColumns({ {"pg_catalog", "pg_type", "oid", "oid"}, @@ -1510,6 +1512,24 @@ struct TCatalog { {"pg_catalog", "pg_roles", "rolsuper", "bool"}, {"pg_catalog", "pg_roles", "rolvaliduntil", "timestamptz"}, + {"pg_catalog", "pg_stat_database", "datid", "oid"}, + {"pg_catalog", "pg_stat_database", "blks_hit", "int8"}, + {"pg_catalog", "pg_stat_database", "blks_read", "int8"}, + {"pg_catalog", "pg_stat_database", "tup_deleted", "int8"}, + {"pg_catalog", "pg_stat_database", "tup_fetched", "int8"}, + {"pg_catalog", "pg_stat_database", "tup_inserted", "int8"}, + {"pg_catalog", "pg_stat_database", "tup_returned", "int8"}, + {"pg_catalog", "pg_stat_database", "tup_updated", "int8"}, + {"pg_catalog", "pg_stat_database", "xact_commit", "int8"}, + {"pg_catalog", "pg_stat_database", "xact_rollback", "int8"}, + + {"pg_catalog", "pg_class", "oid", "oid"}, + {"pg_catalog", "pg_class", "relispartition", "bool"}, + {"pg_catalog", "pg_class", "relkind", "char"}, + {"pg_catalog", "pg_class", "relname", "name"}, + {"pg_catalog", "pg_class", "relnamespace", "oid"}, + {"pg_catalog", "pg_class", "relowner", "oid"}, + {"information_schema", "tables", "table_schema", "name"}, {"information_schema", "tables", "table_name", "name"}, @@ -1523,12 +1543,14 @@ struct TCatalog { {"information_schema", "table_constraints", "constraint_type", "varchar"}, }) { + THashSet<ui32> usedTableOids; for (const auto& t : StaticTables) { StaticColumns.insert(std::make_pair(t, TVector<TColumnInfo>())); + Y_ENSURE(usedTableOids.insert(t.Oid).first); } for (const auto& c: AllStaticColumns) { - auto tablePtr = StaticColumns.FindPtr(TTableInfo{c.Schema, c.TableName}); + auto tablePtr = StaticColumns.FindPtr(TTableInfoKey{c.Schema, c.TableName}); Y_ENSURE(tablePtr); tablePtr->push_back(c); } @@ -1740,7 +1762,7 @@ struct TCatalog { TVector<TTableInfo> StaticTables; TVector<TColumnInfo> AllStaticColumns; - THashMap<TTableInfo, TVector<TColumnInfo>> StaticColumns; + THashMap<TTableInfoKey, TVector<TColumnInfo>> StaticColumns; }; bool ValidateArgs(const TVector<ui32>& descArgTypeIds, const TVector<ui32>& argTypeIds) { @@ -2904,7 +2926,7 @@ const TVector<TTableInfo>& GetStaticTables() { return catalog.StaticTables; } -const THashMap<TTableInfo, TVector<TColumnInfo>>& GetStaticColumns() { +const THashMap<TTableInfoKey, TVector<TColumnInfo>>& GetStaticColumns() { const auto& catalog = TCatalog::Instance(); return catalog.StaticColumns; } diff --git a/ydb/library/yql/parser/pg_catalog/catalog.h b/ydb/library/yql/parser/pg_catalog/catalog.h index 357a44eee9..1c4ca8a93b 100644 --- a/ydb/library/yql/parser/pg_catalog/catalog.h +++ b/ydb/library/yql/parser/pg_catalog/catalog.h @@ -285,11 +285,16 @@ bool IsCoercible(ui32 fromTypeId, ui32 toTypeId, ECoercionCode coercionType); inline bool IsArrayType(const TTypeDesc& typeDesc) noexcept { return typeDesc.ArrayTypeId == typeDesc.TypeId; } -struct TTableInfo { + +enum class ERelKind : char { + Relation = 'r', + View = 'v' +}; +struct TTableInfoKey { TString Schema; TString Name; - bool operator==(const TTableInfo& other) const { + bool operator==(const TTableInfoKey& other) const { return Schema == other.Schema && Name == other.Name; } @@ -299,6 +304,23 @@ struct TTableInfo { } }; +constexpr ui32 TypeRelationOid = 1247; +constexpr ui32 DatabaseRelationOid = 1262; +constexpr ui32 TableSpaceRelationOid = 1213; +constexpr ui32 SharedDescriptionRelationOid = 2396; +constexpr ui32 TriggerRelationOid = 2620; +constexpr ui32 InheritsRelationOid = 2611; +constexpr ui32 DescriptionRelationOid = 2609; +constexpr ui32 AccessMethodRelationOid = 2601; +constexpr ui32 NamespaceRelationOid = 2615; +constexpr ui32 AuthMemRelationOid = 1261; +constexpr ui32 RelationRelationOid = 1259; + +struct TTableInfo : public TTableInfoKey { + ERelKind Kind; + ui32 Oid; +}; + struct TColumnInfo { TString Schema; TString TableName; @@ -307,7 +329,7 @@ struct TColumnInfo { }; const TVector<TTableInfo>& GetStaticTables(); -const THashMap<TTableInfo, TVector<TColumnInfo>>& GetStaticColumns(); +const THashMap<TTableInfoKey, TVector<TColumnInfo>>& GetStaticColumns(); } @@ -322,8 +344,8 @@ inline void Out<NYql::NPg::ECoercionCode>(IOutputStream& o, NYql::NPg::ECoercion } template <> -struct THash<NYql::NPg::TTableInfo> { - size_t operator ()(const NYql::NPg::TTableInfo& val) const { +struct THash<NYql::NPg::TTableInfoKey> { + size_t operator ()(const NYql::NPg::TTableInfoKey& val) const { return val.Hash(); } }; diff --git a/ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp b/ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp index 081e0a1ca7..34af3919b6 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp +++ b/ydb/library/yql/parser/pg_catalog/ut/catalog_consts_ut.cpp @@ -3,6 +3,17 @@ extern "C" { #include "catalog/pg_collation_d.h" +#include "catalog/pg_type_d.h" +#include "catalog/pg_database_d.h" +#include "catalog/pg_tablespace_d.h" +#include "catalog/pg_shdescription_d.h" +#include "catalog/pg_trigger_d.h" +#include "catalog/pg_inherits_d.h" +#include "catalog/pg_description_d.h" +#include "catalog/pg_am_d.h" +#include "catalog/pg_namespace_d.h" +#include "catalog/pg_auth_members_d.h" +#include "catalog/pg_class_d.h" #include "access/stratnum.h" } @@ -41,4 +52,18 @@ Y_UNIT_TEST_SUITE(TConstantsTests) { typeDesc = LookupType("text"); UNIT_ASSERT_VALUES_EQUAL(typeDesc.TypeId, TextOid); } + + Y_UNIT_TEST(TRelationOidConsts) { + UNIT_ASSERT_VALUES_EQUAL(TypeRelationOid, TypeRelationId); + UNIT_ASSERT_VALUES_EQUAL(DatabaseRelationOid, DatabaseRelationId); + UNIT_ASSERT_VALUES_EQUAL(TableSpaceRelationOid, TableSpaceRelationId); + UNIT_ASSERT_VALUES_EQUAL(SharedDescriptionRelationOid, SharedDescriptionRelationId); + UNIT_ASSERT_VALUES_EQUAL(TriggerRelationOid, TriggerRelationId); + UNIT_ASSERT_VALUES_EQUAL(InheritsRelationOid, InheritsRelationId); + UNIT_ASSERT_VALUES_EQUAL(DescriptionRelationOid, DescriptionRelationId); + UNIT_ASSERT_VALUES_EQUAL(AccessMethodRelationOid, AccessMethodRelationId); + UNIT_ASSERT_VALUES_EQUAL(NamespaceRelationOid, NamespaceRelationId); + UNIT_ASSERT_VALUES_EQUAL(AuthMemRelationOid, AuthMemRelationId); + UNIT_ASSERT_VALUES_EQUAL(RelationRelationOid, RelationRelationId); + } } diff --git a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp index b5d3311fd4..4dd8d5e7e4 100644 --- a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp +++ b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp @@ -393,6 +393,32 @@ public: }; ApplyFillers(AllPgRolesFillers, Y_ARRAY_SIZE(AllPgRolesFillers), PgRolesFillers_); + } else if (Table_ == "pg_stat_database") { + static const std::pair<const char*, TPgDatabaseStatFiller> AllPgDatabaseStatFillers[] = { + {"datid", [](ui32 index) { return ScalarDatumToPod(ObjectIdGetDatum(index ? 3 : 0)); }}, + {"blks_hit", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"blks_read", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"tup_deleted", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"tup_fetched", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"tup_inserted", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"tup_returned", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"tup_updated", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"xact_commit", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + {"xact_rollback", [](ui32) { return ScalarDatumToPod(Int64GetDatum(0)); }}, + }; + + ApplyFillers(AllPgDatabaseStatFillers, Y_ARRAY_SIZE(AllPgDatabaseStatFillers), PgDatabaseStatFillers_); + } else if (Table_ == "pg_class") { + static const std::pair<const char*, TPgClassFiller> AllPgClassFillers[] = { + {"oid", [](const NPg::TTableInfo& desc, ui32) { return ScalarDatumToPod(ObjectIdGetDatum(desc.Oid)); }}, + {"relispartition", [](const NPg::TTableInfo&, ui32) { return ScalarDatumToPod(BoolGetDatum(false)); }}, + {"relkind", [](const NPg::TTableInfo& desc, ui32) { return ScalarDatumToPod(CharGetDatum(desc.Kind)); }}, + {"relname", [](const NPg::TTableInfo& desc, ui32) { return PointerDatumToPod((Datum)MakeFixedString(desc.Name, NAMEDATALEN)); }}, + {"relnamespace", [](const NPg::TTableInfo&, ui32 namespaceOid) { return ScalarDatumToPod(ObjectIdGetDatum(namespaceOid)); }}, + {"relowner", [](const NPg::TTableInfo&, ui32) { return ScalarDatumToPod(ObjectIdGetDatum(1)); }}, + }; + + ApplyFillers(AllPgClassFillers, Y_ARRAY_SIZE(AllPgClassFillers), PgClassFillers_); } } else { if (Table_ == "tables") { @@ -424,6 +450,10 @@ public: fillers[*pos] = func; } } + + for (const auto& f : fillers) { + Y_ENSURE(f); + } } NUdf::TUnboxedValuePod DoCalculate(TComputationContext& compCtx) const { @@ -602,6 +632,32 @@ public: } rows.emplace_back(row); + } else if (Table_ == "pg_stat_database") { + for (ui32 index = 0; index <= 1; ++index) { + NUdf::TUnboxedValue* items; + auto row = compCtx.HolderFactory.CreateDirectArrayHolder(PgDatabaseStatFillers_.size(), items); + for (ui32 i = 0; i < PgDatabaseStatFillers_.size(); ++i) { + items[i] = PgDatabaseStatFillers_[i](index); + } + + rows.emplace_back(row); + } + } else if (Table_ == "pg_class") { + const auto& tables = NPg::GetStaticTables(); + THashMap<TString, ui32> namespaces; + NPg::EnumNamespace([&](ui32 oid, const NPg::TNamespaceDesc& desc) { + namespaces[desc.Name] = oid; + }); + + for (const auto& t : tables) { + NUdf::TUnboxedValue* items; + auto row = compCtx.HolderFactory.CreateDirectArrayHolder(PgClassFillers_.size(), items); + for (ui32 i = 0; i < PgClassFillers_.size(); ++i) { + items[i] = PgClassFillers_[i](t, namespaces[t.Schema]); + } + + rows.emplace_back(row); + } } } else { if (Table_ == "tables") { @@ -658,6 +714,8 @@ private: TVector<TPgAmFiller> PgAmFillers_; using TPgRolesFiller = NUdf::TUnboxedValuePod(*)(); TVector<TPgRolesFiller> PgRolesFillers_; + using TPgDatabaseStatFiller = NUdf::TUnboxedValuePod(*)(ui32 index); + TVector<TPgDatabaseStatFiller> PgDatabaseStatFillers_; struct TDescriptionDesc { ui32 Objoid = 0; @@ -675,6 +733,9 @@ private: using TColumnsFiller = NUdf::TUnboxedValuePod(*)(const NPg::TColumnInfo&); TVector<TColumnsFiller> ColumnsFillers_; + + using TPgClassFiller = NUdf::TUnboxedValuePod(*)(const NPg::TTableInfo&, ui32 namespaceOid); + TVector<TPgClassFiller> PgClassFillers_; }; class TFunctionCallInfo { diff --git a/ydb/library/yql/providers/pg/provider/yql_pg_datasource_type_ann.cpp b/ydb/library/yql/providers/pg/provider/yql_pg_datasource_type_ann.cpp index b3ea99ecb3..aac3069c9b 100644 --- a/ydb/library/yql/providers/pg/provider/yql_pg_datasource_type_ann.cpp +++ b/ydb/library/yql/providers/pg/provider/yql_pg_datasource_type_ann.cpp @@ -107,7 +107,7 @@ public: auto tableName = input->Child(TNode::idx_Table)->Content(); TVector<const TItemExprType*> items; - auto columnsPtr = NPg::GetStaticColumns().FindPtr(NPg::TTableInfo{ cluster, TString(tableName) }); + auto columnsPtr = NPg::GetStaticColumns().FindPtr(NPg::TTableInfoKey{ cluster, TString(tableName) }); if (!columnsPtr) { ctx.AddError(TIssue(ctx.GetPosition(input->Child(TPgReadTable::idx_Table)->Pos()), TStringBuilder() << "Unsupported table: " << tableName)); return TStatus::Error; diff --git a/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json index 362222f250..0beceeadf1 100644 --- a/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part12/canondata/result.json @@ -2506,6 +2506,28 @@ } ], "test.test[pg-tpch-q16-default.txt-Results]": [], + "test.test[pg_catalog-pg_class-default.txt-Analyze]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Analyze_/plan.txt" + } + ], + "test.test[pg_catalog-pg_class-default.txt-Debug]": [ + { + "checksum": "48c1e7df973ab53841f9705a3a6f1d3e", + "size": 549, + "uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[pg_catalog-pg_class-default.txt-Plan]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1937367/a0981807726fa8e5aad90985bda23ee6596b1473/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Plan_/plan.txt" + } + ], + "test.test[pg_catalog-pg_class-default.txt-Results]": [], "test.test[pg_catalog-pg_description_pg_syntax-default.txt-Analyze]": [ { "checksum": "c1f2d837c3623c81dd596a9877913fb8", diff --git a/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json index 6d05ba39c6..1e828d0777 100644 --- a/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json @@ -2435,6 +2435,28 @@ } ], "test.test[pg_catalog-pg_stat_activity-default.txt-Results]": [], + "test.test[pg_catalog-pg_stat_database-default.txt-Analyze]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Analyze_/plan.txt" + } + ], + "test.test[pg_catalog-pg_stat_database-default.txt-Debug]": [ + { + "checksum": "62d4a7970f183dc24931fa2cf712509e", + "size": 1205, + "uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Debug_/opt.yql_patched" + } + ], + "test.test[pg_catalog-pg_stat_database-default.txt-Plan]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1936947/960a823a7074bb0a4fc6829f35dc9035ea62bcf1/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Plan_/plan.txt" + } + ], + "test.test[pg_catalog-pg_stat_database-default.txt-Results]": [], "test.test[pg_catalog-pg_tables-default.txt-Analyze]": [ { "checksum": "c1f2d837c3623c81dd596a9877913fb8", diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 3248f5f6f5..0a281e0830 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -13264,6 +13264,13 @@ "uri": "https://{canondata_backend}/1942671/97ffbf971de6e6c2db7e871e5dfde6d17befe266/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_auth_members_/sql.yql" } ], + "test_sql2yql.test[pg_catalog-pg_class]": [ + { + "checksum": "22ebe252b77b53e39b177ca4c9a7b530", + "size": 1075, + "uri": "https://{canondata_backend}/1936842/55a7040ab1de9722f14ba790e6f8065314d91717/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_class_/sql.yql" + } + ], "test_sql2yql.test[pg_catalog-pg_database]": [ { "checksum": "3c66358cd738a51ccd0766e18e21fc45", @@ -13334,6 +13341,13 @@ "uri": "https://{canondata_backend}/1773845/118c740ff9ea824c1b2998c5bad993b2a2276f6e/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_stat_activity_/sql.yql" } ], + "test_sql2yql.test[pg_catalog-pg_stat_database]": [ + { + "checksum": "76a9374e0363e44c5cffffc9d23b8f51", + "size": 1346, + "uri": "https://{canondata_backend}/1936842/55a7040ab1de9722f14ba790e6f8065314d91717/resource.tar.gz#test_sql2yql.test_pg_catalog-pg_stat_database_/sql.yql" + } + ], "test_sql2yql.test[pg_catalog-pg_stat_gssapi]": [ { "checksum": "618acd0a4c833faffdb13606ed680142", diff --git a/ydb/library/yql/tests/sql/suites/pg_catalog/pg_class.sql b/ydb/library/yql/tests/sql/suites/pg_catalog/pg_class.sql new file mode 100644 index 0000000000..85dee35813 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/pg_catalog/pg_class.sql @@ -0,0 +1,12 @@ +--!syntax_pg +select +oid, +relispartition, +relkind, +relname, +relnamespace, +relowner +from +pg_catalog.pg_class +order by oid + diff --git a/ydb/library/yql/tests/sql/suites/pg_catalog/pg_stat_database.sql b/ydb/library/yql/tests/sql/suites/pg_catalog/pg_stat_database.sql new file mode 100644 index 0000000000..f15ce35f12 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/pg_catalog/pg_stat_database.sql @@ -0,0 +1,15 @@ +--!syntax_pg +select +datid, +blks_hit, +blks_read, +tup_deleted +tup_fetched, +tup_inserted, +tup_returned, +tup_updated, +xact_commit, +xact_rollback +from pg_catalog.pg_stat_database +order by datid + diff --git a/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json index 4798254a94..72329873c0 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part12/canondata/result.json @@ -2346,6 +2346,27 @@ "uri": "https://{canondata_backend}/1942415/14c2050022adcb6379d90c4a2a09abf0847e7643/resource.tar.gz#test.test_pg-tpch-q16-default.txt-Results_/results.txt" } ], + "test.test[pg_catalog-pg_class-default.txt-Debug]": [ + { + "checksum": "8c6db8487a72e41529660d0b7308784a", + "size": 491, + "uri": "https://{canondata_backend}/1936842/eeab348a87df8efaf5aeed3d4029ae81b7a664e9/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Debug_/opt.yql" + } + ], + "test.test[pg_catalog-pg_class-default.txt-Plan]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1936842/eeab348a87df8efaf5aeed3d4029ae81b7a664e9/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Plan_/plan.txt" + } + ], + "test.test[pg_catalog-pg_class-default.txt-Results]": [ + { + "checksum": "21efd805d77c26298a4ad9b043f89501", + "size": 7117, + "uri": "https://{canondata_backend}/1936842/eeab348a87df8efaf5aeed3d4029ae81b7a664e9/resource.tar.gz#test.test_pg_catalog-pg_class-default.txt-Results_/results.txt" + } + ], "test.test[pg_catalog-pg_description_pg_syntax-default.txt-Debug]": [ { "checksum": "f5c0f9bb9c0050ef6e8a04598c64c39e", diff --git a/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json index 8c739704e0..008915e0e2 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/result.json @@ -2370,6 +2370,27 @@ "uri": "https://{canondata_backend}/1880306/1ee788a2569716571a36649ae2ceeb626ced8876/resource.tar.gz#test.test_pg_catalog-pg_stat_activity-default.txt-Results_/results.txt" } ], + "test.test[pg_catalog-pg_stat_database-default.txt-Debug]": [ + { + "checksum": "35922c1d421f178640e0fec41ed16535", + "size": 1137, + "uri": "https://{canondata_backend}/1937367/b877ae676042d7731cf65ea15a0d1c849f001898/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Debug_/opt.yql" + } + ], + "test.test[pg_catalog-pg_stat_database-default.txt-Plan]": [ + { + "checksum": "c1f2d837c3623c81dd596a9877913fb8", + "size": 948, + "uri": "https://{canondata_backend}/1937367/b877ae676042d7731cf65ea15a0d1c849f001898/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Plan_/plan.txt" + } + ], + "test.test[pg_catalog-pg_stat_database-default.txt-Results]": [ + { + "checksum": "142888dee7875c91738f780119d39872", + "size": 3315, + "uri": "https://{canondata_backend}/1937367/b877ae676042d7731cf65ea15a0d1c849f001898/resource.tar.gz#test.test_pg_catalog-pg_stat_database-default.txt-Results_/results.txt" + } + ], "test.test[pg_catalog-pg_tables-default.txt-Debug]": [ { "checksum": "85f7ad11d93163d11c5a12a8df3dec7f", @@ -2386,9 +2407,9 @@ ], "test.test[pg_catalog-pg_tables-default.txt-Results]": [ { - "checksum": "5fe341df627412345fb04a78265f2ecc", - "size": 3314, - "uri": "https://{canondata_backend}/1936273/e462bdc099ba4dbd155abc458ce19bf37225c228/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Results_/results.txt" + "checksum": "60d16f218ef9128bf09b7ca5f897cb80", + "size": 3558, + "uri": "https://{canondata_backend}/1937367/b877ae676042d7731cf65ea15a0d1c849f001898/resource.tar.gz#test.test_pg_catalog-pg_tables-default.txt-Results_/results.txt" } ], "test.test[produce-process_rows_sorted_desc_multi_out--Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part16/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part16/canondata/result.json index d2dfd25be4..c0469f319c 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part16/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part16/canondata/result.json @@ -1888,9 +1888,9 @@ ], "test.test[pg_catalog-columns-default.txt-Results]": [ { - "checksum": "86487c14aee284a3fc83c6565a84bd94", - "size": 16354, - "uri": "https://{canondata_backend}/1942671/557a92985829819fe7b7623859d0c502cd47d633/resource.tar.gz#test.test_pg_catalog-columns-default.txt-Results_/results.txt" + "checksum": "44ccd5b0b5860c824b1a30b80b7e0d76", + "size": 19432, + "uri": "https://{canondata_backend}/937458/a6f58137da0a8ca89c090ad32af1e24717f5f3fd/resource.tar.gz#test.test_pg_catalog-columns-default.txt-Results_/results.txt" } ], "test.test[pragma-config_exec--Debug]": [ diff --git a/ydb/library/yql/tests/sql/yt_native_file/part3/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part3/canondata/result.json index 2f50701cab..50af8dfec7 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part3/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part3/canondata/result.json @@ -1671,9 +1671,9 @@ ], "test.test[pg_catalog-tables-default.txt-Results]": [ { - "checksum": "0254359781104493233a2f1c10874943", - "size": 3317, - "uri": "https://{canondata_backend}/1931696/d280ec2ad056c3381e3f7b0de5e4312affb37367/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Results_/results.txt" + "checksum": "0802f73d2e138331a21a8e28e449f1ad", + "size": 3561, + "uri": "https://{canondata_backend}/1936842/7e2d3c571d9290f71a93312d3db026a5f63cb61d/resource.tar.gz#test.test_pg_catalog-tables-default.txt-Results_/results.txt" } ], "test.test[produce-process_row_and_columns-default.txt-Debug]": [ |