Github user dongjoon-hyun commented on the issue:

    https://github.com/apache/spark/pull/14397
  
    Thank you for review, @hvanhovell .
    
    For the recursive CTE queries, traditional DBMS supports optional 
`RECURSIVE` keyword which computing **closures**, i.e., it iterates the 
subquery until the result converge. For example, PostgreSQL, MSSQL, SQLite 
supports `WITH RECURSIVE` syntax officially.
    
    For the overlap of `ResolveRelations` rule, this rule calls 
`lookupRelation` to check the name conflict between the base relations and 
CTEs. As a side effect, it resolves the relations, too. Here is the reasons.
      - To check the conflict, this is the only simplest way.
      - For the performance, this patch only call one `lookupRelation` for 
`UnresolvedRelation`.
        - `ResolveRelations` rule do not try resolve again and will not 
complain about that.
      - The remaining general and exceptional rules like file-based datasource 
should be in `ResolveRelations`. We can add more datasources there, not here.
    
    For Hive, the recursive queries and `RECURSIVE` syntax are not supported.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to