alamb opened a new issue #1281: URL: https://github.com/apache/arrow-datafusion/issues/1281
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.** As mentioned on #1266 and https://github.com/apache/arrow-datafusion/pull/1266#pullrequestreview-800597175, 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: 1. Those that can actually be compiled / run as a `ExecutionPlan` (e.g. `LogicalPlan::Select`) 2. 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 ```rust enum ParsedPlan { Query(LogicalPlan), DDL(DDLPlan) } ``` Where `DDLPLan` was like ```rust enum DDLPlan { 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. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
