@@ -1787,7 +1787,13 @@ R"___(<main>: Error: Transaction not found: , code: 2015
1787
1787
UseSnapshot,
1788
1788
};
1789
1789
1790
- void TestReadTableMultiShard (EReadTableMultiShardMode mode, bool wholeTable) {
1790
+ enum class EReadTableRangeMode {
1791
+ OneRow,
1792
+ TwoRows,
1793
+ WholeTable
1794
+ };
1795
+
1796
+ void TestReadTableMultiShard (EReadTableMultiShardMode mode, EReadTableRangeMode rangeMode) {
1791
1797
TKikimrWithGrpcAndRootSchema server;
1792
1798
ui16 grpc = server.GetPort ();
1793
1799
@@ -1833,15 +1839,23 @@ R"___(<main>: Error: Transaction not found: , code: 2015
1833
1839
.EndTuple ();
1834
1840
1835
1841
TValueBuilder valueTo;
1836
- valueTo.BeginTuple ()
1837
- .AddElement ()
1838
- .OptionalUint32 (1000000000u )
1839
- .AddElement ()
1840
- .OptionalUint64 (2000000000u )
1841
- .EndTuple ();
1842
+
1843
+ if (rangeMode == EReadTableRangeMode::OneRow) {
1844
+ valueTo.BeginTuple ()
1845
+ .AddElement ()
1846
+ .OptionalUint32 (1u )
1847
+ .EndTuple ();
1848
+ } else {
1849
+ valueTo.BeginTuple ()
1850
+ .AddElement ()
1851
+ .OptionalUint32 (1000000000u )
1852
+ .AddElement ()
1853
+ .OptionalUint64 (2000000000u )
1854
+ .EndTuple ();
1855
+ }
1842
1856
1843
1857
TReadTableSettings readTableSettings =
1844
- wholeTable ? TReadTableSettings ().Ordered () :
1858
+ rangeMode == EReadTableRangeMode::WholeTable ? TReadTableSettings ().Ordered () :
1845
1859
TReadTableSettings ()
1846
1860
.Ordered ()
1847
1861
.From (TKeyBound::Inclusive (valueFrom.Build ()))
@@ -1865,7 +1879,7 @@ R"___(<main>: Error: Transaction not found: , code: 2015
1865
1879
TVector<TRows> expected;
1866
1880
expected.push_back ({1u , 1u , " One" });
1867
1881
expected.push_back ({1000000000u , 2u , " Two" });
1868
- if (wholeTable ) {
1882
+ if (rangeMode == EReadTableRangeMode::WholeTable ) {
1869
1883
expected.push_back ({4294967295u , 4u , " Last" });
1870
1884
}
1871
1885
int row = 0 ;
@@ -1895,26 +1909,39 @@ R"___(<main>: Error: Transaction not found: , code: 2015
1895
1909
UNIT_ASSERT_VALUES_EQUAL (val, exp .Value );
1896
1910
}
1897
1911
}
1898
- UNIT_ASSERT_VALUES_EQUAL (row, wholeTable ? 3 : 2 );
1912
+ switch (rangeMode) {
1913
+ case EReadTableRangeMode::OneRow:
1914
+ UNIT_ASSERT_VALUES_EQUAL (row, 1 );
1915
+ break ;
1916
+ case EReadTableRangeMode::TwoRows:
1917
+ UNIT_ASSERT_VALUES_EQUAL (row, 2 );
1918
+ break ;
1919
+ case EReadTableRangeMode::WholeTable:
1920
+ UNIT_ASSERT_VALUES_EQUAL (row, 3 );
1921
+ }
1899
1922
1900
1923
// Attempt to call ReadNext on finished iterator causes ContractViolation
1901
1924
UNIT_ASSERT_EXCEPTION (it.ReadNext ().GetValueSync ().EOS (), NYdb::TContractViolation);
1902
1925
}
1903
1926
1904
1927
Y_UNIT_TEST (TestReadTableMultiShard) {
1905
- TestReadTableMultiShard (EReadTableMultiShardMode::Normal, false );
1928
+ TestReadTableMultiShard (EReadTableMultiShardMode::Normal, EReadTableRangeMode::TwoRows );
1906
1929
}
1907
1930
1908
1931
Y_UNIT_TEST (TestReadTableMultiShardUseSnapshot) {
1909
- TestReadTableMultiShard (EReadTableMultiShardMode::UseSnapshot, false );
1932
+ TestReadTableMultiShard (EReadTableMultiShardMode::UseSnapshot, EReadTableRangeMode::TwoRows );
1910
1933
}
1911
1934
1912
1935
Y_UNIT_TEST (TestReadTableMultiShardWholeTable) {
1913
- TestReadTableMultiShard (EReadTableMultiShardMode::Normal, true );
1936
+ TestReadTableMultiShard (EReadTableMultiShardMode::Normal, EReadTableRangeMode::WholeTable );
1914
1937
}
1915
1938
1916
1939
Y_UNIT_TEST (TestReadTableMultiShardWholeTableUseSnapshot) {
1917
- TestReadTableMultiShard (EReadTableMultiShardMode::UseSnapshot, true );
1940
+ TestReadTableMultiShard (EReadTableMultiShardMode::UseSnapshot, EReadTableRangeMode::WholeTable);
1941
+ }
1942
+
1943
+ Y_UNIT_TEST (TestReadTableMultiShardOneRow) {
1944
+ TestReadTableMultiShard (EReadTableMultiShardMode::Normal, EReadTableRangeMode::OneRow);
1918
1945
}
1919
1946
1920
1947
void TestReadTableMultiShardWithDescribe (bool rowLimit) {
0 commit comments