betodealmeida commented on code in PR #30578:
URL: https://github.com/apache/superset/pull/30578#discussion_r1797052236
##########
superset/sql/parse.py:
##########
@@ -138,24 +139,22 @@ class BaseSQLStatement(Generic[InternalRepresentation]):
"""
Base class for SQL statements.
- The class can be instantiated with a string representation of the script
or, for
- efficiency reasons, with a pre-parsed AST. This is useful with
`sqlglot.parse`,
- which will split a script in multiple already parsed statements.
+ The class should be instantiated with a string representation of the
script and, for
+ efficiency reasons, optionally with a pre-parsed AST. This is useful with
+ `sqlglot.parse`, which will split a script in multiple already parsed
statements.
The `engine` parameters comes from the `engine` attribute in a Superset DB
engine
spec.
"""
def __init__(
self,
- statement: str | InternalRepresentation,
+ statement: str,
engine: str,
+ ast: InternalRepresentation | None = None,
):
- self._parsed: InternalRepresentation = (
- self._parse_statement(statement, engine)
- if isinstance(statement, str)
- else statement
- )
+ self._sql = statement
Review Comment:
Before this PR the `Statement` classes didn't store a reference to the
original SQL, only the AST. So I had to modify it here.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]