Exemple #1
0
 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)
Exemple #2
0
 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),
         ))
Exemple #4
0
    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)