Github user mgaido91 commented on the issue:

    https://github.com/apache/spark/pull/21403
  
    I am encountering big issues in enforcing the behavior we mentioned. The 
problem is that we cannot really distinguish the cases:
     - `... (a, b) in (select ...)`
     - `... from (select (a, b) as x ...) where x in (select ...)`
    
    So the problem is that we don't know if we have a `CreateNamedStruct` 
exactly there or if the `Optimizer` puts it somehow there. It may be needed to 
change the parsing logic for this and to revisit the whole `In` structure. I 
mean, we have to parse not a single value but a list of values in the outer 
operator.
    
    And as well we cannot really distinguish:
     - `... (a, b) in (select (a, b) from ...)`
     - `... (a, b) in (select a from (select (a, b) from ...))`
    
    This is a bit trickier indeed.
    
    What do you think?


---

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

Reply via email to