From 66f2b85577237bb45ebe97def3df570765f864da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=9B=BD=E7=92=87?= Date: Thu, 9 Jan 2025 11:33:46 +0800 Subject: [PATCH] fix: metadata option sql --- repo_metadata/view_data_sql.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/repo_metadata/view_data_sql.py b/repo_metadata/view_data_sql.py index fe6e0a49..f09f2b81 100644 --- a/repo_metadata/view_data_sql.py +++ b/repo_metadata/view_data_sql.py @@ -269,7 +269,7 @@ def _get_option_name_by_id(self, option_id): for op in options: if op.get('id') == option_id: return op.get('name') - raise SQLGeneratorOptionInvalidError('option is invalid.') + return '' def op_is(self): if not self.filter_term: @@ -302,7 +302,7 @@ def op_is_any_of(self): if not isinstance(filter_term, list): filter_term = [filter_term, ] filter_term = [self._get_option_name_by_id(f) for f in filter_term] - option_names = ["'%s'" % (op_name) for op_name in filter_term] + option_names = ["'%s'" % (op_name) for op_name in filter_term if op_name] if not option_names: return "" return "`%(column_name)s` in (%(option_names)s)" % ({ @@ -317,7 +317,7 @@ def op_is_none_of(self): if not isinstance(filter_term, list): filter_term = [filter_term, ] filter_term = [self._get_option_name_by_id(f) for f in filter_term] - option_names = ["'%s'" % (op_name) for op_name in filter_term] + option_names = ["'%s'" % (op_name) for op_name in filter_term if op_name] if not option_names: return "" return "`%(column_name)s` not in (%(option_names)s)" % ({ @@ -346,13 +346,13 @@ def _get_option_name_by_id(self, option_id): for op in options: if op.get('id') == option_id: return op.get('name') - raise SQLGeneratorOptionInvalidError('option is invalid') + return '' def op_has_any_of(self): if not self.filter_term: return "" filter_term = [self._get_option_name_by_id(f) for f in self.filter_term] - option_names = ["'%s'" % op_name for op_name in filter_term] + option_names = ["'%s'" % op_name for op_name in filter_term if op_name] option_names_str = ', '.join(option_names) return "`%(column_name)s` in (%(option_names_str)s)" % ({ "column_name": self.column_name, @@ -363,7 +363,7 @@ def op_has_none_of(self): if not self.filter_term: return "" filter_term = [self._get_option_name_by_id(f) for f in self.filter_term] - option_names = ["'%s'" % op_name for op_name in filter_term] + option_names = ["'%s'" % op_name for op_name in filter_term if op_name] option_names_str = ', '.join(option_names) return "`%(column_name)s` has none of (%(option_names_str)s)" % ({ "column_name": self.column_name, @@ -374,7 +374,7 @@ def op_has_all_of(self): if not self.filter_term: return "" filter_term = [self._get_option_name_by_id(f) for f in self.filter_term] - option_names = ["'%s'" % op_name for op_name in filter_term] + option_names = ["'%s'" % op_name for op_name in filter_term if op_name] option_names_str = ', '.join(option_names) return "`%(column_name)s` has all of (%(option_names_str)s)" % ({ "column_name": self.column_name, @@ -385,7 +385,7 @@ def op_is_exactly(self): if not self.filter_term: return "" filter_term = [self._get_option_name_by_id(f) for f in self.filter_term] - option_names = ["'%s'" % op_name for op_name in filter_term] + option_names = ["'%s'" % op_name for op_name in filter_term if op_name] option_names_str = ', '.join(option_names) return "`%(column_name)s` is exactly (%(option_names_str)s)" % ({ "column_name": self.column_name,