Skip to content

Add SQL query planning support for simple/nested subqueries #2238

Closed
@andygrove

Description

@andygrove

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As a user of the DataFusion library for SQL parsing and logical query planning, I would like to be able to produce a valid logical plan from a SQL query containing a simple nested subquery instead of failing with Unsupported ast node Query.

Example query: SELECT name FROM (SELECT * FROM t2 WHERE id > 1) WHERE id < 4

Describe the solution you'd like
The SQL should parse without error and produce a valid logical plan.

For reference, here is an example query and logical plan from Apache Spark:

scala> val df = spark.sql("SELECT name FROM (SELECT * FROM t2 WHERE id > 1) WHERE id < 4")
df: org.apache.spark.sql.DataFrame = [id: int, name: string]

scala> df.queryExecution.logical 
res5: org.apache.spark.sql.catalyst.plans.logical.LogicalPlan =
'Project ['name]
+- 'Filter ('id < 4)
   +- 'SubqueryAlias __auto_generated_subquery_name
      +- 'Project [*]
         +- 'Filter ('id > 1)
            +- 'UnresolvedRelation [t2], [], false

Describe alternatives you've considered
None

Additional context
This does not cover optimization or physical plan. We will need to file follow-on issues for those.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions