@@ -151,11 +151,11 @@ Y_UNIT_TEST_SUITE(KqpKv) {
151151 auto res = FormatResultSetYson (selectResult.GetResultSet ());
152152 CompareYson (R"(
153153 [
154- [1858343823u;0u; "abcde"];
155- [1921763476782200957u;1u; "abcde"];
156- [3843526951706058091u;2u; "abcde"];
157- [5765290426629915225u;3u; "abcde"];
158- [7687053901553772359u;4u; "abcde"]
154+ [[ 1858343823u];[0u];[ "abcde"] ];
155+ [[ 1921763476782200957u];[1u];[ "abcde"] ];
156+ [[ 3843526951706058091u];[2u];[ "abcde"] ];
157+ [[ 5765290426629915225u];[3u];[ "abcde"] ];
158+ [[ 7687053901553772359u];[4u];[ "abcde"] ]
159159 ]
160160 )" , res);
161161 }
@@ -262,11 +262,11 @@ Y_UNIT_TEST_SUITE(KqpKv) {
262262 UNIT_ASSERT_C (selectResult.IsSuccess (), selectResult.GetIssues ().ToString ());
263263 auto res = FormatResultSetYson (selectResult.GetResultSet ());
264264 CompareYson (R"( [
265- [10u;0u; "abcde"];
266- [11u;1u; "abcde"];
267- [12u;2u; "abcde"];
268- [13u;3u; "abcde"];
269- [14u;4u; "abcde"]
265+ [[ 10u];[0u];[ "abcde"] ];
266+ [[ 11u];[1u];[ "abcde"] ];
267+ [[ 12u];[2u];[ "abcde"] ];
268+ [[ 13u];[3u];[ "abcde"] ];
269+ [[ 14u];[4u];[ "abcde"] ]
270270 ])" , res);
271271 }
272272 {
@@ -363,7 +363,7 @@ Y_UNIT_TEST_SUITE(KqpKv) {
363363 UNIT_ASSERT_C (selectResult.IsSuccess (), selectResult.GetIssues ().ToString ());
364364
365365 auto res = FormatResultSetYson (selectResult.GetResultSet ());
366- CompareYson (Sprintf (" [[%du; %du]]" , valueToReturn_1, valueToReturn_2), res);
366+ CompareYson (Sprintf (" [[[ %du];[ %du] ]]" , valueToReturn_1, valueToReturn_2), res);
367367 }
368368
369369 TVector<::ReadRowsPgParam> readRowsPgParams
@@ -729,9 +729,9 @@ Y_UNIT_TEST_SUITE(KqpKv) {
729729 auto res = FormatResultSetYson (selectResult.GetResultSet ());
730730 CompareYson (R"(
731731 [
732- ["0.123456789"; "0.123456789"; "0.123456789"; "0.123456789";0u ];
733- ["1.123456789"; "1000.123456789"; "10.123456789"; "1000000.123456789";1u ];
734- ["2.123456789"; "2000.123456789"; "20.123456789"; "2000000.123456789";2u ]
732+ [[ "0.123456789"];[ "0.123456789"];[ "0.123456789"];[ "0.123456789"];[0u] ];
733+ [[ "1.123456789"];[ "1000.123456789"];[ "10.123456789"];[ "1000000.123456789"];[1u] ];
734+ [[ "2.123456789"];[ "2000.123456789"];[ "20.123456789"];[ "2000000.123456789"];[2u] ]
735735 ]
736736 )" , res);
737737 }
@@ -749,10 +749,64 @@ Y_UNIT_TEST_SUITE(KqpKv) {
749749 auto selectResult = db.ReadRows (" /Root/TestTable" , keys.Build ()).GetValueSync ();
750750 UNIT_ASSERT_C (selectResult.IsSuccess (), selectResult.GetIssues ().ToString ());
751751 auto res = FormatResultSetYson (selectResult.GetResultSet ());
752- CompareYson (R"( [["inf"; "inf"; "inf"; "inf"; 999999999u];])" , res);
752+ CompareYson (R"( [[[ "inf"];[ "inf"];[ "inf"];[ "inf"];[ 999999999u] ];])" , res);
753753 }
754754 }
755755
756+ Y_UNIT_TEST (ReadRows_Nulls) {
757+ auto settings = TKikimrSettings ()
758+ .SetWithSampleTables (false );
759+ auto kikimr = TKikimrRunner{settings};
760+ auto db = kikimr.GetTableClient ();
761+ auto session = db.CreateSession ().GetValueSync ().GetSession ();
762+
763+ auto schemeResult = session.ExecuteSchemeQuery (R"(
764+ CREATE TABLE TestTable (
765+ Key Uint64,
766+ Data Uint32,
767+ Value Utf8,
768+ PRIMARY KEY (Key)
769+ );
770+ )" ).GetValueSync ();
771+ UNIT_ASSERT_C (schemeResult.IsSuccess (), schemeResult.GetIssues ().ToString ());
772+
773+ NYdb::TValueBuilder rows;
774+ rows.BeginList ();
775+ for (size_t i = 0 ; i < 5 ; ++i) {
776+ rows.AddListItem ()
777+ .BeginStruct ()
778+ .AddMember (" Key" ).Uint64 (i * 1921763474923857134ull + 1858343823 )
779+ .EndStruct ();
780+ }
781+ rows.EndList ();
782+
783+ auto upsertResult = db.BulkUpsert (" /Root/TestTable" , rows.Build ()).GetValueSync ();
784+ UNIT_ASSERT_C (upsertResult.IsSuccess (), upsertResult.GetIssues ().ToString ());
785+
786+ NYdb::TValueBuilder keys;
787+ keys.BeginList ();
788+ for (size_t i = 0 ; i < 5 ; ++i) {
789+ keys.AddListItem ()
790+ .BeginStruct ()
791+ .AddMember (" Key" ).Uint64 (i * 1921763474923857134ull + 1858343823 )
792+ .EndStruct ();
793+ }
794+ keys.EndList ();
795+ auto selectResult = db.ReadRows (" /Root/TestTable" , keys.Build ()).GetValueSync ();
796+ Cerr << " IsSuccess(): " << selectResult.IsSuccess () << " GetStatus(): " << selectResult.GetStatus () << Endl;
797+ UNIT_ASSERT_C (selectResult.IsSuccess (), selectResult.GetIssues ().ToString ());
798+ auto res = FormatResultSetYson (selectResult.GetResultSet ());
799+ CompareYson (R"(
800+ [
801+ [[1858343823u];#;#];
802+ [[1921763476782200957u];#;#];
803+ [[3843526951706058091u];#;#];
804+ [[5765290426629915225u];#;#];
805+ [[7687053901553772359u];#;#]
806+ ]
807+ )" , TString{res});
808+ }
809+
756810
757811}
758812
0 commit comments