Skip to content

Commit fc93096

Browse files
add describe indices (#10032)
1 parent f47bbfa commit fc93096

File tree

4 files changed

+65
-14
lines changed

4 files changed

+65
-14
lines changed

ydb/core/kqp/ut/olap/helpers/local.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ class TLocalHelper: public Tests::NCS::THelper {
3636
CreateOlapTablesWithStore(tableNames, storeName, storeShardsCount, tableShardsCount);
3737
}
3838

39+
void CreateTestOlapTableWithoutStore(TString tableName = "olapTable", ui32 tableShardsCount = 3) {
40+
CreateOlapTables({tableName}, tableShardsCount);
41+
}
42+
3943
using TBase::TBase;
4044

4145
TLocalHelper(TKikimrRunner& runner)
@@ -44,4 +48,4 @@ class TLocalHelper: public Tests::NCS::THelper {
4448
}
4549
};
4650

47-
}
51+
}

ydb/core/kqp/ut/olap/indexes_ut.cpp

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,15 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
117117
csController->SetOverrideLagForCompactionBeforeTierings(TDuration::Seconds(1));
118118
csController->SetOverrideReduceMemoryIntervalLimit(1LLU << 30);
119119

120-
TLocalHelper(kikimr).CreateTestOlapTable();
120+
TLocalHelper(kikimr).CreateTestOlapTableWithoutStore();
121121
auto tableClient = kikimr.GetTableClient();
122+
auto& client = kikimr.GetTestClient();
122123

123124
Tests::NCommon::TLoggerInit(kikimr).SetComponents({NKikimrServices::TX_COLUMNSHARD}, "CS").SetPriority(NActors::NLog::PRI_DEBUG).Initialize();
124125

125126
{
126127
auto alterQuery = TStringBuilder() <<
127-
R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=cms_ts, TYPE=COUNT_MIN_SKETCH,
128+
R"(ALTER OBJECT `/Root/olapTable` (TYPE TABLE) SET (ACTION=UPSERT_INDEX, NAME=cms_ts, TYPE=COUNT_MIN_SKETCH,
128129
FEATURES=`{"column_names" : ['timestamp']}`);
129130
)";
130131
auto session = tableClient.CreateSession().GetValueSync().GetSession();
@@ -134,7 +135,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
134135

135136
{
136137
auto alterQuery = TStringBuilder() <<
137-
R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=cms_res_id, TYPE=COUNT_MIN_SKETCH,
138+
R"(ALTER OBJECT `/Root/olapTable` (TYPE TABLE) SET (ACTION=UPSERT_INDEX, NAME=cms_res_id, TYPE=COUNT_MIN_SKETCH,
138139
FEATURES=`{"column_names" : ['resource_id']}`);
139140
)";
140141
auto session = tableClient.CreateSession().GetValueSync().GetSession();
@@ -144,7 +145,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
144145

145146
{
146147
auto alterQuery = TStringBuilder() <<
147-
R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=cms_uid, TYPE=COUNT_MIN_SKETCH,
148+
R"(ALTER OBJECT `/Root/olapTable` (TYPE TABLE) SET (ACTION=UPSERT_INDEX, NAME=cms_uid, TYPE=COUNT_MIN_SKETCH,
148149
FEATURES=`{"column_names" : ['uid']}`);
149150
)";
150151
auto session = tableClient.CreateSession().GetValueSync().GetSession();
@@ -154,7 +155,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
154155

155156
{
156157
auto alterQuery = TStringBuilder() <<
157-
R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=cms_level, TYPE=COUNT_MIN_SKETCH,
158+
R"(ALTER OBJECT `/Root/olapTable` (TYPE TABLE) SET (ACTION=UPSERT_INDEX, NAME=cms_level, TYPE=COUNT_MIN_SKETCH,
158159
FEATURES=`{"column_names" : ['level']}`);
159160
)";
160161
auto session = tableClient.CreateSession().GetValueSync().GetSession();
@@ -164,23 +165,39 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
164165

165166
{
166167
auto alterQuery = TStringBuilder() <<
167-
R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=cms_message, TYPE=COUNT_MIN_SKETCH,
168+
R"(ALTER OBJECT `/Root/olapTable` (TYPE TABLE) SET (ACTION=UPSERT_INDEX, NAME=cms_message, TYPE=COUNT_MIN_SKETCH,
168169
FEATURES=`{"column_names" : ['message']}`);
169170
)";
170171
auto session = tableClient.CreateSession().GetValueSync().GetSession();
171172
auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync();
172173
UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString());
173174
}
174175

