diff options
author | aneporada <aneporada@yandex-team.ru> | 2022-03-20 22:27:41 +0300 |
---|---|---|
committer | aneporada <aneporada@yandex-team.ru> | 2022-03-20 22:27:41 +0300 |
commit | d8263c1ee2e19e14f2bc739740afbe9fd7303435 (patch) | |
tree | 4c0e504ddae05b045c188d94f996d5e4de520eb2 | |
parent | f2fb45ac1bf02ff7d5a1414a493b5d7040dd3cef (diff) | |
download | ydb-d8263c1ee2e19e14f2bc739740afbe9fd7303435.tar.gz |
[YQL-14487] Reorder arguments of PgConst: PgConst(value, type [, type_modifiers])
ref:463cbcc254be2677d633079fa4cfd48e24e84bc1
-rw-r--r-- | ydb/library/yql/core/type_ann/type_ann_core.cpp | 14 | ||||
-rw-r--r-- | ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp | 2 | ||||
-rw-r--r-- | ydb/library/yql/sql/pg/pg_sql.cpp | 8 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/builtin.cpp | 10 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/context.cpp | 4 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/node.cpp | 4 |
6 files changed, 21 insertions, 21 deletions
diff --git a/ydb/library/yql/core/type_ann/type_ann_core.cpp b/ydb/library/yql/core/type_ann/type_ann_core.cpp index 32ffc0fe9e6..9a55fb46fab 100644 --- a/ydb/library/yql/core/type_ann/type_ann_core.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp @@ -9628,16 +9628,16 @@ template <NKikimr::NUdf::EDataSlot DataSlot> return IGraphTransformer::TStatus::Error; } - if (!EnsureTypePg(input->Head(), ctx.Expr)) { + if (!EnsureTypePg(input->Tail(), ctx.Expr)) { return IGraphTransformer::TStatus::Error; } // TODO: validate value - if (!EnsureAtom(*input->Child(1), ctx.Expr)) { + if (!EnsureAtom(input->Head(), ctx.Expr)) { return IGraphTransformer::TStatus::Error; } - input->SetTypeAnn(input->Head().GetTypeAnn()->Cast<TTypeExprType>()->GetType()); + input->SetTypeAnn(input->Tail().GetTypeAnn()->Cast<TTypeExprType>()->GetType()); return IGraphTransformer::TStatus::Ok; } @@ -9746,10 +9746,10 @@ template <NKikimr::NUdf::EDataSlot DataSlot> initValue = ctx.Expr.Builder(input->Pos()) .Callable("PgCast") .Callable(0, "PgConst") - .Callable(0, "PgType") + .Atom(0, aggDesc.InitValue) + .Callable(1, "PgType") .Atom(0, "text") .Seal() - .Atom(1, aggDesc.InitValue) .Seal() .Callable(1, "PgType") .Atom(0, NPg::LookupType(aggDesc.TransTypeId).Name) @@ -9850,10 +9850,10 @@ template <NKikimr::NUdf::EDataSlot DataSlot> auto zero = ctx.Expr.Builder(input->Pos()) .Callable("PgConst") - .Callable(0, "PgType") + .Atom(0, "0") + .Callable(1, "PgType") .Atom(0, "int8") .Seal() - .Atom(1, "0") .Seal() .Build(); diff --git a/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp b/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp index 2d64335acd0..01cedd1cdb1 100644 --- a/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp +++ b/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp @@ -2239,7 +2239,7 @@ TMkqlCommonCallableCompiler::TShared::TShared() { AddCallable("PgConst", [](const TExprNode& node, TMkqlBuildContext& ctx) { auto type = AS_TYPE(TPgType, BuildType(node, *node.GetTypeAnn(), ctx.ProgramBuilder)); - return ctx.ProgramBuilder.PgConst(type, node.Tail().Content()); + return ctx.ProgramBuilder.PgConst(type, node.Head().Content()); }); AddCallable("PgResolvedCall", [](const TExprNode& node, TMkqlBuildContext& ctx) { diff --git a/ydb/library/yql/sql/pg/pg_sql.cpp b/ydb/library/yql/sql/pg/pg_sql.cpp index d4e3dc0c4a1..ee0e33a0ec8 100644 --- a/ydb/library/yql/sql/pg/pg_sql.cpp +++ b/ydb/library/yql/sql/pg/pg_sql.cpp @@ -909,17 +909,17 @@ public: switch (NodeTag(val)) { case T_Integer: { return Settings.PgTypes ? - L(A("PgConst"), L(A("PgType"), QA("int4")), QA(ToString(IntVal(val)))) : + L(A("PgConst"), QA(ToString(IntVal(val))), L(A("PgType"), QA("int4"))) : L(A("Just"), L(A("Int32"), QA(ToString(IntVal(val))))); } case T_Float: { return Settings.PgTypes ? - L(A("PgConst"), L(A("PgType"), QA("float8")), QA(ToString(StrFloatVal(val)))) : + L(A("PgConst"), QA(ToString(StrFloatVal(val))), L(A("PgType"), QA("float8"))) : L(A("Just"), L(A("Double"), QA(ToString(StrFloatVal(val))))); } case T_String: { return Settings.PgTypes ? - L(A("PgConst"), L(A("PgType"), QA("text")), QA(ToString(StrVal(val)))) : + L(A("PgConst"), QA(ToString(StrVal(val))), L(A("PgType"), QA("text"))) : L(A("Just"), L(A("Utf8"), QA(ToString(StrVal(val))))); } case T_Null: { @@ -1102,7 +1102,7 @@ public: if (NodeTag(CAST_NODE(A_Const, arg)->val) == T_String && targetType == "bool") { auto str = StrVal(CAST_NODE(A_Const, arg)->val); if (Settings.PgTypes) { - return L(A("PgConst"), L(A("PgType"), QA("bool")), QA(str)); + return L(A("PgConst"), QA(str), L(A("PgType"), QA("bool"))); } if (!StrCompare(str, "t")) { diff --git a/ydb/library/yql/sql/v1/builtin.cpp b/ydb/library/yql/sql/v1/builtin.cpp index 349af199701..915a8301e16 100644 --- a/ydb/library/yql/sql/v1/builtin.cpp +++ b/ydb/library/yql/sql/v1/builtin.cpp @@ -615,15 +615,15 @@ public: return false; } - if (!Args[1]->Init(ctx, src)) { + if (!Args[0]->Init(ctx, src)) { return false; } - if (Args[1]->IsLiteral()) { - Args[1] = BuildQuotedAtom(Args[1]->GetPos(), Args[1]->GetLiteralValue()); + if (Args[0]->IsLiteral()) { + Args[0] = BuildQuotedAtom(Args[0]->GetPos(), Args[0]->GetLiteralValue()); } else { - auto value = MakeAtomFromExpression(ctx, Args[1]).Build(); - Args[1] = value; + auto value = MakeAtomFromExpression(ctx, Args[0]).Build(); + Args[0] = value; } return TCallNode::DoInit(ctx, src); diff --git a/ydb/library/yql/sql/v1/context.cpp b/ydb/library/yql/sql/v1/context.cpp index 85c5001638c..43e4cce0331 100644 --- a/ydb/library/yql/sql/v1/context.cpp +++ b/ydb/library/yql/sql/v1/context.cpp @@ -430,8 +430,8 @@ TMaybe<EColumnRefState> GetFunctionArgColumnStatus(TContext& ctx, const TString& { {"formattype", 0}, EColumnRefState::Deny }, { {"instanceof", 0}, EColumnRefState::Deny }, { {"pgtype", 0}, EColumnRefState::AsPgType }, - { {"pgconst", 0}, EColumnRefState::AsPgType }, - { {"pgconst", 1}, EColumnRefState::Deny }, + { {"pgconst", 0}, EColumnRefState::Deny }, + { {"pgconst", 1}, EColumnRefState::AsPgType }, { {"pgcast", 1}, EColumnRefState::AsPgType }, { {"unpickle", 0}, EColumnRefState::Deny }, diff --git a/ydb/library/yql/sql/v1/node.cpp b/ydb/library/yql/sql/v1/node.cpp index 9b089d2eaaf..3fc66734678 100644 --- a/ydb/library/yql/sql/v1/node.cpp +++ b/ydb/library/yql/sql/v1/node.cpp @@ -2361,7 +2361,7 @@ TLiteralNode::TLiteralNode(TPosition pos, const TString& type, const TString& va , Value(value) { if (Type.StartsWith("Pg")) { - Add("PgConst", Y("PgType", Q(to_lower(Type.substr(2)))), BuildQuotedAtom(Pos, Value)); + Add("PgConst", BuildQuotedAtom(Pos, Value), Y("PgType", Q(to_lower(Type.substr(2))))); } else { Add(Type, BuildQuotedAtom(Pos, Value)); } @@ -2385,7 +2385,7 @@ TLiteralNode::TLiteralNode(TPosition pos, const TString& value, ui32 nodeFlags, , Value(value) { if (Type.StartsWith("Pg")) { - Add("PgConst", Y("PgType", Q(to_lower(Type.substr(2)))), BuildQuotedAtom(Pos, Value, nodeFlags)); + Add("PgConst", BuildQuotedAtom(Pos, Value, nodeFlags), Y("PgType", Q(to_lower(Type.substr(2))))); } else { Add(Type, BuildQuotedAtom(pos, Value, nodeFlags)); } |