This is an automated email from the ASF dual-hosted git repository.
stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new 41b6652fb IMPALA-14221: Avoid hard-coding table list in
TestWarmupCatalog
41b6652fb is described below
commit 41b6652fbf612a44676fed1cd9bd0da45133a04d
Author: stiga-huang <[email protected]>
AuthorDate: Tue Jul 15 11:40:21 2025 +0800
IMPALA-14221: Avoid hard-coding table list in TestWarmupCatalog
Some other tests like tests/query_test/test_cancellation.py might create
tables under the tpch db, which fails the assertion in TestWarmupCatalog
assuming that there are 8 tables under it.
This fixes the test by fetching the table list of tpch db in runtime
instead of hard-coding them.
Change-Id: I0aca8ee19146f2e63e7cd82177d9fce0b8c6736a
Reviewed-on: http://gerrit.cloudera.org:8080/23173
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>
---
tests/custom_cluster/test_restart_services.py | 35 +++++++++++++++------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/tests/custom_cluster/test_restart_services.py
b/tests/custom_cluster/test_restart_services.py
index b50154411..08995cd94 100644
--- a/tests/custom_cluster/test_restart_services.py
+++ b/tests/custom_cluster/test_restart_services.py
@@ -1147,36 +1147,41 @@ class TestWarmupCatalog(CustomClusterTestSuite):
def _test_warmup_tables(self, keeps_warmup_tables_loaded):
catalogd = self.cluster.catalogd.service
- self._verify_tables_warmed_up(catalogd)
- self._verify_warmup_scheduling_order()
+ # Other tests might create tables in tpch db. So we fetch the table list
instead of
+ # hard-coding the table names here.
+ tpch_tables = self.all_table_names(db="tpch")
+ self._verify_tables_warmed_up(catalogd, tpch_tables)
+ self._verify_warmup_scheduling_order(tpch_tables)
self.execute_query("invalidate metadata")
- self._verify_tables_warmed_up(catalogd)
+ self._verify_tables_warmed_up(catalogd, tpch_tables)
self.execute_query("invalidate metadata tpcds.item")
catalogd.verify_table_metadata_loaded("tpcds", "item",
keeps_warmup_tables_loaded)
- def _verify_tables_warmed_up(self, catalogd):
+ def _verify_tables_warmed_up(self, catalogd, tpch_tables):
tables = {
"tpcds": ["customer", "date_dim", "item", "store_sales"],
- "tpch": ["customer", "lineitem", "nation", "orders", "part",
- "partsupp", "region", "supplier"]
+ "tpch": tpch_tables
}
for db in tables:
for table in tables[db]:
catalogd.verify_table_metadata_loaded(db, table)
catalogd.verify_table_metadata_loaded("tpcds", "store",
expect_loaded=False)
- def _verify_warmup_scheduling_order(self):
- self.assert_catalogd_log_contains("INFO", "Scheduled 14 tables to be
warmed up")
+ def _verify_warmup_scheduling_order(self, tpch_tables):
+ num_tpch_tables = len(tpch_tables)
+ num_tables = num_tpch_tables + 6
+ self.assert_catalogd_log_contains(
+ "INFO", "Scheduled %d tables to be warmed up" % num_tables)
with open(self.build_log_path("catalogd", "INFO")) as file:
logs = grep_file(file, r"Scheduled warmup on table")
assert "tpcds.store_sales" in logs[0]
# The order in "tpch" depends on the list tables output and might change
in the
# future. So just verify the db names.
- for i in range(1, 9):
+ for i in range(1, 1 + num_tpch_tables):
assert "tpch." in logs[i]
- assert "tpcds.customer" in logs[9]
- assert "tpcds.date_dim" in logs[10]
- assert "tpcds.item" in logs[11]
- assert "functional.#" in logs[12]
- assert "functional.alltypes etc #" in logs[13]
- assert len(logs) == 14
+ assert "tpcds.customer" in logs[num_tpch_tables + 1]
+ assert "tpcds.date_dim" in logs[num_tpch_tables + 2]
+ assert "tpcds.item" in logs[num_tpch_tables + 3]
+ assert "functional.#" in logs[num_tpch_tables + 4]
+ assert "functional.alltypes etc #" in logs[num_tpch_tables + 5]
+ assert len(logs) == num_tables