Skip to content

Commit 9173720

Browse files
committed
fix columns order
1 parent 87e2787 commit 9173720

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

ydb/core/kqp/provider/yql_kikimr_opt_build.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,9 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
445445
.Update(node)
446446
.Columns(write.ReturningColumns())
447447
.Build()
448-
.Settings().Build()
448+
.Settings()
449+
.Add().Name().Value("columns").Build().Value(write.ReturningColumns()).Build()
450+
.Build()
449451
.Done());
450452
}
451453

@@ -491,7 +493,9 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
491493
.Update(node)
492494
.Columns(update.ReturningColumns())
493495
.Build()
494-
.Settings().Build()
496+
.Settings()
497+
.Add().Name().Value("columns").Build().Value(update.ReturningColumns()).Build()
498+
.Build()
495499
.Done());
496500
}
497501

@@ -524,7 +528,9 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
524528
.Update(node)
525529
.Columns(del.ReturningColumns())
526530
.Build()
527-
.Settings().Build()
531+
.Settings()
532+
.Add().Name().Value("columns").Build().Value(del.ReturningColumns()).Build()
533+
.Build()
528534
.Done());
529535
}
530536

ydb/core/kqp/ut/opt/kqp_returning_ut.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,33 @@ Y_UNIT_TEST(ReturningSerial) {
134134
}
135135
}
136136

137+
Y_UNIT_TEST(ReturningColumnsOrder) {
138+
auto kikimr = DefaultKikimrRunner();
139+
140+
auto client = kikimr.GetTableClient();
141+
auto session = client.CreateSession().GetValueSync().GetSession();
142+
143+
const auto queryCreate = Q_(R"(
144+
CREATE TABLE test1 (id Int32, v Text, PRIMARY KEY(id));
145+
)");
146+
147+
auto resultCreate = session.ExecuteSchemeQuery(queryCreate).GetValueSync();
148+
UNIT_ASSERT_C(resultCreate.IsSuccess(), resultCreate.GetIssues().ToString());
149+
150+
{
151+
const auto query = Q_(R"(
152+
UPSERT INTO test1 (id, v) VALUES (1, '321') RETURNING id, v;
153+
REPLACE INTO test1 (id, v) VALUES (1, '111') RETURNING v, id;
154+
)");
155+
156+
auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).GetValueSync();
157+
UNIT_ASSERT(result.IsSuccess());
158+
CompareYson(R"([[[1];["321"]]])", FormatResultSetYson(result.GetResultSet(0)));
159+
CompareYson(R"([[["111"];[1]]])", FormatResultSetYson(result.GetResultSet(1)));
160+
}
161+
162+
}
163+
137164
Y_UNIT_TEST(ReturningTypes) {
138165
auto kikimr = DefaultKikimrRunner();
139166

0 commit comments

Comments
 (0)