175-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 1000000, 300000000, 10000);
176-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 1100000, 300100000, 10000);
177-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 1200000, 300200000, 10000);
178-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 1300000, 300300000, 10000);
179-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 1400000, 300400000, 10000);
180-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 2000000, 200000000, 70000);
181-
WriteTestData(kikimr, "/Root/olapStore/olapTable", 3000000, 100000000, 110000);
176+
WriteTestData(kikimr, "/Root/olapTable", 1000000, 300000000, 10000);
177+
WriteTestData(kikimr, "/Root/olapTable", 1100000, 300100000, 10000);
178+
WriteTestData(kikimr, "/Root/olapTable", 1200000, 300200000, 10000);
179+
WriteTestData(kikimr, "/Root/olapTable", 1300000, 300300000, 10000);
180+
WriteTestData(kikimr, "/Root/olapTable", 1400000, 300400000, 10000);
181+
WriteTestData(kikimr, "/Root/olapTable", 2000000, 200000000, 70000);
182+
WriteTestData(kikimr, "/Root/olapTable", 3000000, 100000000, 110000);
182183

183184
csController->WaitActualization(TDuration::Seconds(10));
185+
186+
{
187+
auto res = client.Ls("/Root/olapTable");
188+
auto description = res->Record.GetPathDescription().GetColumnTableDescription();
189+
auto indexes = description.GetSchema().GetIndexes();
190+
UNIT_ASSERT(indexes.size() == 5);
191+
192+
std::unordered_set<TString> indexNames{"cms_ts", "cms_res_id", "cms_uid", "cms_level", "cms_message"};
193+
for (const auto& i : indexes) {
194+
Cerr << ">>> " << i.GetName() << " of class name " << i.GetClassName() << Endl;
195+
UNIT_ASSERT(i.GetClassName() == "COUNT_MIN_SKETCH");
196+
UNIT_ASSERT(indexNames.erase(i.GetName()));
197+
}
198+
UNIT_ASSERT(indexNames.empty());
199+
}
200+
184201
{
185202
auto runtime = kikimr.GetTestServer().GetRuntime();
186203
auto sender = runtime->AllocateEdgeActor();

ydb/core/testlib/cs_helper.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,32 @@ void THelper::CreateOlapTablesWithStore(TVector<TString> tableNames /*= {"olapTa
230230
CreateSchemaOlapTablesWithStore(GetTestTableSchema(), tableNames, storeName, storeShardsCount, tableShardsCount);
231231
}
232232

233+
void THelper::CreateSchemaOlapTables(const TString tableSchema, TVector<TString> tableNames, ui32 tableShardsCount) {
234+
TActorId sender = Server.GetRuntime()->AllocateEdgeActor();
235+
236+
const TString shardingColumns = "[\"" + JoinSeq("\",\"", GetShardingColumns()) + "\"]";
237+
238+
for (const TString& tableName : tableNames) {
239+
TBase::CreateTestOlapTable(sender, "", Sprintf(R"(
240+
Name: "%s"
241+
ColumnShardCount: %d
242+
Sharding {
243+
HashSharding {
244+
Function: %s
245+
Columns: %s
246+
}
247+
}
248+
Schema {
249+
%s
250+
}
251+
)", tableName.c_str(), tableShardsCount, ShardingMethod.data(), shardingColumns.c_str(), tableSchema.data()));
252+
}
253+
}
254+
255+
void THelper::CreateOlapTables(TVector<TString> tableNames /*= {"olapTable"}*/, ui32 tableShardsCount /*= 3*/) {
256+
CreateSchemaOlapTables(GetTestTableSchema(), tableNames, tableShardsCount);
257+
}
258+
233259
// Clickbench table
234260

235261
std::shared_ptr<arrow::Schema> TCickBenchHelper::GetArrowSchema() const {

ydb/core/testlib/cs_helper.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ class THelper: public THelperSchemaless {
3737
void CreateOlapTablesWithStore(TVector<TString> tableName = {"olapTable"}, TString storeName = "olapStore",
3838
ui32 storeShardsCount = 4, ui32 tableShardsCount = 3);
3939

40+
void CreateSchemaOlapTables(const TString tableSchema, TVector<TString> tableNames = {"olapTable"},
41+
ui32 tableShardsCount = 3);
42+
void CreateOlapTables(TVector<TString> tableName = {"olapTable"}, ui32 tableShardsCount = 3);
43+
4044
public:
4145
using TBase::TBase;
4246

0 commit comments

Comments
 (0)