119 lines
4.0 KiB
Python
119 lines
4.0 KiB
Python
class Config(object):
|
|
'''
|
|
user input info
|
|
'''
|
|
################
|
|
operators = {
|
|
'array': 'array',
|
|
'material': 'material',
|
|
'mergegroupby': 'mergegroupby',
|
|
'merge': 'merge',
|
|
'hash': 'hash',
|
|
'miss': 'miss',
|
|
'nl': 'nl',
|
|
'rowstore': 'rowstore',
|
|
'sort_add': 'sort_add',
|
|
'sort': 'sort',
|
|
'sort_with_type': 'sort_with_type'
|
|
}
|
|
types_to_test = {'bigint': 'bigint', 'double': 'double', 'float': 'float', 'timestamp': 'timestamp',
|
|
'number': 'number(20,3)', 'v32': 'varchar(32)', 'v64': 'varchar(64)', 'v128': 'varchar(128)'}
|
|
config_map_dict = {
|
|
'is_printing_help_c': ' -h ',
|
|
'schema_file_c': ' -s ',
|
|
'row_count_c': ' -r ',
|
|
'left_row_count_c': ' -r ',
|
|
'right_row_count_c': ' -r ',
|
|
'sort_col_count_c': ' -c ',
|
|
'input_projector_count_c': ' -p ',
|
|
'left_pj_c': ' -p ',
|
|
'right_pj_c': ' -p ',
|
|
'is_printing_output_c': ' -O ',
|
|
'equal_cond_count_c': ' -e ',
|
|
'other_cond_count_c': ' -o ',
|
|
'u_to_test_op_c': ' -t ',
|
|
'u_to_test_type_c': '',
|
|
'is_binding_cpu_c': ' -B ',
|
|
'seed_min_c': ' -Z ',
|
|
'left_min_c': ' -Z ',
|
|
'right_min_c': ' -Z ',
|
|
'seed_max_c': ' -X ',
|
|
'left_max_c': '-X',
|
|
'right_max_c': '-X',
|
|
'seed_step_c': ' -C ',
|
|
'left_seed_step_c': ' -C ',
|
|
'right_seed_step_c': ' -C ',
|
|
'seed_step_len_c': ' -V ',
|
|
'left_seed_step_len_c': ' -V ',
|
|
'right_seed_step_len_c': ' -V ',
|
|
'limit_c': ' -L ',
|
|
'is_random_c': ' -R ',
|
|
'is_experimental_c': ' -K ',
|
|
'sleep_before_test_c': ' -S ',
|
|
'add_sort_column_c': ' -T ',
|
|
'info_type_c': ' -i ',
|
|
'common_prefix_len_c': ' -l ',
|
|
'is_not_running_as_unittest_c': ' -G '
|
|
}
|
|
|
|
def __init__(self):
|
|
# config info based on cost_model_util.cpp
|
|
self.is_printing_help_c = False
|
|
self.schema_file_c = None
|
|
self.row_count_c = None
|
|
self.left_row_count_c = None
|
|
self.right_row_count_c = None
|
|
self.sort_col_count_c = None
|
|
self.input_projector_count_c = None
|
|
self.left_pj = None
|
|
self.right_pj = None
|
|
self.is_printing_output_c = False
|
|
self.equal_cond_count_c = None
|
|
self.other_cond_count_c = None
|
|
self.u_to_test_op_c = None
|
|
self.u_to_test_type_c = None # special
|
|
self.is_binding_cpu_c = False
|
|
self.seed_min_c = None
|
|
self.left_min_c = None
|
|
self.rigt_min_c = None
|
|
self.seed_max_c = None
|
|
self.left_max_c = None
|
|
self.right_max_c = None
|
|
self.seed_step_c = None
|
|
self.left_seed_step_c = None
|
|
self.right_seed_step_c = None
|
|
self.seed_step_len_c = None
|
|
self.left_seed_step_len_c = None
|
|
self.right_seed_step_len_c = None
|
|
self.limit_c = None
|
|
self.is_random_c = False
|
|
self.is_experimental_c = False
|
|
self.sleep_before_test_c = None
|
|
self.add_sort_column_c = None
|
|
self.info_type_c = None
|
|
self.common_prefix_len_c = None
|
|
self.is_not_running_as_unittest_c = False
|
|
|
|
def gen_params(self):
|
|
if self.is_printing_help_c:
|
|
return " -h "
|
|
else:
|
|
args = " "
|
|
for key in filter(lambda aname: aname.endswith('_c') and aname != 'is_printing_help_c', dir(self)):
|
|
val = self.__getattribute__(key)
|
|
# MyLogger.info("config object %s %s", key, val)
|
|
if key.startswith('is'):
|
|
if val is True:
|
|
args = args + Config.config_map_dict[key]
|
|
else:
|
|
if val is not None:
|
|
args = args + Config.config_map_dict[key]
|
|
args = args + " " + str(val) + " "
|
|
return args
|
|
|
|
|
|
if __name__ == '__main__':
|
|
conf = Config()
|
|
conf.is_printing_help_c = True
|
|
print conf.gen_params()
|