Skip to content

Support structured XMLFOREST arguments with aliases - #2619

Merged
manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:feat/xmlforest-aliased-arguments
Sep 13, 2026
Merged

Support structured XMLFOREST arguments with aliases#2619
manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:feat/xmlforest-aliased-arguments

Conversation

@minleejae

Copy link
Copy Markdown
Contributor

XMLFOREST arguments with aliases, such as XMLFOREST(customer.name AS "Name", balance AS "Balance"), currently fail to parse. Jailer works around this by replacing unsupported XML expressions during SQL analysis (pinned consumer code). Preserving the original expressions and aliases lets consumers inspect and rewrite these queries without discarding their structure.

This change implements the XMLFOREST argument syntax using the existing Function parameter list and a reusable AliasedExpression. Unaliased arguments retain their existing expression types. Default visitor forwarding preserves compatibility with existing visitors, and a shared renderer keeps model output and custom expression deparsers consistent. Table discovery also traverses aliased arguments, including nested subqueries.

Validation: the full Java 17 Gradle check passes, including the zero-conflict JavaCC grammar gate, tests, formatting, Checkstyle, PMD, and SpotBugs. Regression tests cover mixed and nested arguments, quoted aliases, AST mutation, visitor context, custom rendering, table discovery, validation, round trips, legacy XML forms, and rejection of malformed aliases.

@manticore-projects
manticore-projects merged commit 73bd3c4 into JSQLParser:master Sep 13, 2026
10 checks passed
@manticore-projects

Copy link
Copy Markdown
Contributor

Thank you much!

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