majian1998 opened a new pull request, #13625:
URL: https://github.com/apache/iceberg/pull/13625

   Spark SQL employs a chain of parsers to convert SQL text into logical plans 
for execution. Many extensions (such as Iceberg, Paimon, etc.) implement their 
own SQL parsers by wrapping the underlying parser with a delegate. This design 
allows each extension to support custom syntax, while passing unhandled SQL to 
the next parser in the chain.
   
   Previously, the Spark/Iceberg logic only checked the outer-most parser 
instance to determine if it was an ExtendedParser. However, in environments 
where multiple extensions are stacked (for example, when the Paimon parser 
delegates to the Iceberg parser), this check fails because the top-level parser 
is no longer an instance of ExtendedParser. Consequently, features that rely on 
Iceberg's parser capabilities (such as the custom parseSortOrder logic) would 
not function correctly in these scenarios.
   
   This PR improves the detection logic by recursively unwrapping delegate 
parsers until an ExtendedParser instance is found. This change ensures 
compatibility across multiple parser extensions and improves robustness when 
integrating with complex Spark SQL extension chains.
   
   Related issue: https://github.com/apache/iceberg/issues/8004
   
   I believe this change addresses the above issue.


-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to