def execute_query(self): self.query_result, self.meta = self.query_builder.build_query().execute_with_meta() dct = utils.tuple_to_dict_with_meta(self.query_result, self.meta) self.main_win.set_data_to_table(dct) self.key_sequence.append('a')
def set_tmp_data(self, data): if self.view_type == ViewTypeLabels.DEFAULT_SELECT: # TODO rewrite without index result, self.meta = self.query_builder.select_all( data.get(data.curselection()[0])[0]).execute_with_meta() dct = utils.tuple_to_dict_with_meta(result, self.meta) self.main_win.set_data_to_table(dct) self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.FROM_SELECT: tmp = [] for i in data.curselection(): tmp.append(data.get(i)[0]) self.query_builder.set_from(tmp) self.main_win.label_value = self.query_builder.get_query_for_label() self.main_win.window.update_idletasks() return if self.view_type == ViewTypeLabels.DESC_TABLE: result, self.meta = self.query_builder.desc_table( data.get(data.curselection()[0])[0]).execute_with_meta() dct = utils.tuple_to_dict_with_meta(result, self.meta) self.main_win.set_data_to_table(dct) self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.ORDER_BY: self.sort_column = data.get(data.curselection()[0]) self.main_win.sort_table(self.sort_column) return if self.view_type == ViewTypeLabels.PURE_QUERY: result, self.meta = self.query_builder.set_query(data).execute_with_meta() dct = utils.tuple_to_dict_with_meta(result, self.meta) self.main_win.set_data_to_table(dct) self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.SELECT_SELECT: tmp = [] for i in data.curselection(): tmp.append(data.get(i)) self.query_builder.set_select(tmp) self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.LIMIT_SELECT: self.query_builder.set_limit(data) return if self.view_type == ViewTypeLabels.GROUP_BY: tmp = [] for i in data.curselection(): tmp.append(data.get(i)) self.query_builder.set_group_by(tmp) # TODO without slices select_tpl = self.query_builder.select_part[7:].split(', ') diff = utils.group_select_diff(tmp, select_tpl) for i in diff: if i in select_tpl: select_tpl.remove(i) self.query_builder.set_select(select_tpl) if len(diff) > 0: view = input_window.InputWindow(self, manual_input=False) view.add(', '.join(diff)) view.calculate_string_gaps() self.view_type = ViewTypeLabels.AGGREGATE self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.WHERE_SELECT: tmp = [] for i in data.curselection(): tmp.append(data.get(i)) where_str = '' for i in tmp: where_str += i + ' = and ' where_str = where_str[:-5] if len(where_str) > 0: view = input_window.InputWindow(self, manual_input=True) view.add(where_str) view.calculate_string_gaps() self.view_type = ViewTypeLabels.WHERE_SELECT_SUBMIT self.main_win.label_value = self.query_builder.get_query_for_label() return if self.view_type == ViewTypeLabels.WHERE_SELECT_SUBMIT: self.query_builder.set_where(data) return if self.view_type == ViewTypeLabels.AGGREGATE: self.query_builder.select_part = self.query_builder.select_part + ', ' + data return
def show_tables(self): result, meta = self.query_builder.show_tables().execute_with_meta() self.main_win.set_data_to_table(utils.tuple_to_dict_with_meta(result, meta)) self.key_sequence.append('s')