def do_post_processing( self, project_ids: Sequence[int], query: Query, request_settings: RequestSettings, ) -> None: if not request_settings.get_turbo(): final, exclude_group_ids = get_projects_query_flags( project_ids, self.__replacer_state_name) if not final and exclude_group_ids: # If the number of groups to exclude exceeds our limit, the query # should just use final instead of the exclusion set. max_group_ids_exclude = get_config( "max_group_ids_exclude", settings.REPLACER_MAX_GROUP_IDS_TO_EXCLUDE) if len(exclude_group_ids) > max_group_ids_exclude: query.set_final(True) else: query.add_conditions([(["assumeNotNull", ["group_id"]], "NOT IN", exclude_group_ids)]) query.add_condition_to_ast( not_in_condition( None, FunctionCall(None, "assumeNotNull", (Column(None, "group_id", None), )), [Literal(None, p) for p in exclude_group_ids], )) else: query.set_final(final)
def process_query( self, query: Query, extension_data: ExtensionData, request_settings: RequestSettings, ) -> None: from_date, to_date = self.get_time_limit(extension_data) query.set_granularity(extension_data["granularity"]) query.add_conditions( [ (self.__timestamp_column, ">=", from_date.isoformat()), (self.__timestamp_column, "<", to_date.isoformat()), ] ) query.add_condition_to_ast( binary_condition( None, BooleanFunctions.AND, binary_condition( None, ConditionFunctions.GTE, Column(None, self.__timestamp_column, None), Literal(None, from_date), ), binary_condition( None, ConditionFunctions.LT, Column(None, self.__timestamp_column, None), Literal(None, to_date), ), ) )
def process_query( self, query: Query, extension_data: ExtensionData, request_settings: RequestSettings, ) -> None: organization_id = extension_data["organization"] query.add_conditions([("org_id", "=", organization_id)]) query.add_condition_to_ast( binary_condition( None, ConditionFunctions.EQ, Column(None, "org_id", None), Literal(None, organization_id), ))
def process_query( self, query: Query, extension_data: ExtensionData, request_settings: RequestSettings, ) -> None: project_ids = util.to_list(extension_data["project"]) if project_ids: query.add_conditions([(self.__project_column, "IN", project_ids)]) query.add_condition_to_ast( in_condition( None, Column(None, self.__project_column, None), [Literal(None, p) for p in project_ids], )) request_settings.add_rate_limit( self._get_rate_limit_params(project_ids)) self.do_post_processing(project_ids, query, request_settings)