docs: def _fix_slicing_order(self, outer_fields, inner_select, order, inner_table_name):
          """
          Apply any necessary fixes to the outer_fields, inner_select, and order
          strings due to slicing.
          """
          # Using ROW_NUMBER requires an ordering
          if order is None:
              meta = self.query.get_meta()
              column = meta.pk.db_column or meta.pk.get_attname()
              order = '{0}.{1} ASC'.format(
                  inner_table_name,
                  self.connection.ops.quote_name(column),
              )
          else:
              alias_id = 0
              # remap order for injected subselect
              new_order = []
              for x in order.split(','):
                  # find the ordering direction
                  m = _re_find_order_direction.search(x)
                  if m:
                      direction = m.groups()[0]
                  else:
                      direction = 'ASC'
                  # remove the ordering direction
                  x = _re_find_order_direction.sub('', x)
                  # remove any namespacing or table name from the column name
                  col = x.rsplit('.', 1)[-1]
                  # Is the ordering column missing from the inner select?
                  # 'inner_select' contains the full query without the leading 'SELECT '.
                  # It's possible that this can get a false hit if the ordering
                  # column is used in the WHERE while not being in the SELECT. It's
                  # not worth the complexity to properly handle that edge case.
                  if x not in inner_select:
                      # Ordering requires the column to be selected by the inner select
                      alias_id += 1
                      # alias column name
                      col = '{left_sql_quote}{0}___o{1}{right_sql_quote}'.format(
                          col.strip(self.connection.ops.left_sql_quote+self.connection.ops.right_sql_quote),
                          alias_id,
                          left_sql_quote=self.connection.ops.left_sql_quote,
                          right_sql_quote=self.connection.ops.right_sql_quote,
                      )
                      # add alias to inner_select
                      inner_select = '({0}) AS {1}, {2}'.format(x, col, inner_select)
                  new_order.append('{0}.{1} {2}'.format(inner_table_name, col, direction))
              order = ', '.join(new_order)
          return outer_fields, inner_select, order