You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As mentioned on #1266 and #1266 (review), as we add more capabilities to DataFusion like CREATE TABLE AS SELECT and DROP TABLE it seems like there are now really two types of LogicalPlan variants:
Those that can actually be compiled / run as a ExecutionPlan (e.g. LogicalPlan::Select)
Those that must effectively be "interpreted" in the DataFrame (e.g. CreateTable, DropTable, etc)
Depending on the usecase, some DataFusion users will want to support the built in DDL (CreateTable, etc) and smoe will not. For example CREATE EXTERNAL TABLE could easily be a security hole for systems that want to use Datafusion to provide a SQL read-only access to their data. I worried about such a problem in IOx recently -- see https://github.com/influxdata/influxdb_iox/pull/3051
It would be great to split up the types of plans that come out of the planner so users of DataFusion (such as IOx) could be better sure that the DDL commands are not executed (unless they want the to be).
Describe the solution you'd like
Perhaps the SQLParser could produce something like
enumParsedPlan{Query(LogicalPlan),DDL(DDLPlan)}
Where DDLPLan was like
enumDDLPlan{CreateExternalTable{...}CreateMemoryTable{..},DropTable{..}
...
}**Describe alternatives you've considered**A clear and concise description of any alternative solutions or features you've considered.**Additional context**Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As mentioned on #1266 and #1266 (review), as we add more capabilities to DataFusion like
CREATE TABLE AS SELECT
andDROP TABLE
it seems like there are now really two types ofLogicalPlan
variants:ExecutionPlan
(e.g.LogicalPlan::Select
)DataFrame
(e.g.CreateTable
,DropTable
, etc)Depending on the usecase, some DataFusion users will want to support the built in DDL (
CreateTable
, etc) and smoe will not. For exampleCREATE EXTERNAL TABLE
could easily be a security hole for systems that want to use Datafusion to provide a SQL read-only access to their data. I worried about such a problem in IOx recently -- see https://github.com/influxdata/influxdb_iox/pull/3051It would be great to split up the types of plans that come out of the planner so users of DataFusion (such as IOx) could be better sure that the DDL commands are not executed (unless they want the to be).
Describe the solution you'd like
Perhaps the SQLParser could produce something like
Where
DDLPLan
was likeThe text was updated successfully, but these errors were encountered: