Skip to content

Commit c8ae8f8

Browse files
vagetablechickenHuang Wei
andauthored
fix: drop aggr tables in drop table (#3908)
* fix: drop aggr tables in drop table * fix * fix test * fix * fix --------- Co-authored-by: Huang Wei <huangwei@4paradigm.com>
1 parent b7e592c commit c8ae8f8

File tree

2 files changed

+77
-198
lines changed

2 files changed

+77
-198
lines changed

src/cmd/sql_cmd_test.cc

Lines changed: 47 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,19 +1628,18 @@ TEST_P(DBSDKTest, DeployLongWindows) {
16281628
rs = sr->ExecuteSQL("", result_sql, &status);
16291629
ASSERT_EQ(3, rs->Size());
16301630

1631-
std::string msg;
1632-
auto ok = sr->ExecuteDDL(openmldb::nameserver::PRE_AGG_DB, "drop table pre_test2_demo1_w1_sum_c4;", &status);
1633-
ASSERT_TRUE(ok);
1634-
ok = sr->ExecuteDDL(openmldb::nameserver::PRE_AGG_DB, "drop table pre_test2_demo1_w2_max_c5;", &status);
1635-
ASSERT_TRUE(ok);
1636-
ok = sr->ExecuteDDL(openmldb::nameserver::PRE_AGG_DB, "drop table pre_test2_demo3_w1_count_where_c4_c3;", &status);
1637-
ASSERT_TRUE(ok);
1638-
ASSERT_FALSE(cs->GetNsClient()->DropTable("test2", "trans", msg));
1639-
ASSERT_TRUE(cs->GetNsClient()->DropProcedure("test2", "demo1", msg));
1640-
ASSERT_TRUE(cs->GetNsClient()->DropProcedure("test2", "demo2", msg));
1641-
ASSERT_TRUE(cs->GetNsClient()->DropProcedure("test2", "demo3", msg));
1642-
ASSERT_TRUE(cs->GetNsClient()->DropTable("test2", "trans", msg));
1643-
ASSERT_TRUE(cs->GetNsClient()->DropDatabase("test2", msg));
1631+
// drop deployment
1632+
sr->ExecuteSQL("test2", "drop deployment demo1;", &status);
1633+
ASSERT_TRUE(status.IsOK()) << status.ToString();
1634+
rs = sr->ExecuteSQL("test2", "drop deployment demo2;", &status);
1635+
ASSERT_TRUE(status.IsOK()) << status.ToString();
1636+
rs = sr->ExecuteSQL("test2", "drop deployment demo3;", &status);
1637+
ASSERT_TRUE(status.IsOK()) << status.ToString();
1638+
1639+
sr->ExecuteSQL("test2", "drop table trans", &status);
1640+
ASSERT_TRUE(status.IsOK()) << status.ToString();
1641+
sr->ExecuteSQL("drop database test2;", &status);
1642+
ASSERT_TRUE(status.IsOK()) << status.ToString();
16441643
}
16451644

16461645
void CreateDBTableForLongWindow(const std::string& base_db, const std::string& base_table) {
@@ -1711,16 +1710,17 @@ void PrepareRequestRowForLongWindow(const std::string& base_db, const std::strin
17111710
}
17121711

17131712
// TODO(ace): create instance of DeployLongWindowEnv with template
1713+
static absl::BitGen gen; // reseed may segfault, use one for all env
17141714
class DeployLongWindowEnv {
17151715
public:
17161716
explicit DeployLongWindowEnv(sdk::SQLClusterRouter* sr) : sr_(sr) {}
17171717

17181718
virtual ~DeployLongWindowEnv() {}
17191719

17201720
void SetUp() {
1721-
db_ = absl::StrCat("db_", absl::Uniform(gen_, 0, std::numeric_limits<int32_t>::max()));
1722-
table_ = absl::StrCat("tb_", absl::Uniform(gen_, 0, std::numeric_limits<int32_t>::max()));
1723-
dp_ = absl::StrCat("dp_", absl::Uniform(gen_, 0, std::numeric_limits<int32_t>::max()));
1721+
db_ = absl::StrCat("db_", absl::Uniform(gen, 0, std::numeric_limits<int32_t>::max()));
1722+
table_ = absl::StrCat("tb_", absl::Uniform(gen, 0, std::numeric_limits<int32_t>::max()));
1723+
dp_ = absl::StrCat("dp_", absl::Uniform(gen, 0, std::numeric_limits<int32_t>::max()));
17241724

17251725
PrepareSchema();
17261726

@@ -1732,7 +1732,7 @@ class DeployLongWindowEnv {
17321732
}
17331733

17341734
void TearDown() {
1735-
TearDownPreAggTables();
1735+
TearDownDeployment();
17361736
ProcessSQLs(sr_, {
17371737
absl::StrCat("drop table ", table_),
17381738
absl::StrCat("drop database ", db_),
@@ -1788,7 +1788,12 @@ class DeployLongWindowEnv {
17881788

17891789
virtual void Deploy() = 0;
17901790

1791-
virtual void TearDownPreAggTables() = 0;
1791+
virtual void TearDownDeployment() {
1792+
ProcessSQLs(sr_, {
1793+
absl::StrCat("use ", db_),
1794+
absl::StrCat("drop deployment ", dp_),
1795+
});
1796+
}
17921797

17931798
void GetRequestRow(std::shared_ptr<sdk::SQLRequestRow>* rs, const std::string& name) { // NOLINT
17941799
::hybridse::sdk::Status status;
@@ -1814,7 +1819,6 @@ class DeployLongWindowEnv {
18141819

18151820
protected:
18161821
sdk::SQLClusterRouter* sr_;
1817-
absl::BitGen gen_;
18181822
std::string db_;
18191823
std::string table_;
18201824
std::string dp_;
@@ -1843,14 +1847,14 @@ TEST_P(DBSDKTest, DeployLongWindowsWithDataFail) {
18431847
".col2 ORDER BY col3"
18441848
" ROWS_RANGE BETWEEN 5 PRECEDING AND CURRENT ROW);";
18451849
sr->ExecuteSQL(base_db, "use " + base_db + ";", &status);
1846-
ASSERT_TRUE(status.IsOK()) << status.msg;
1850+
ASSERT_TRUE(status.IsOK()) << status.ToString();
18471851
sr->ExecuteSQL(base_db, deploy_sql, &status);
18481852
ASSERT_TRUE(!status.IsOK());
18491853

18501854
ok = sr->ExecuteDDL(base_db, "drop table " + base_table + ";", &status);
1851-
ASSERT_TRUE(ok) << status.msg;
1855+
ASSERT_TRUE(ok) << status.ToString();
18521856
ok = sr->DropDB(base_db, &status);
1853-
ASSERT_TRUE(ok);
1857+
ASSERT_TRUE(ok) << status.ToString();
18541858
}
18551859

18561860
TEST_P(DBSDKTest, DeployLongWindowsEmpty) {
@@ -2871,25 +2875,6 @@ TEST_P(DBSDKTest, DeployLongWindowsExecuteCountWhere2) {
28712875
w1 AS (PARTITION BY col1,col2 ORDER BY col3 ROWS_RANGE BETWEEN 6s PRECEDING AND CURRENT ROW);)",
28722876
dp_, table_)});
28732877
}
2874-
2875-
void TearDownPreAggTables() override {
2876-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
2877-
ProcessSQLs(sr_, {
2878-
absl::StrCat("use ", pre_agg_db),
2879-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i64_col_i64_col"),
2880-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i64_col_i16_col"),
2881-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i16_col_i32_col"),
2882-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i32_col_f_col"),
2883-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_f_col_d_col"),
2884-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_d_col_d_col"),
2885-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_s_col_col1"),
2886-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_date_col_s_col"),
2887-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where__i64_col"),
2888-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_filter_i64_col"),
2889-
absl::StrCat("use ", db_),
2890-
absl::StrCat("drop deployment ", dp_),
2891-
});
2892-
}
28932878
};
28942879

28952880
// request window [5s, 11s]
@@ -2948,24 +2933,6 @@ TEST_P(DBSDKTest, DeployLongWindowsExecuteCountWhere3) {
29482933
w2 AS (PARTITION BY col1,col2 ORDER BY i64_col ROWS BETWEEN 6 PRECEDING AND CURRENT ROW);)",
29492934
dp_, table_)});
29502935
}
2951-
2952-
void TearDownPreAggTables() override {
2953-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
2954-
ProcessSQLs(sr_, {
2955-
absl::StrCat("use ", pre_agg_db),
2956-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i64_col_filter"),
2957-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i64_col_col1"),
2958-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i16_col_filter"),
2959-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_i32_col_filter"),
2960-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_f_col_filter"),
2961-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_d_col_filter"),
2962-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_t_col_filter"),
2963-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_s_col_filter"),
2964-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_count_where_date_col_filter"),
2965-
absl::StrCat("use ", db_),
2966-
absl::StrCat("drop deployment ", dp_),
2967-
});
2968-
}
29692936
};
29702937

29712938
// request window [4s, 11s]
@@ -3023,26 +2990,6 @@ TEST_P(DBSDKTest, LongWindowMinMaxWhere) {
30232990
w1 AS (PARTITION BY col1,col2 ORDER BY col3 ROWS_RANGE BETWEEN 7s PRECEDING AND CURRENT ROW))s",
30242991
dp_, table_)});
30252992
}
3026-
3027-
void TearDownPreAggTables() override {
3028-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
3029-
ProcessSQLs(sr_, {
3030-
absl::StrCat("use ", pre_agg_db),
3031-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_i64_col_filter"),
3032-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_i64_col_col1"),
3033-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_i16_col_filter"),
3034-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_i32_col_filter"),
3035-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_f_col_filter"),
3036-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_max_where_d_col_filter"),
3037-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_min_where_i64_col_i16_col"),
3038-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_min_where_i16_col_i32_col"),
3039-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_min_where_i32_col_f_col"),
3040-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_min_where_f_col_d_col"),
3041-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_min_where_d_col_d_col"),
3042-
absl::StrCat("use ", db_),
3043-
absl::StrCat("drop deployment ", dp_),
3044-
});
3045-
}
30462993
};
30472994

