aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <aneporada@yandex-team.ru>2022-03-20 22:27:41 +0300
committeraneporada <aneporada@yandex-team.ru>2022-03-20 22:27:41 +0300
commitd8263c1ee2e19e14f2bc739740afbe9fd7303435 (patch)
tree4c0e504ddae05b045c188d94f996d5e4de520eb2
parentf2fb45ac1bf02ff7d5a1414a493b5d7040dd3cef (diff)
downloadydb-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.cpp14
-rw-r--r--ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp2
-rw-r--r--ydb/library/yql/sql/pg/pg_sql.cpp8
-rw-r--r--ydb/library/yql/sql/v1/builtin.cpp10
-rw-r--r--ydb/library/yql/sql/v1/context.cpp4
-rw-r--r--ydb/library/yql/sql/v1/node.cpp4
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));
}