|
1 | 1 | from __future__ import annotations |
2 | 2 | from collections import OrderedDict |
3 | | -from itertools import groupby |
4 | 3 | import typing as t |
5 | 4 |
|
6 | 5 | from piccolo.query.base import Query |
7 | | -from piccolo.columns import Column, ForeignKey |
| 6 | +from piccolo.columns import Column |
8 | 7 | from piccolo.query.mixins import ( |
9 | 8 | ColumnsMixin, |
10 | 9 | CountMixin, |
@@ -77,34 +76,32 @@ def check_valid_call_chain(self, keys: t.List[Column]) -> bool: |
77 | 76 |
|
78 | 77 | @property |
79 | 78 | def querystring(self) -> QueryString: |
80 | | - joins: t.List[str] = [] |
81 | | - |
82 | | - if len(self.selected_columns) == 0: |
83 | | - self.selected_columns = self.table.Meta.columns |
84 | | - |
85 | | - column_names: t.List[str] = [ |
86 | | - c.get_full_name() for c in self.selected_columns |
87 | | - ] |
88 | | - columns_str = ", ".join(column_names) |
89 | | - |
90 | | - ####################################################################### |
91 | 79 | # JOIN |
92 | | - |
93 | 80 | self.check_valid_call_chain(self.selected_columns) |
94 | 81 |
|
95 | 82 | select_joins = self.get_joins(self.selected_columns) |
96 | 83 | where_joins = self.get_joins(self.get_where_columns()) |
97 | 84 | order_by_joins = self.get_joins(self.get_order_by_columns()) |
98 | 85 |
|
99 | 86 | # Combine all joins, and remove duplicates |
100 | | - joins = list( |
| 87 | + joins: t.List[str] = list( |
101 | 88 | OrderedDict.fromkeys( |
102 | 89 | select_joins + where_joins + order_by_joins |
103 | 90 | ) |
104 | 91 | ) |
105 | 92 |
|
106 | 93 | ####################################################################### |
107 | 94 |
|
| 95 | + if len(self.selected_columns) == 0: |
| 96 | + self.selected_columns = self.table.Meta.columns |
| 97 | + |
| 98 | + column_names: t.List[str] = [ |
| 99 | + c.get_full_name() for c in self.selected_columns |
| 100 | + ] |
| 101 | + columns_str = ", ".join(column_names) |
| 102 | + |
| 103 | + ####################################################################### |
| 104 | + |
108 | 105 | select = "SELECT DISTINCT" if self.distinct else "SELECT" |
109 | 106 | query = f'{select} {columns_str} FROM {self.table.Meta.tablename}' |
110 | 107 |
|
|
0 commit comments