(self, table_exprs, required_type=None)
| 1131 | return from_clause |
| 1132 | |
| 1133 | def _create_table_expr(self, table_exprs, required_type=None): |
| 1134 | if not table_exprs: |
| 1135 | raise Exception('At least one table_expr is required') |
| 1136 | if self.allow_more_nested_queries and self.profile.use_inline_view(): |
| 1137 | return self._create_inline_view(table_exprs, required_type=required_type) |
| 1138 | if required_type: |
| 1139 | candidiate_table_exprs = TableExprList() |
| 1140 | for table_expr in table_exprs: |
| 1141 | for col in table_expr.cols: |
| 1142 | if issubclass(col.type, required_type): |
| 1143 | candidiate_table_exprs.append(table_expr) |
| 1144 | break |
| 1145 | if not candidiate_table_exprs: |
| 1146 | raise Exception('No tables have a column with the required data type') |
| 1147 | table_exprs = candidiate_table_exprs |
| 1148 | return deepcopy(self.profile.choose_table(table_exprs)) |
| 1149 | |
| 1150 | def _create_inline_view(self, table_exprs, required_type=None): |
| 1151 | return InlineView(self.generate_statement( |
no test coverage detected