|
12 | 12 |
|
13 | 13 | from sqlspec.builder._base import QueryBuilder, SafeQuery |
14 | 14 | from sqlspec.core.result import SQLResult |
| 15 | +from sqlspec.utils.type_guards import has_sqlglot_expression, has_with_method |
15 | 16 |
|
16 | 17 | if TYPE_CHECKING: |
17 | 18 | from sqlspec.builder._column import ColumnExpression |
@@ -436,8 +437,8 @@ def check_constraint(self, condition: Union[str, "ColumnExpression"], name: "Opt |
436 | 437 | self._raise_sql_builder_error("Check constraint must have a condition") |
437 | 438 |
|
438 | 439 | condition_str: str |
439 | | - if hasattr(condition, "sqlglot_expression"): |
440 | | - sqlglot_expr = getattr(condition, "sqlglot_expression", None) |
| 440 | + if has_sqlglot_expression(condition): |
| 441 | + sqlglot_expr = condition.sqlglot_expression |
441 | 442 | condition_str = sqlglot_expr.sql(dialect=self.dialect) if sqlglot_expr else str(condition) |
442 | 443 | else: |
443 | 444 | condition_str = str(condition) |
@@ -970,15 +971,15 @@ def _create_base_expression(self) -> exp.Expression: |
970 | 971 |
|
971 | 972 | if isinstance(self._select_query, SQL): |
972 | 973 | select_expr = self._select_query.expression |
973 | | - select_parameters = getattr(self._select_query, "parameters", None) |
| 974 | + select_parameters = self._select_query.parameters |
974 | 975 | elif isinstance(self._select_query, Select): |
975 | | - select_expr = getattr(self._select_query, "_expression", None) |
976 | | - select_parameters = getattr(self._select_query, "_parameters", None) |
| 976 | + select_expr = self._select_query._expression |
| 977 | + select_parameters = self._select_query._parameters |
977 | 978 |
|
978 | | - with_ctes = getattr(self._select_query, "_with_ctes", {}) |
| 979 | + with_ctes = self._select_query._with_ctes |
979 | 980 | if with_ctes and select_expr and isinstance(select_expr, exp.Select): |
980 | 981 | for alias, cte in with_ctes.items(): |
981 | | - if hasattr(select_expr, "with_"): |
| 982 | + if has_with_method(select_expr): |
982 | 983 | select_expr = select_expr.with_(cte.this, as_=alias, copy=False) |
983 | 984 | elif isinstance(self._select_query, str): |
984 | 985 | select_expr = exp.maybe_parse(self._select_query) |
@@ -1097,10 +1098,10 @@ def _create_base_expression(self) -> exp.Expression: |
1097 | 1098 |
|
1098 | 1099 | if isinstance(self._select_query, SQL): |
1099 | 1100 | select_expr = self._select_query.expression |
1100 | | - select_parameters = getattr(self._select_query, "parameters", None) |
| 1101 | + select_parameters = self._select_query.parameters |
1101 | 1102 | elif isinstance(self._select_query, Select): |
1102 | | - select_expr = getattr(self._select_query, "_expression", None) |
1103 | | - select_parameters = getattr(self._select_query, "_parameters", None) |
| 1103 | + select_expr = self._select_query._expression |
| 1104 | + select_parameters = self._select_query._parameters |
1104 | 1105 | elif isinstance(self._select_query, str): |
1105 | 1106 | select_expr = exp.maybe_parse(self._select_query) |
1106 | 1107 | select_parameters = None |
@@ -1195,10 +1196,10 @@ def _create_base_expression(self) -> exp.Expression: |
1195 | 1196 |
|
1196 | 1197 | if isinstance(self._select_query, SQL): |
1197 | 1198 | select_expr = self._select_query.expression |
1198 | | - select_parameters = getattr(self._select_query, "parameters", None) |
| 1199 | + select_parameters = self._select_query.parameters |
1199 | 1200 | elif isinstance(self._select_query, Select): |
1200 | | - select_expr = getattr(self._select_query, "_expression", None) |
1201 | | - select_parameters = getattr(self._select_query, "_parameters", None) |
| 1201 | + select_expr = self._select_query._expression |
| 1202 | + select_parameters = self._select_query._parameters |
1202 | 1203 | elif isinstance(self._select_query, str): |
1203 | 1204 | select_expr = exp.maybe_parse(self._select_query) |
1204 | 1205 | select_parameters = None |
|
0 commit comments