30482995
// request window [4s, 11s]
@@ -3100,25 +3047,6 @@ TEST_P(DBSDKTest, LongWindowSumWhere) {
31003047
w1 AS (PARTITION BY col1,col2 ORDER BY col3 ROWS_RANGE BETWEEN 7s PRECEDING AND CURRENT ROW))s",
31013048
dp_, table_)});
31023049
}
3103-
3104-
void TearDownPreAggTables() override {
3105-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
3106-
ProcessSQLs(sr_, {
3107-
absl::StrCat("use ", pre_agg_db),
3108-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i64_col_col1"),
3109-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i16_col_filter"),
3110-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i32_col_filter"),
3111-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_f_col_filter"),
3112-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_d_col_filter"),
3113-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i64_col_i16_col"),
3114-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i16_col_i32_col"),
3115-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_i32_col_f_col"),
3116-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_f_col_d_col"),
3117-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_sum_where_d_col_d_col"),
3118-
absl::StrCat("use ", db_),
3119-
absl::StrCat("drop deployment ", dp_),
3120-
});
3121-
}
31223050
};
31233051

31243052
// request window [4s, 11s]
@@ -3175,25 +3103,6 @@ TEST_P(DBSDKTest, LongWindowAvgWhere) {
31753103
w1 AS (PARTITION BY col1,col2 ORDER BY col3 ROWS_RANGE BETWEEN 7s PRECEDING AND CURRENT ROW))s",
31763104
dp_, table_)});
31773105
}
3178-
3179-
void TearDownPreAggTables() override {
3180-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
3181-
ProcessSQLs(sr_, {
3182-
absl::StrCat("use ", pre_agg_db),
3183-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i64_col_col1"),
3184-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i16_col_filter"),
3185-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i32_col_filter"),
3186-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_f_col_filter"),
3187-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_d_col_f_col"),
3188-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i64_col_i16_col"),
3189-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i16_col_i32_col"),
3190-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i32_col_f_col"),
3191-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_f_col_d_col"),
3192-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_d_col_d_col"),
3193-
absl::StrCat("use ", db_),
3194-
absl::StrCat("drop deployment ", dp_),
3195-
});
3196-
}
31973106
};
31983107

