Skip to content

Commit 9e084cd

Browse files
authored
Merge 2a5a8b2 into ce7eba6
2 parents ce7eba6 + 2a5a8b2 commit 9e084cd

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,51 @@ using namespace NYdb;
99
using namespace NYdb::NTable;
1010

1111
Y_UNIT_TEST_SUITE(KqpSnapshotRead) {
12+
13+
Y_UNIT_TEST_TWIN(TestReadOnly, withSink) {
14+
NKikimrConfig::TAppConfig appConfig;
15+
appConfig.MutableTableServiceConfig()->SetEnableOltpSink(withSink);
16+
auto settings = TKikimrSettings()
17+
.SetKeepSnapshotTimeout(TDuration::Seconds(1))
18+
.SetAppConfig(appConfig);
19+
20+
TKikimrRunner kikimr(settings);
21+
22+
auto db = kikimr.GetTableClient();
23+
auto session1 = db.CreateSession().GetValueSync().GetSession();
24+
auto session2 = db.CreateSession().GetValueSync().GetSession();
25+
26+
auto result = session1.ExecuteDataQuery(Q_(R"(
27+
SELECT * FROM `/Root/EightShard` WHERE Key = 101u OR Key = 801u ORDER BY Key;
28+
)"), TTxControl::BeginTx(TTxSettings::SerializableRW())).ExtractValueSync();
29+
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
30+
CompareYson(R"([
31+
[[1];[101u];["Value1"]];
32+
[[2];[801u];["Value1"]]
33+
])", FormatResultSetYson(result.GetResultSet(0)));
34+
35+
auto tx = result.GetTransaction();
36+
37+
result = session2.ExecuteDataQuery(Q_(R"(
38+
UPSERT INTO `/Root/EightShard` (Key, Text) VALUES (101u, "Changed"), (801u, "Changed");
39+
UPSERT INTO `/Root/TwoShard` (Key, Value1, Value2) VALUES (1u, "Changed", 1), (4000000001u, "Changed", 2);
40+
)"), TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync();
41+
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
42+
43+
result = session1.ExecuteDataQuery(Q_(R"(
44+
SELECT * FROM `/Root/TwoShard` WHERE Key = 1u OR Key = 4000000001u ORDER BY Key;
45+
)"), TTxControl::Tx(*tx)).ExtractValueSync();
46+
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
47+
CompareYson(R"([
48+
[[1u];["One"];[-1]];
49+
[[4000000001u];["BigOne"];[-1]]
50+
])", FormatResultSetYson(result.GetResultSet(0)));
51+
52+
auto commitResult = tx->Commit().GetValueSync();
53+
UNIT_ASSERT_VALUES_EQUAL_C(commitResult.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
54+
}
55+
56+
1257
Y_UNIT_TEST_TWIN(TestSnapshotExpiration, withSink) {
1358
NKikimrConfig::TAppConfig appConfig;
1459
appConfig.MutableTableServiceConfig()->SetEnableOltpSink(withSink);

0 commit comments

Comments
 (0)