Skip to content

fix: visit expressions in macro, assertion and export statement output - #2663

Merged
manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:fix/structured-statement-deparsing
Sep 21, 2026
Merged

manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:fix/structured-statement-deparsing

Conversation

@minleejae

Copy link
Copy Markdown
Contributor

StatementDeParser currently bypasses its configured visitors when emitting CREATE MACRO, ASSERT and EXPORT DATA. For example, a custom ExpressionDeParser that rewrites numeric literals sees neither a macro's default/body nor the SELECT inside EXPORT DATA, even though these are already structured AST nodes.

Add renderer overloads to the statements' appendTo methods and connect them to the configured expression/select visitors. Existing appendTo/toString methods reuse the same punctuation. This covers macro parameter defaults, scalar/table bodies, ASSERT conditions/descriptions and EXPORT options/queries, including CTEs and UNIONs.

This is an output traversal fix for existing ASTs. The regression tests assert which values are visited and the rewritten SQL, alongside default-output round trips. BigQuery and DuckDB server execution was not performed.

References: DuckDB CREATE MACRO, BigQuery ASSERT, EXPORT DATA.

Validation:

  • Full Gradle check passed on Java 17, including grammar ambiguity, formatting, static analysis, coverage and the full test suite. JUnit XML totals: 7817 tests, 0 failures/errors, 25 skipped.

@manticore-projects
manticore-projects merged commit 5004ab4 into JSQLParser:master Sep 21, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants