def change_aliases(self, change_map):
        assert set(change_map.keys()).intersection(set(change_map.values())) == set()

        def relabel_column(col):
            if isinstance(col, (list, tuple)):
                old_alias = col[0]
                return (change_map.get(old_alias, old_alias), col[1])
            else:
                return col.relabeled_clone(change_map)
        # 1. Update references in "select" (normal columns plus aliases),
        # "group by" and "where".
        self.where.relabel_aliases(change_map)
        if isinstance(self.group_by, list):
            self.group_by = [relabel_column(col) for col in self.group_by]
        self.select = [col.relabeled_clone(change_map) for col in self.select]
        if self._annotations:
            self._annotations = OrderedDict(
                (key, relabel_column(col)) for key, col in self._annotations.items())

        # 2. Rename the alias in the internal table/alias datastructures.
        for old_alias, new_alias in six.iteritems(change_map):
            if old_alias not in self.alias_map:
                continue
            alias_data = self.alias_map[old_alias].relabeled_clone(change_map)
            self.alias_map[new_alias] = alias_data
            self.alias_refcount[new_alias] = self.alias_refcount[old_alias]
            del self.alias_refcount[old_alias]
            del self.alias_map[old_alias]

            table_aliases = self.table_map[alias_data.table_name]
            for pos, alias in enumerate(table_aliases):
                if alias == old_alias:
                    table_aliases[pos] = new_alias
                    break
            for pos, alias in enumerate(self.tables):
                if alias == old_alias:
                    self.tables[pos] = new_alias
                    break
        self.external_aliases = {change_map.get(alias, alias)
                                 for alias in self.external_aliases}
Changes the aliases in change_map (which maps old-alias -> new-alias),
dataset/ETHPy150Open django/django/django/db/models/sql/query.py/Query.change_aliases