31993108
// request window [4s, 11s]
@@ -3273,25 +3182,6 @@ TEST_P(DBSDKTest, LongWindowAnyWhereWithDataOutOfOrder) {
32733182
ASSERT_TRUE(ok && s.IsOK()) << s.msg << "\n" << s.trace;
32743183
}
32753184
}
3276-
3277-
void TearDownPreAggTables() override {
3278-
absl::string_view pre_agg_db = openmldb::nameserver::PRE_AGG_DB;
3279-
ProcessSQLs(sr_, {
3280-
absl::StrCat("use ", pre_agg_db),
3281-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i64_col_col1"),
3282-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i16_col_filter"),
3283-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i32_col_filter"),
3284-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_f_col_filter"),
3285-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_d_col_f_col"),
3286-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i64_col_i16_col"),
3287-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i16_col_i32_col"),
3288-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_i32_col_f_col"),
3289-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_f_col_d_col"),
3290-
absl::StrCat("drop table pre_", db_, "_", dp_, "_w1_avg_where_d_col_d_col"),
3291-
absl::StrCat("use ", db_),
3292-
absl::StrCat("drop deployment ", dp_),
3293-
});
3294-
}
32953185
};
32963186

32973187
// request window [4s, 11s]
@@ -3354,8 +3244,7 @@ TEST_P(DBSDKTest, LongWindowAnyWhereUnsupportRowsBucket) {
33543244
<< "code=" << status.code << ", msg=" << status.msg << "\n"
33553245
<< status.trace;
33563246
}
3357-
3358-
void TearDownPreAggTables() override {}
3247+
void TearDownDeployment() override {}
33593248
};
33603249

