Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.10.0
-
None
Description
Drill can operate in embedded mode. In this mode, no storage plugin definitions other than the defaults may be present. In particular, when using the Drill test framework, only those storage plugins defined in the Drill code are available.
Yet, Drill checks for the existence of the dfs.tmp plugin definition (as named by the drill.exec.default_temporary_workspace parameter. Because this plugin is not defined, an exception occurs:
org.apache.drill.common.exceptions.UserException: PARSE ERROR: Unable to create or drop tables/views. Schema [dfs.tmp] is immutable. [Error Id: 792d4e5d-3f31-4f38-8bb4-d108f1a808f6 ] at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:544) at org.apache.drill.exec.planner.sql.SchemaUtilites.resolveToMutableDrillSchema(SchemaUtilites.java:184) at org.apache.drill.exec.planner.sql.SchemaUtilites.getTemporaryWorkspace(SchemaUtilites.java:201) at org.apache.drill.exec.server.Drillbit.validateTemporaryWorkspace(Drillbit.java:264) at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:135) at org.apache.drill.test.ClusterFixture.startDrillbits(ClusterFixture.java:207) ...
Expected that either a configuration would exist that would use the default /tmp/drill location, or that the check for drill.tmp would be deferred until it is actually required (such as when executing a CTTAS statement.)
It seemed that the test framework must be altered to work around this problem by defining the necessary workspace. Unfortunately, the Drillbit must start before we can define the workspace needed for the Drillbit to start. So, this workaround is not possible.
Further, users of the embedded Drillbit may not know to do this configuration.
Attachments
Issue Links
- links to