Skip to content

Support structured XMLFOREST arguments with aliases - #2619

Open
minleejae wants to merge 1 commit into
JSQLParser:masterfrom
minleejae:feat/xmlforest-aliased-arguments
Open

Support structured XMLFOREST arguments with aliases#2619
minleejae wants to merge 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.

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.

1 participant