diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /django/db/models/sql/datastructures.py | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'django/db/models/sql/datastructures.py')
| -rw-r--r-- | django/db/models/sql/datastructures.py | 74 |
1 files changed, 54 insertions, 20 deletions
diff --git a/django/db/models/sql/datastructures.py b/django/db/models/sql/datastructures.py index e08b570350..f398074bf7 100644 --- a/django/db/models/sql/datastructures.py +++ b/django/db/models/sql/datastructures.py @@ -11,6 +11,7 @@ class MultiJoin(Exception): multi-valued join was attempted (if the caller wants to treat that exceptionally). """ + def __init__(self, names_pos, path_with_names): self.level = names_pos # The path travelled, this includes the path to the multijoin. @@ -38,8 +39,17 @@ class Join: - as_sql() - relabeled_clone() """ - def __init__(self, table_name, parent_alias, table_alias, join_type, - join_field, nullable, filtered_relation=None): + + def __init__( + self, + table_name, + parent_alias, + table_alias, + join_type, + join_field, + nullable, + filtered_relation=None, + ): # Join table self.table_name = table_name self.parent_alias = parent_alias @@ -69,35 +79,47 @@ class Join: # Add a join condition for each pair of joining columns. for lhs_col, rhs_col in self.join_cols: - join_conditions.append('%s.%s = %s.%s' % ( - qn(self.parent_alias), - qn2(lhs_col), - qn(self.table_alias), - qn2(rhs_col), - )) + join_conditions.append( + "%s.%s = %s.%s" + % ( + qn(self.parent_alias), + qn2(lhs_col), + qn(self.table_alias), + qn2(rhs_col), + ) + ) # Add a single condition inside parentheses for whatever # get_extra_restriction() returns. - extra_cond = self.join_field.get_extra_restriction(self.table_alias, self.parent_alias) + extra_cond = self.join_field.get_extra_restriction( + self.table_alias, self.parent_alias + ) if extra_cond: extra_sql, extra_params = compiler.compile(extra_cond) - join_conditions.append('(%s)' % extra_sql) + join_conditions.append("(%s)" % extra_sql) params.extend(extra_params) if self.filtered_relation: extra_sql, extra_params = compiler.compile(self.filtered_relation) if extra_sql: - join_conditions.append('(%s)' % extra_sql) + join_conditions.append("(%s)" % extra_sql) params.extend(extra_params) if not join_conditions: # This might be a rel on the other end of an actual declared field. - declared_field = getattr(self.join_field, 'field', self.join_field) + declared_field = getattr(self.join_field, "field", self.join_field) raise ValueError( "Join generated an empty ON clause. %s did not yield either " "joining columns or extra restrictions." % declared_field.__class__ ) - on_clause_sql = ' AND '.join(join_conditions) - alias_str = '' if self.table_alias == self.table_name else (' %s' % self.table_alias) - sql = '%s %s%s ON (%s)' % (self.join_type, qn(self.table_name), alias_str, on_clause_sql) + on_clause_sql = " AND ".join(join_conditions) + alias_str = ( + "" if self.table_alias == self.table_name else (" %s" % self.table_alias) + ) + sql = "%s %s%s ON (%s)" % ( + self.join_type, + qn(self.table_name), + alias_str, + on_clause_sql, + ) return sql, params def relabeled_clone(self, change_map): @@ -105,12 +127,19 @@ class Join: new_table_alias = change_map.get(self.table_alias, self.table_alias) if self.filtered_relation is not None: filtered_relation = self.filtered_relation.clone() - filtered_relation.path = [change_map.get(p, p) for p in self.filtered_relation.path] + filtered_relation.path = [ + change_map.get(p, p) for p in self.filtered_relation.path + ] else: filtered_relation = None return self.__class__( - self.table_name, new_parent_alias, new_table_alias, self.join_type, - self.join_field, self.nullable, filtered_relation=filtered_relation, + self.table_name, + new_parent_alias, + new_table_alias, + self.join_type, + self.join_field, + self.nullable, + filtered_relation=filtered_relation, ) @property @@ -153,6 +182,7 @@ class BaseTable: SELECT * FROM "foo" WHERE somecond could be generated by this class. """ + join_type = None parent_alias = None filtered_relation = None @@ -162,12 +192,16 @@ class BaseTable: self.table_alias = alias def as_sql(self, compiler, connection): - alias_str = '' if self.table_alias == self.table_name else (' %s' % self.table_alias) + alias_str = ( + "" if self.table_alias == self.table_name else (" %s" % self.table_alias) + ) base_sql = compiler.quote_name_unless_alias(self.table_name) return base_sql + alias_str, [] def relabeled_clone(self, change_map): - return self.__class__(self.table_name, change_map.get(self.table_alias, self.table_alias)) + return self.__class__( + self.table_name, change_map.get(self.table_alias, self.table_alias) + ) @property def identity(self): |