33613250
// unsupport: deploy any_where with rows bucket
@@ -3390,8 +3279,7 @@ TEST_P(DBSDKTest, LongWindowAnyWhereUnsupportTimeFilter) {
33903279
<< "code=" << status.code << ", msg=" << status.msg << "\n"
33913280
<< status.trace;
33923281
}
3393-
3394-
void TearDownPreAggTables() override {}
3282+
void TearDownDeployment() override {}
33953283
};
33963284

33973285
DeployLongWindowAnyWhereEnv env(sr);
@@ -3420,8 +3308,7 @@ TEST_P(DBSDKTest, LongWindowAnyWhereUnsupportTimeFilter) {
34203308
<< "code=" << status.code << ", msg=" << status.msg << "\n"
34213309
<< status.trace;
34223310
}
3423-
3424-
void TearDownPreAggTables() override {}
3311+
void TearDownDeployment() override {}
34253312
};
34263313

34273314
DeployLongWindowAnyWhereEnv env(sr);
@@ -3481,8 +3368,7 @@ TEST_P(DBSDKTest, LongWindowAnyWhereUnsupportHDDTable) {
34813368
<< "code=" << status.code << ", msg=" << status.msg << "\n"
34823369
<< status.trace;
34833370
}
3484-
3485-
void TearDownPreAggTables() override {}
3371+
void TearDownDeployment() override {}
34863372
};
34873373

