Skip to content

Commit 043a92d

Browse files
authored
Merge e567e99 into a78ceaf
2 parents a78ceaf + e567e99 commit 043a92d

File tree

6 files changed

+26
-15
lines changed

6 files changed

+26
-15
lines changed

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

+10-5
Original file line numberDiff line numberDiff line change
@@ -2551,22 +2551,27 @@ TMaybe<TIssue> LookupCommonType(const TVector<ui32>& typeIds, const std::functio
25512551

25522552
const auto& catalog = TCatalog::Instance();
25532553

2554-
const TTypeDesc* commonType = &LookupType(typeIds[0]);
2555-
char commonCategory = commonType->Category;
2556-
size_t unknownsCnt = (commonType->TypeId == UnknownOid) ? 1 : 0;
2554+
size_t unknownsCnt = (typeIds[0] == UnknownOid || typeIds[0] == InvalidOid) ? 1 : 0;
25572555
castsNeeded = (unknownsCnt != 0);
2556+
const TTypeDesc* commonType = nullptr;
2557+
char commonCategory = 0;
2558+
if (typeIds[0] != InvalidOid) {
2559+
commonType = &LookupType(typeIds[0]);
2560+
commonCategory = commonType->Category;
2561+
}
2562+
25582563
size_t i = 1;
25592564
for (auto typeId = typeIds.cbegin() + 1; typeId != typeIds.cend(); ++typeId, ++i) {
25602565
if (*typeId == UnknownOid || *typeId == InvalidOid) {
25612566
++unknownsCnt;
25622567
castsNeeded = true;
25632568
continue;
25642569
}
2565-
if (Y_LIKELY(*typeId == commonType->TypeId)) {
2570+
if (commonType && *typeId == commonType->TypeId) {
25662571
continue;
25672572
}
25682573
const TTypeDesc& otherType = LookupType(*typeId);
2569-
if (commonType->TypeId == UnknownOid) {
2574+
if (!commonType || commonType->TypeId == UnknownOid) {
25702575
commonType = &otherType;
25712576
commonCategory = otherType.Category;
25722577
continue;

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,10 @@ class TPgTableContent : public TMutableComputationNode<TPgTableContent> {
298298
{"oid", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(ObjectIdGetDatum(desc.TypeId)); }},
299299
{"typname", [](const NPg::TTypeDesc& desc) { return PointerDatumToPod((Datum)(MakeFixedString(desc.Name, NAMEDATALEN))); }},
300300
{"typinput", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(ObjectIdGetDatum(desc.InFuncId)); }},
301-
{"typnamespace", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(ObjectIdGetDatum(1)); }},
301+
{"typnamespace", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(ObjectIdGetDatum(PG_CATALOG_NAMESPACE)); }},
302302
{"typtype", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(CharGetDatum(desc.TypType)); }},
303+
{"typrelid", [](const NPg::TTypeDesc&) { return ScalarDatumToPod(ObjectIdGetDatum(0)); }},
304+
{"typelem", [](const NPg::TTypeDesc& desc) { return ScalarDatumToPod(ObjectIdGetDatum(desc.ElementTypeId)); }},
303305
};
304306

305307
ApplyFillers(AllPgTypeFillers, Y_ARRAY_SIZE(AllPgTypeFillers), PgTypeFillers_);

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

+4
Original file line numberDiff line numberDiff line change
@@ -3489,6 +3489,10 @@ class TConverter : public IPGParseEvents {
34893489
}
34903490

34913491
auto name = names.back();
3492+
if (name == "shobj_description" || name == "obj_description") {
3493+
AddWarning(TIssuesIds::PG_COMPAT, name + " function forced to NULL");
3494+
return L(A("Null"));
3495+
}
34923496

34933497
const bool isAggregateFunc = NYql::NPg::HasAggregation(name, NYql::NPg::EAggKind::Normal);
34943498
const bool hasReturnSet = NYql::NPg::HasReturnSetProc(name);

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -2077,9 +2077,9 @@
20772077
],
20782078
"test.test[pg_catalog-pg_set_config_commit-default.txt-Results]": [
20792079
{
2080-
"checksum": "c5e95bb55bee121d984dcc8030c0d078",
2081-
"size": 81034,
2082-
"uri": "https://{canondata_backend}/1889210/12eb3d6135cc7c142c46c4cbdc538bcd42612711/resource.tar.gz#test.test_pg_catalog-pg_set_config_commit-default.txt-Results_/results.txt"
2080+
"checksum": "ab42d523f46bbb78b5e444f284263844",
2081+
"size": 81420,
2082+
"uri": "https://{canondata_backend}/1937027/6d104b7ff295cd850e83985304b58019e03b127c/resource.tar.gz#test.test_pg_catalog-pg_set_config_commit-default.txt-Results_/results.txt"
20832083
}
20842084
],
20852085
"test.test[pragma-yson_auto_convert--Debug]": [

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -2141,9 +2141,9 @@
21412141
],
21422142
"test.test[pg_catalog-pg_type_syntax_pg-default.txt-Results]": [
21432143
{
2144-
"checksum": "8ddfa3db17f5dcc174f50a8a48e991b9",
2145-
"size": 40518,
2146-
"uri": "https://{canondata_backend}/1942671/21ee0e4e2b05b4a7ec7dc41bfc2f5222bf683757/resource.tar.gz#test.test_pg_catalog-pg_type_syntax_pg-default.txt-Results_/results.txt"
2144+
"checksum": "b0ed9f922a8c9c665672975ad872eed3",
2145+
"size": 40711,
2146+
"uri": "https://{canondata_backend}/1937027/e4c43dd0a3435b6e080492799b1e73594f48a97d/resource.tar.gz#test.test_pg_catalog-pg_type_syntax_pg-default.txt-Results_/results.txt"
21472147
}
21482148
],
21492149
"test.test[pg_catalog-pg_type_syntax_yql-default.txt-Debug]": [

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -1820,9 +1820,9 @@
18201820
],
18211821
"test.test[pg_catalog-pg_set_config-default.txt-Results]": [
18221822
{
1823-
"checksum": "b536ee2489e572348ea35bda8c0ec0d4",
1824-
"size": 81034,
1825-
"uri": "https://{canondata_backend}/1031349/7b09580c71768591c522e0563c532a885c6a950b/resource.tar.gz#test.test_pg_catalog-pg_set_config-default.txt-Results_/results.txt"
1823+
"checksum": "34d9e7ccdc8bba742382ff43564d2a3f",
1824+
"size": 81420,
1825+
"uri": "https://{canondata_backend}/1923547/5c44f09f92b4654efde265edfb30dedf7811c9ed/resource.tar.gz#test.test_pg_catalog-pg_set_config-default.txt-Results_/results.txt"
18261826
}
18271827
],
18281828
"test.test[produce-reduce_all-default.txt-Debug]": [

0 commit comments

Comments
 (0)