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