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()
 | 
