[
https://issues.apache.org/jira/browse/DRILL-1718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14213446#comment-14213446
]
Steven Phillips commented on DRILL-1718:
----------------------------------------
There is a bug here, and it's that Drill is trying to do an implicit cast from
RepeatedVarChar to VarChar, and it tries to use the VarChar -> VarChar cast
function, which is invalid. This results in invalid runtime generated code,
which fails to compile, and gives that arcane error message.
What should have happened is Drill should have realized that we cannot do a
comparison from repeated varchar to varchar, and returned an error message
stating such. That would be a much more useful error message for the user.
> FLATTEN query returns "buffer is neither a method, a field, nor a member
> class..." error
> ----------------------------------------------------------------------------------------
>
> Key: DRILL-1718
> URL: https://issues.apache.org/jira/browse/DRILL-1718
> Project: Apache Drill
> Issue Type: Bug
> Components: Functions - Drill
> Affects Versions: 0.7.0
> Environment: 0.7.0 snapshot on MacOSX in embedded mode
> Reporter: Bob Rumsby
>
> A query with a FLATTEN function and a WHERE clause constraint on the
> flattened column fails.
> 0: jdbc:drill:zk=local> select name, flatten(categories) as categories from
> dfs.yelp.`yelp_academic_dataset_business.json` where categories='Pizza';
> Query failed: Failure while running fragment., Line 68, Column 95: "buffer"
> is neither a method, a field, nor a member class of
> "org.apache.drill.exec.expr.holders.RepeatedVarCharHolder" [
> 67016271-7266-4438-9529-d8330b1e39a4 on 10.250.0.28:31010 ]
> Error: exception while executing query: Failure while executing query.
> (state=,code=0)
> 0: jdbc:drill:zk=local> explain plan for select name, flatten(categories) as
> categories from dfs.yelp.`yelp_academic_dataset_business.json` where
> categories='Pizza';
> +------------+------------+
> | text | json |
> +------------+------------+
> | 00-00 Screen
> 00-01 Project(name=[$1], categories=[$2])
> 00-02 Flatten(flattenField=[$2])
> 00-03 Project(EXPR$0=[$0], EXPR$1=[$1], EXPR$2=[$0])
> 00-04 SelectionVectorRemover
> 00-05 Filter(condition=[=($0, 'Pizza')])
> 00-06 Scan(groupscan=[EasyGroupScan
> [selectionRoot=/Users/brumsby/drill/apache-drill-0.7.0-incubating-SNAPSHOT/yelpdata/yelp_academic_dataset_business.json,
> numFiles=1, columns=[`categories`, `name`],
> files=[file:/Users/brumsby/drill/apache-drill-0.7.0-incubating-SNAPSHOT/yelpdata/yelp_academic_dataset_business.json]]])
> | {
> "head" : {
> "version" : 1,
> "generator" : {
> "type" : "ExplainHandler",
> "info" : ""
> },
> "type" : "APACHE_DRILL_PHYSICAL",
> "options" : [ ],
> "queue" : 0,
> "resultMode" : "EXEC"
> },
> "graph" : [ {
> "pop" : "fs-scan",
> "@id" : 6,
> "files" : [
> "file:/Users/brumsby/drill/apache-drill-0.7.0-incubating-SNAPSHOT/yelpdata/yelp_academic_dataset_business.json"
> ],
> "storage" : {
> "type" : "file",
> "enabled" : true,
> "connection" : "file:///",
> "workspaces" : {
> "root" : {
> "location" : "/",
> "writable" : false,
> "defaultInputFormat" : null
> },
> "yelp" : {
> "location" :
> "/Users/brumsby/drill/apache-drill-0.7.0-incubating-SNAPSHOT/yelpdata",
> "writable" : true,
> "defaultInputFormat" : null
> }
> },
> "formats" : {
> "psv" : {
> "type" : "text",
> "extensions" : [ "tbl" ],
> "delimiter" : "|"
> },
> "csv" : {
> "type" : "text",
> "extensions" : [ "csv" ],
> "delimiter" : ","
> },
> "tsv" : {
> "type" : "text",
> "extensions" : [ "tsv" ],
> "delimiter" : "\t"
> },
> "parquet" : {
> "type" : "parquet"
> },
> "json" : {
> "type" : "json"
> }
> }
> },
> "format" : {
> "type" : "json"
> },
> "columns" : [ "`categories`", "`name`" ],
> "selectionRoot" :
> "/Users/brumsby/drill/apache-drill-0.7.0-incubating-SNAPSHOT/yelpdata/yelp_academic_dataset_business.json",
> "cost" : 36382.0
> }, {
> "pop" : "filter",
> "@id" : 5,
> "child" : 6,
> "expr" : "equal(`categories`, 'Pizza') ",
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> }, {
> "pop" : "selection-vector-remover",
> "@id" : 4,
> "child" : 5,
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> }, {
> "pop" : "project",
> "@id" : 3,
> "exprs" : [ {
> "ref" : "`EXPR$0`",
> "expr" : "`categories`"
> }, {
> "ref" : "`EXPR$1`",
> "expr" : "`name`"
> }, {
> "ref" : "`EXPR$2`",
> "expr" : "`categories`"
> } ],
> "child" : 4,
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> }, {
> "pop" : "flatten",
> "@id" : 2,
> "child" : 3,
> "column" : "`EXPR$2`",
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> }, {
> "pop" : "project",
> "@id" : 1,
> "exprs" : [ {
> "ref" : "`name`",
> "expr" : "`EXPR$1`"
> }, {
> "ref" : "`categories`",
> "expr" : "`EXPR$2`"
> } ],
> "child" : 2,
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> }, {
> "pop" : "screen",
> "@id" : 0,
> "child" : 1,
> "initialAllocation" : 1000000,
> "maxAllocation" : 10000000000,
> "cost" : 5457.3
> } ]
> } |
> +------------+------------+
> 1 row selected (0.115 seconds)
> 0: jdbc:drill:zk=local>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)