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)

Reply via email to