Skip to content
Snippets Groups Projects
  1. Sep 02, 2019
    • Andreas Brandl's avatar
      Replace indexes for counting active users · c3c8e300
      Andreas Brandl authored
      This adjusts the partial condition for an index. The index is intended
      to be used when counting active users with `ghost IS NOT TRUE AND
      bot_type IS NULL`.
      
      With the current index, this wasn't working as the partial condition
      didn't match the query: `ghost <> TRUE` is not semantically equivalent
      to `ghost IS NOT TRUE` (null semantics).
      
      The reason we add an index particularly intended for EE is that the EE
      query is going to have the additional part `AND bot_type IS NULL`
      whereas the CE query doesn't. Logically, it'd be enough to have an index
      for `ghost IS NOT TRUE`. However, on GitLab.com, the query planner makes
      poor choices when the additional `AND bot_type IS NULL` part is present:
      It goes for the index on `bot_type` and doesn't use the partial index.
      
      Note the existing index isn't being used at all according to GitLab.com
      index statistics. Hence we can first remove it and don't have to worry
      about the window of time without an index.
      
      Relates to https://gitlab.com/gitlab-org/gitlab-ce/issues/66770
      Unverified
      c3c8e300
Loading