Robert Hou created DRILL-4883:
---------------------------------
Summary: Drill Explorer returns "SYSTEM ERROR:
UnsupportedOperationException: Unhandled field reference ; a field reference
identifier must not have the form of a qualified name (i.e., with ".").
Key: DRILL-4883
URL: https://issues.apache.org/jira/browse/DRILL-4883
Project: Apache Drill
Issue Type: Bug
Components: Execution - Codegen
Affects Versions: 1.8.0
Environment: Drill Explorer runs in Windows
Reporter: Robert Hou
When Drill Explorer submits this query, it returns an error regarding
favorites.color:
select age,`favorites.color` from
`dfs`.`drillTestDir`.`./json_storage/employeeNestedArrayAndObject.json`
The error is:
ERROR [HY000] [MapR][Drill] (1040) Drill failed to execute the query: select
age,`favorites.color` from
`dfs`.`drillTestDir`.`./json_storage/employeeNestedArrayAndObject.json`
[30027]Query execution error. Details:[
SYSTEM ERROR: UnsupportedOperationException: Unhandled field reference
"favorites.color"; a field reference identifier must not have the form of a
qualified name (i.e., with ".").
This query can be executed by sqlline (note that the format of the query is
slightly different for sqlline and Drill Explorer).
select age,`favorites.color` from
`json_storage/employeeNestedArrayAndObject.json`;
The physical plan for the query when using sqlline is different from the
physical plan when using Drill Explorer. Here is the plan when using sqlline:
00-00 Screen : rowType = RecordType(ANY age, ANY favorites.color): rowcount
= 1.0, cumulative cost = {0.1 rows, 0.1 cpu, 0.0 io, 0.0 network, 0.0 memory},
id = 19699870
00-01 Project(age=[$0], favorites.color=[$1]) : rowType = RecordType(ANY
age, ANY favorites.color): rowcount = 1.0, cumulative cost = {0.0 rows, 0.0
cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 19699869
00-02 Scan(groupscan=[EasyGroupScan
[selectionRoot=maprfs:/drill/testdata/json_storage/employeeNestedArrayAndObject.json,
numFiles=1, columns=[`age`, `favorites.color`],
files=[maprfs:///drill/testdata/json_storage/employeeNestedArrayAndObject.json]]])
: rowType = RecordType(ANY age, ANY favorites.color): rowcount = 1.0,
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id =
19699868
The physical plan when using Drill Explorer is:
00-00 Screen : rowType = RecordType(ANY age, ANY favorites.color): rowcount
= 1.0, cumulative cost = {1.1 rows, 1.1 cpu, 0.0 io, 0.0 network, 0.0 memory},
id = 19675621
00-01 ComplexToJson : rowType = RecordType(ANY age, ANY favorites.color):
rowcount = 1.0, cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io, 0.0 network, 0.0
memory}, id = 19675620
00-02 Project(age=[$0], favorites.color=[$1]) : rowType = RecordType(ANY
age, ANY favorites.color): rowcount = 1.0, cumulative cost = {0.0 rows, 0.0
cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 19675619
00-03 Scan(groupscan=[EasyGroupScan
[selectionRoot=maprfs:/drill/testdata/json_storage/employeeNestedArrayAndObject.json,
numFiles=1, columns=[`age`, `favorites.color`],
files=[maprfs:///drill/testdata/json_storage/employeeNestedArrayAndObject.json]]])
: rowType = RecordType(ANY age, ANY favorites.color): rowcount = 1.0,
cumulative cost = {0.0 rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id =
19675618
Drill Explorer has an extra ComplexToJson operator that may have a problem.
Here is the data file used:
{
"first": "John",
"last": "Doe",
"age": 39,
"sex": "M",
"salary": 70000,
"registered": true,
"interests": [ "Reading", "Mountain Biking", "Hacking" ],
"favorites": {
"color": "Blue",
"sport": "Soccer",
"food": "Spaghetti"
}
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)