Skip to content

AST transformation for Selection with SubQueries

Нам необходима трансформация AST во frontend, которая будет превращать подзапросы из фильтра Selection узла в потомков. Т.е. select * from t1 where a in (select c from t2 where d = 1);

AST до трансформации

selection
    - scan t1
    - filter
        - in
            - (a)
            - subquery
                - projection: (c)
                    - selection
                        - scan t2
                        - filter
                            - eq
                                - (d)
                                - (1)

AST после трансформации

selection
    - scan t1
    - subquery
        - projection: (c)
            - selection
                - scan t2
                - filter
                    - eq
                        - (d)
                        - (1)
    - filter
        - in
            - (a)
            - (c)
Edited by Alexey Protsenko