@@ -18,10 +18,12 @@ Y_UNIT_TEST_SUITE(KqpOlapSparsed) {
18
18
const TKikimrSettings Settings = TKikimrSettings().SetWithSampleTables(false );
19
19
TKikimrRunner Kikimr;
20
20
NKikimr::NYDBTest::TControllers::TGuard<NKikimr::NYDBTest::NColumnShard::TController> CSController;
21
+ const TString StoreName;
21
22
public:
22
- TSparsedDataTest ()
23
+ TSparsedDataTest (const char * storeName )
23
24
: Kikimr(Settings)
24
25
, CSController(NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard<NKikimr::NYDBTest::NColumnShard::TController>())
26
+ , StoreName(storeName)
25
27
{
26
28
27
29
}
@@ -30,8 +32,7 @@ Y_UNIT_TEST_SUITE(KqpOlapSparsed) {
30
32
auto selectQuery = TString (R"(
31
33
SELECT
32
34
count(*) as count,
33
- FROM `/Root/olapStore/olapTable`
34
- )" );
35
+ FROM `/Root/)" ) + (StoreName.empty () ? " " : StoreName + " /" ) + " olapTable`" ;
35
36
36
37
auto tableClient = Kikimr.GetTableClient ();
37
38
auto rows = ExecuteScanQuery (tableClient, selectQuery);
@@ -42,17 +43,17 @@ Y_UNIT_TEST_SUITE(KqpOlapSparsed) {
42
43
auto selectQuery = TString (R"(
43
44
SELECT
44
45
count(*) as count,
45
- FROM `/Root/olapStore/ olapTable`
46
+ FROM `/Root/)" ) + (StoreName. empty () ? " " : StoreName + " / " ) + R"( olapTable`
46
47
WHERE field == 'abcde'
47
- )" ) ;
48
+ )" ;
48
49
49
50
auto tableClient = Kikimr.GetTableClient ();
50
51
auto rows = ExecuteScanQuery (tableClient, selectQuery);
51
52
return GetUint64 (rows[0 ].at (" count" ));
52
53
}
53
54
54
55
void FillCircle (const double shiftKff, const ui32 countExpectation) {
55
- TTypedLocalHelper helper (" Utf8" , Kikimr);
56
+ TTypedLocalHelper helper (" Utf8" , Kikimr, " olapTable " , StoreName );
56
57
const double frq = 0.9 ;
57
58
{
58
59
NArrow::NConstruction::TStringPoolFiller sPool (1000 , 52 , " abcde" , frq);
@@ -98,23 +99,52 @@ Y_UNIT_TEST_SUITE(KqpOlapSparsed) {
98
99
CSController->SetOverridePeriodicWakeupActivationPeriod (TDuration::MilliSeconds (100 ));
99
100
100
101
Tests::NCommon::TLoggerInit (Kikimr).Initialize ();
101
- TTypedLocalHelper helper (" Utf8" , Kikimr);
102
- helper.CreateTestOlapTable ();
102
+ TTypedLocalHelper helper (" Utf8" , Kikimr, " olapTable" , StoreName);
103
+ if (!StoreName.empty ()) {
104
+ helper.CreateTestOlapTable ();
105
+ } else {
106
+ auto tableClient = Kikimr.GetTableClient ();
107
+ auto session = tableClient.CreateSession ().GetValueSync ().GetSession ();
108
+
109
+ auto query = TStringBuilder () << R"(
110
+ --!syntax_v1
111
+ CREATE TABLE `/Root/olapTable`
112
+ (
113
+ pk_int int64 NOT NULL,
114
+ field )" << " Utf8" << R"( ,
115
+ ts TimeStamp,
116
+ PRIMARY KEY (pk_int)
117
+ )
118
+ PARTITION BY HASH(pk_int)
119
+ WITH (
120
+ STORE = COLUMN
121
+ ))" ;
122
+ auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
123
+ UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), NYdb::EStatus::SUCCESS, result.GetIssues ().ToString ());
124
+ }
125
+
126
+ TString type = StoreName.empty () ? " TABLE" : " TABLESTORE" ;
127
+ TString name = StoreName.empty () ? " olapTable" : " olapStore" ;
103
128
104
129
FillCircle (0 , 10000 );
105
- helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`SPARSED`, `DEFAULT_VALUE`=`abcde`);" );
130
+ helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/" + name + " ` (TYPE " + type + " ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`SPARSED`, `DEFAULT_VALUE`=`abcde`);" );
106
131
FillCircle (0.1 , 11000 );
107
- helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`PLAIN`);" );
132
+ helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/" + name + " ` (TYPE " + type + " ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`PLAIN`);" );
108
133
FillCircle (0.2 , 12000 );
109
- helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`SPARSED`);" );
134
+ helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/" + name + " ` (TYPE " + type + " ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`SPARSED`);" );
110
135
FillCircle (0.3 , 13000 );
111
- helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`PLAIN`);" );
136
+ helper.ExecuteSchemeQuery (" ALTER OBJECT `/Root/" + name + " ` (TYPE " + type + " ) SET (ACTION=ALTER_COLUMN, NAME=field, `DATA_ACCESSOR_CONSTRUCTOR.CLASS_NAME`=`PLAIN`);" );
112
137
FillCircle (0.4 , 14000 );
113
138
}
114
139
};
115
140
116
141
Y_UNIT_TEST (Switching) {
117
- TSparsedDataTest test;
142
+ TSparsedDataTest test (" olapStore" );
143
+ test.Execute ();
144
+ }
145
+
146
+ Y_UNIT_TEST (SwitchingStandalone) {
147
+ TSparsedDataTest test (" " );
118
148
test.Execute ();
119
149
}
120
150
}
0 commit comments