| #!/bin/env python |
| # -*- coding: utf-8 -*- |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| """ |
| /*************************************************************************** |
| * |
| * @file test_sys_alter_schema_change_modify.py |
| * @date 2020-02-04 |
| * @brief This file is a test file for Palo bitmap index. |
| * |
| **************************************************************************/ |
| """ |
| import sys |
| import random |
| import time |
| sys.path.append("../") |
| |
| from data import bitmap_index as DATA |
| from lib import palo_config |
| from lib import palo_client |
| from lib import util |
| |
| config = palo_config.config |
| LOG = palo_client.LOG |
| L = palo_client.L |
| broker_info = palo_config.broker_info |
| |
| |
| def setup_module(): |
| """ |
| setUp |
| """ |
| global client |
| client = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| password=config.fe_password, http_port=config.fe_http_port) |
| timeout = 30 |
| i = 0 |
| variable_value = "" |
| # 设置default_rowset_type=beta |
| # 检查10次variable,每次等待30s |
| while i < 10: |
| # 由于是global变量,必须每请求一次换一个client |
| client_tmp = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| password=config.fe_password, http_port=config.fe_http_port) |
| set_variable_sql = "set global default_rowset_type=beta" |
| r = client_tmp.execute(set_variable_sql) |
| if variable_value == "beta": |
| time.sleep(timeout) |
| break |
| time.sleep(timeout) |
| variable_value = client_tmp.show_variables("default_rowset_type")[0][1] |
| i = i + 1 |
| assert variable_value == "beta" |
| print("alter global variable default_rowset_type from alpha to beta!") |
| |
| |
| def check_partition_list(table_name, partition_name_list): |
| """ |
| 验证分区是否创建成功 |
| """ |
| for partition_name in partition_name_list: |
| assert client.get_partition(table_name, partition_name) |
| |
| |
| def partition_check(table_name, column_name, partition_name_list, \ |
| partition_value_list, distribution_type, bucket_num, storage_type, schema, \ |
| keys_desc=None, bitmap_index_list=None): |
| """ |
| 检查,验证 |
| """ |
| partition_info = palo_client.PartitionInfo(column_name, \ |
| partition_name_list, partition_value_list) |
| distribution_info = palo_client.DistributionInfo(distribution_type, bucket_num) |
| client.create_table(table_name, schema, \ |
| partition_info, distribution_info, keys_desc=keys_desc, bitmap_index_list=bitmap_index_list) |
| assert client.show_tables(table_name) |
| check_partition_list(table_name, partition_name_list) |
| |
| |
| def check(table_name, schema, keys_desc=None, bitmap_index_list=None): |
| """ |
| 分区,检查 |
| """ |
| partition_name_list = ['partition_a', 'partition_b', 'partition_c', 'partition_d'] |
| partition_value_list = ['5', '30', '100', 'MAXVALUE'] |
| partition_check(table_name, 'k1', |
| partition_name_list, partition_value_list, |
| 'HASH(k1, k2)', random.randrange(1, 30), 'column', schema, keys_desc,\ |
| bitmap_index_list) |
| |
| |
| def test_create_index_when_create_table(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_when_create_table", |
| "describe": "test_create_index_when_create_table, 测试建表同时创建索引", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_create_index_when_create_table |
| 测试建表同时创建索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_with_index_col, bitmap_index_list=DATA.schema_agg_table_with_index) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'k1_idx', 'k1', table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_after_create_table(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_after_create_table", |
| "describe": "test_create_index_after_create_table, 测试建表之后创建索引,使用两种语法创建:CREATE INDEX index_name ON table ... ;ALTER TABLE table ADD INDEX index_name ... ;", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_create_index_after_create_table |
| 测试建表之后创建索引,使用两种语法创建: |
| CREATE INDEX index_name ON table ... |
| ALTER TABLE table ADD INDEX index_name ... |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_nameint', 'int_key', |
| is_wait=True) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_name_char', 'char_key', |
| create_format=2, is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_nameint', 'int_key', table_name) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_name_char', 'char_key', table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_with_data(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_with_data", |
| "describe": "test_create_index_with_data, 测试表中有数据时创建索引", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_create_index_with_data |
| 测试表中有数据时创建索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_simple) |
| sql_insert = "insert into %s values(1, 1, 1, 1, 1),(2, 2, 2, 2, 2)" % table_name |
| r = client_exe.execute(sql_insert) |
| assert r == () |
| sql_select = "select * from %s" % table_name |
| ret = client_exe.execute(sql_select) |
| assert len(ret) == 2 |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_k1', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_k1', 'k1', table_name) |
| client.clean(database_name) |
| |
| |
| def test_delete_data_after_create_index(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_delete_data_after_create_index", |
| "describe": "test_delete_data_after_create_index, 测试创建索引后删除数据", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_delete_data_after_create_index |
| 测试创建索引后删除数据 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_simple) |
| sql_insert = "insert into %s values(1, 1, 1, 1, 1),(2, 2, 2, 2, 2)" % table_name |
| r = client_exe.execute(sql_insert) |
| assert r == () |
| sql_select = "select * from %s" % table_name |
| ret = client_exe.execute(sql_select) |
| assert len(ret) == 2 |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_k1', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_k1', 'k1', table_name) |
| sql_insert = "delete from %s partition partition_a where k1 > 0" % table_name |
| r = client_exe.execute(sql_insert) |
| assert r == () |
| sql_select = "select * from %s" % table_name |
| ret = client_exe.execute(sql_select) |
| assert len(ret) == 0 |
| client.clean(database_name) |
| |
| |
| def test_drop_column_after_create_index(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_drop_column_after_create_index", |
| "describe": "test_drop_column_after_create_index, 测试创建索引后删除列,预期索引一并删除", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_drop_column_after_create_index |
| 测试创建索引后删除列,预期索引一并删除 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_simple) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_k3', 'k3', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_k3', 'k3', table_name) |
| time.sleep(10) |
| # 删除列 |
| util.assert_return(True, '', |
| client.schema_change, table_name, drop_column_list = ["k3"], |
| is_wait=True) |
| util.assert_return_flag(False, |
| client.is_exists_index_in_table, 'index_k3', 'k3', table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_with_alltype_data(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_with_alltype_data", |
| "describe": "test_create_index_with_alltype_data, 测试各类支持的数据类型创建索引,包括TINYINT,SMALLINT,INT,BIGINT,CHAR,VARCHAR,DATE,DATETIME,LARGEINT,DECIMAL", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_create_index_with_alltype_data |
| 测试各类支持的数据类型创建索引,包括TINYINT,SMALLINT,INT, |
| BIGINT,CHAR,VARCHAR,DATE,DATETIME,LARGEINT,DECIMAL |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_tinyint', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_smallint', 'k2', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_smallint', 'k2', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_int', 'int_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_int', 'int_key', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_bigint', 'bigint_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_bigint', 'bigint_key', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_char_50_key', 'char_50_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_char_50_key', 'char_50_key', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_character_key', 'character_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_character_key', 'character_key', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_date_key', 'date_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_date_key', 'date_key', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_datetime_key', 'datetime_key', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_datetime_key', 'datetime_key', table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_on_value_column(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_on_value_column", |
| "describe": "test_create_index_on_value_column, 测试在agg表的非key列创建index", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_create_index_on_value_column |
| 测试在agg表的非key列创建index |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_simple) |
| util.assert_return(False, '', |
| client.create_bitmap_index_table, table_name, 'index_v1', 'v1', |
| is_wait=True) |
| client.clean(database_name) |
| |
| |
| def test_create_index_on_many_column(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_on_many_column", |
| "describe": "test_create_index_on_many_column,测试在多列创建索引(联合索引,目前不支持)", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_create_index_on_many_column |
| 测试在多列创建索引(联合索引,目前不支持) |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table_simple) |
| util.assert_return(False, '', |
| client.create_bitmap_index_table, table_name, 'index_k1_k2', 'k1,k2', |
| is_wait=True) |
| client.clean(database_name) |
| |
| |
| def test_create_index_repete(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_repete", |
| "describe": "test_create_index_repete,测试重复创建同一索引", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_create_index_repete |
| 测试重复创建同一索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_tinyint', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| util.assert_return(False, '', |
| client.create_bitmap_index_table, table_name, 'index_tinyint_new', 'k1', |
| is_wait=True) |
| client.clean(database_name) |
| |
| |
| def test_drop_index(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_drop_index", |
| "describe": "test_drop_index,测试删除索引", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_drop_index |
| 测试删除索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_tinyint', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.drop_bitmap_index_table, table_name, 'index_tinyint', is_wait=True) |
| util.assert_return_flag(False, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| client.clean(database_name) |
| |
| |
| def test_drop_index_not_exist(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_drop_index_not_exist", |
| "describe": "test_drop_index_not_exist,测试删除不存在的索引", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_drop_index_not_exist |
| 测试删除不存在的索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_tinyint', 'k1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| time.sleep(10) |
| util.assert_return_flag(True, |
| client.drop_bitmap_index_table, table_name, 'index_tinyint', is_wait=True) |
| util.assert_return_flag(False, |
| client.is_exists_index_in_table, 'index_tinyint', 'k1', table_name) |
| time.sleep(10) |
| util.assert_return(False, '', |
| client.drop_bitmap_index_table, table_name, 'index_tinyint', is_wait=True) |
| client.clean(database_name) |
| |
| |
| def test_load_result_corr(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_load_result_corr", |
| "describe": "test_load_result_corr,测试导入查询结果正确性", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_load_result_corr |
| 测试导入查询结果正确性 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_agg_table, bitmap_index_list=DATA.schema_agg_table_index) |
| # 导入各类型数据 |
| data_desc_list = palo_client.LoadDataInfo(DATA.file_path, table_name) |
| assert client.batch_load(util.get_label(), data_desc_list, max_filter_ratio=0.05, is_wait=True, |
| broker=broker_info) |
| assert client.verify(DATA.expected_data_file_list, table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_on_dup_value_column(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_on_dup_value_column", |
| "describe": "test_create_index_on_dup_value_column,测试在dup表的非key列创建index", |
| "tag": "system,p1" |
| } |
| """ |
| """ |
| test_create_index_on_dup_value_column |
| 测试在dup表的非key列创建index |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_dup, keys_desc=DATA.key_1_dup) |
| util.assert_return_flag(True, |
| client.create_bitmap_index_table, table_name, 'index_v1', 'v1', |
| is_wait=True) |
| util.assert_return_flag(True, |
| client.is_exists_index_in_table, 'index_v1', 'v1', table_name) |
| client.clean(database_name) |
| |
| |
| def test_create_index_on_dup_float_double_column(): |
| """ |
| { |
| "title": "test_sys_bitmap_index.test_create_index_on_dup_float_double_column", |
| "describe": "test_create_index_on_dup_float_double_column, 测试在dup表的float,double列创建索引", |
| "tag": "system,p1,fuzz" |
| } |
| """ |
| """ |
| test_create_index_on_dup_float_double_column |
| 测试在dup表的float,double列创建索引 |
| """ |
| database_name, table_name, index_name = util.gen_num_format_name_list() |
| LOG.info(L('', database_name=database_name, |
| table_name=table_name, index_name=index_name)) |
| client.clean(database_name) |
| client.create_database(database_name) |
| client_exe = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| database_name = database_name, password=config.fe_password, http_port=config.fe_http_port) |
| check(table_name, DATA.schema_dup, keys_desc=DATA.key_1_dup) |
| util.assert_return(False, '', |
| client.create_bitmap_index_table, table_name, 'index_v2', 'v2', |
| is_wait=True) |
| util.assert_return(False, '', |
| client.create_bitmap_index_table, table_name, 'index_v3', 'v3', |
| is_wait=True) |
| client.clean(database_name) |
| |
| |
| def teardown_module(): |
| """ |
| tearDown |
| """ |
| client = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| password=config.fe_password, http_port=config.fe_http_port) |
| timeout = 30 |
| i = 0 |
| variable_value = "" |
| # 设置default_rowset_type=alpha |
| # 检查10次variable,每次等待30s |
| while i < 10: |
| # 由于是global变量,必须每请求一次换一个client |
| client_tmp = palo_client.get_client(config.fe_host, config.fe_query_port, user=config.fe_user, |
| password=config.fe_password, http_port=config.fe_http_port) |
| set_variable_sql = "set global default_rowset_type=alpha" |
| r = client_tmp.execute(set_variable_sql) |
| if variable_value == "alpha": |
| time.sleep(timeout) |
| break |
| time.sleep(timeout) |
| variable_value = client_tmp.show_variables("default_rowset_type")[0][1] |
| i = i + 1 |
| assert variable_value == "alpha" |
| print("alter global variable default_rowset_type from beta to alpha!") |
| print("End") |
| |
| |
| if __name__ == '__main__': |
| import pdb |
| pdb.set_trace() |
| setup_module() |
| test_create_index_when_create_table() |
| test_create_index_after_create_table() |
| test_create_index_with_data() |
| test_delete_data_after_create_index() |
| test_drop_column_after_create_index() |
| test_create_index_with_alltype_data() |
| test_create_index_on_value_column() |
| test_create_index_on_many_column() |
| test_create_index_repete() |
| test_drop_index() |
| test_drop_index_not_exist() |
| test_load_result_corr() |
| test_create_index_on_dup_value_column() |
| test_create_index_on_dup_float_double_column() |
| teardown_module() |