diff options
author | Andrey Neporada <neporada@gmail.com> | 2022-06-17 01:55:39 +0300 |
---|---|---|
committer | Andrey Neporada <neporada@gmail.com> | 2022-06-17 01:55:39 +0300 |
commit | 96f5c2e1b598247a3a9f11198acfe7f3081e4f11 (patch) | |
tree | 0313399335e1fe1420e90fa6247201f80db4a371 | |
parent | f9e17d35f75ad45a460f8df61b18b502449991a5 (diff) | |
download | ydb-96f5c2e1b598247a3a9f11198acfe7f3081e4f11.tar.gz |
[YQL-15012] Fix pg literals with type mods
ref:9b39ed3338073481b20e9a3b7b0c3fb33ea6e8e3
-rw-r--r-- | ydb/library/yql/sql/v1/builtin.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ydb/library/yql/sql/v1/builtin.cpp b/ydb/library/yql/sql/v1/builtin.cpp index 78139688c7d..9099a38c28f 100644 --- a/ydb/library/yql/sql/v1/builtin.cpp +++ b/ydb/library/yql/sql/v1/builtin.cpp @@ -3294,8 +3294,12 @@ TNodePtr BuildBuiltinFunc(TContext& ctx, TPosition pos, TString name, const TVec } if (type.StartsWith("pg")) { - TVector<TNodePtr> pgConstArgs = args; - pgConstArgs.push_back(new TCallNodeImpl(pos, "PgType", { BuildQuotedAtom(pos, type.substr(2)) })); + TVector<TNodePtr> pgConstArgs; + if (!args.empty()) { + pgConstArgs.push_back(args.front()); + pgConstArgs.push_back(new TCallNodeImpl(pos, "PgType", { BuildQuotedAtom(pos, type.substr(2), TNodeFlags::Default) })); + pgConstArgs.insert(pgConstArgs.end(), args.begin() + 1, args.end()); + } return new TYqlPgConst(pos, pgConstArgs); } else if (type == "Void" || type == "EmptyList" || type == "EmptyDict") { return new TCallNodeImpl(pos, type, 0, 0, args); |