34883374
DeployLongWindowAnyWhereEnv env(sr);
@@ -3504,26 +3390,35 @@ TEST_P(DBSDKTest, LongWindowsCleanup) {
35043390
" max(c5) over w2 as w2_max_c5 FROM trans"
35053391
" WINDOW w1 AS (PARTITION BY trans.c1 ORDER BY trans.c7 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW),"
35063392
" w2 AS (PARTITION BY trans.c1 ORDER BY trans.c4 ROWS BETWEEN 3 PRECEDING AND CURRENT ROW);";
3393+
35073394
for (int i = 0; i < 10; i++) {
35083395
HandleSQL("create database test2;");
35093396
HandleSQL("use test2;");
35103397
HandleSQL(create_sql);
3398+
LOG(INFO) << "before deploy " << i;
3399+
HandleSQL("select * from __INTERNAL_DB.PRE_AGG_META_INFO;");
35113400
sr->ExecuteSQL(deploy_sql, &status);
35123401
ASSERT_TRUE(status.IsOK());
3402+
absl::SleepFor(absl::Seconds(3));
3403+
LOG(INFO) << "after deploy " << i;
3404+
HandleSQL("select * from __INTERNAL_DB.PRE_AGG_META_INFO;");
35133405
std::string msg;
35143406
std::string result_sql = "select * from __INTERNAL_DB.PRE_AGG_META_INFO;";
35153407
auto rs = sr->ExecuteSQL("", result_sql, &status);
3408+
ASSERT_TRUE(status.IsOK()) << status.ToString();
35163409
ASSERT_EQ(2, rs->Size());
3517-
auto ok = sr->ExecuteDDL(openmldb::nameserver::PRE_AGG_DB, "drop table pre_test2_demo1_w1_sum_c4;", &status);
3518-
ASSERT_TRUE(ok);
3519-
ok = sr->ExecuteDDL(openmldb::nameserver::PRE_AGG_DB, "drop table pre_test2_demo1_w2_max_c5;", &status);
3520-
ASSERT_TRUE(ok);
3410+
sr->ExecuteSQL("test2", "drop table trans;", &status);
3411+
ASSERT_FALSE(status.IsOK());
3412+
sr->ExecuteSQL("drop procedure demo1;", &status);
3413+
ASSERT_TRUE(status.IsOK()) << status.ToString();
3414+
sr->ExecuteSQL("test2", "drop table trans;", &status);
3415+
ASSERT_TRUE(status.IsOK()) << status.ToString();
3416+
35213417
result_sql = "select * from __INTERNAL_DB.PRE_AGG_META_INFO;";
3418+
HandleSQL(result_sql);
35223419
rs = sr->ExecuteSQL("", result_sql, &status);
3420+
ASSERT_TRUE(status.IsOK()) << status.ToString();
35233421
ASSERT_EQ(0, rs->Size());
3524-
ASSERT_FALSE(cs->GetNsClient()->DropTable("test2", "trans", msg));
3525-
ASSERT_TRUE(cs->GetNsClient()->DropProcedure("test2", "demo1", msg)) << msg;
3526-
ASSERT_TRUE(cs->GetNsClient()->DropTable("test2", "trans", msg)) << msg;
35273422
// helpful for debug
35283423
HandleSQL("show tables;");
35293424
HandleSQL("show deployments;");
@@ -4151,6 +4046,7 @@ TEST_F(SqlCmdTest, SelectWithAddNewIndex) {
41514046
hybridse::sdk::Status status;
41524047
auto res = sr->ExecuteSQL(absl::StrCat("use ", db1_name, ";"), &status);
41534048
res = sr->ExecuteSQL(absl::StrCat("select id,c1,c2,c3 from ", tb1_name), &status);
4049+
ASSERT_TRUE(status.IsOK()) << status.ToString();
41544050
ASSERT_EQ(res->Size(), 4);
41554051
res = sr->ExecuteSQL(absl::StrCat("select id,c1,c2,c3 from ", tb1_name, " where c1='aa';"), &status);
41564052
ASSERT_EQ(res->Size(), 3);

0 commit comments

Comments
 (0)