Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
2.0.0
-
None
-
None
Description
We currently handle all SQL query generation in a single class (SQLBuilder). This has many disadvantages:
1. It is not extensible, i.e. it is not possible to introduce a new logical operator, even just for experimentation purpose, without modifying Spark.
2. It is very fragile. When we introduce a new logical operator, it is very likely that we forget to update SQLBuilder and then the use of that new logical operator would fail view definition.
We should move the SQL definition part into logical operators themselves, so this becomes more robust and scalable.
Attachments
Issue Links
- is related to
-
SPARK-11012 Canonicalize view definitions
- Resolved
- relates to
-
SPARK-16590 Improve LogicalPlanToSQLSuite to check generated SQL directly
- Resolved
-
SPARK-18209 More robust view canonicalization without full SQL expansion
- Resolved
1.
|
Add subquery SQL building tests to LogicalPlanToSQLSuite | Resolved | Dongjoon Hyun | |
2.
|
Improve LogicalPlanToSQLSuite to check generated SQL directly | Resolved | Dongjoon Hyun | |
3.
|
Generate stable SQLs in SQLBuilder | Resolved | Dongjoon Hyun | |
4.
|
Add `sql` function to LogicalPlan and `NonSQLPlan` trait | Closed | Unassigned |