[ 
https://issues.apache.org/jira/browse/DRILL-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacques Nadeau resolved DRILL-1147.
-----------------------------------

    Resolution: Fixed

> Nested where clauses cause an error
> -----------------------------------
>
>                 Key: DRILL-1147
>                 URL: https://issues.apache.org/jira/browse/DRILL-1147
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Norris Lee
>            Assignee: DrillCommitter
>             Fix For: 0.5.0
>
>
> When using CustomSQL in Tableau, Tableau will wrap your SQL query with a 
> select from where clause as such: 
> {code}
> SELECT * FROM ( your_query ) `TableauSQL` WHERE (0 = 1)
> {code}
> If your query happens to have a where clause, then the query will not execute.
> When using SQLLine to execute
> {code}
> SELECT * FROM ( select column1 from `hive43.default`.`integer_table` where 
> column1 > 10 ) `TableauSQL` WHERE (0 = 1)
> {code}
> The resulting error is:
> {code}
> Query failed: org.apache.drill.exec.rpc.RpcException: Remote failure while 
> running query.[error_id: "aeab569f-c1f9-407e-8fc7-03d8ce81c600"
> endpoint {
>   address: "192.168.39.43"
>   user_port: 31010
>   control_port: 31011
>   data_port: 31012
> }
> error_type: 0
> message: "Failure while parsing sql. < CannotPlanException:[ Node 
> [rel#1198:Subset#13.PHYSICAL.SINGLETON([]).[]] could not be implemented; 
> planner state:
> Root: rel#1198:Subset#13.PHYSICAL.SINGLETON([]).[]
> Original rel:
> AbstractConverter(subset=[rel#1198:Subset#13.PHYSICAL.SINGLETON([]).[]], 
> convention=[PHYSICAL], DrillDistributionTraitDef=[SINGLETON([])], sort=[[]]): 
> rowcount = 1.0, cumulative cost = {inf}, id = 1200
>   DrillScreenRel(subset=[rel#1197:Subset#13.LOGICAL.ANY([]).[]]): rowcount = 
> 1.0, cumulative cost = {0.1 rows, 0.1 cpu, 0.0 io, 0.0 network}, id = 1196
>     DrillProjectRel(subset=[rel#1195:Subset#12.LOGICAL.ANY([]).[]], 
> column1=[$1]): rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io, 
> 0.0 network}, id = 1194
>       DrillFilterRel(subset=[rel#1193:Subset#11.LOGICAL.ANY([]).[]], 
> condition=[=(0, 1)]): rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 
> 0.0 io, 0.0 network}, id = 1192
>         DrillFilterRel(subset=[rel#1191:Subset#10.LOGICAL.ANY([]).[]], 
> condition=[>($1, 10)]): rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 
> 0.0 io, 0.0 network}, id = 1190
>           DrillScanRel(subset=[rel#1189:Subset#9.LOGICAL.ANY([]).[]], 
> table=[[hive43.default, integer_table]], groupscan=[HiveScan 
> [table=Table(tableName:integer_table, dbName:default, owner:root, 
> createTime:1400090744, lastAccessTime:0, retention:0, 
> sd:StorageDescriptor(cols:[FieldSchema(name:keycolumn, type:string, 
> comment:null), FieldSchema(name:column1, type:int, comment:null)], 
> location:maprfs:/user/hive/warehouse/integer_table, 
> inputFormat:org.apache.hadoop.mapred.TextInputFormat, 
> outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
> compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, 
> serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, 
> parameters:{serialization.format=,, field.delim=,}), bucketCols:[], 
> sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], 
> skewedColValues:[], skewedColValueLocationMaps:{}), 
> storedAsSubDirectories:false), partitionKeys:[], parameters:{numPartitions=0, 
> numFiles=1, transient_lastDdlTime=1400090745, numRows=0, totalSize=262, 
> rawDataSize=0}, viewOriginalText:null, viewExpandedText:null, 
> tableType:MANAGED_TABLE), 
> inputSplits=[maprfs:/user/hive/warehouse/integer_table/Integer_Table.csv:0+262],
>  columns=null]]): rowcount = 1.0, cumulative cost = {0.0 rows, 0.0 cpu, 0.0 
> io, 0.0 network}, id = 1149
> Sets:
> Set#9, type: RecordType(VARCHAR(65535) keycolumn, INTEGER column1)
>       rel#1189:Subset#9.LOGICAL.ANY([]).[], best=rel#1149, 
> importance=0.5904900000000001
>               rel#1149:DrillScanRel.LOGICAL.ANY([]).[](table=[hive43.default, 
> integer_table],groupscan=HiveScan [table=Table(tableName:integer_table, 
> dbName:default, owner:root, createTime:1400090744, lastAccessTime:0, 
> retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:keycolumn, 
> type:string, comment:null), FieldSchema(name:column1, type:int, 
> comment:null)], location:maprfs:/user/hive/warehouse/integer_table, 
> inputFormat:org.apache.hadoop.mapred.TextInputFormat, 
> outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
> compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, 
> serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, 
> parameters:{serialization.format=,, field.delim=,}), bucketCols:[], 
> sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], 
> skewedColValues:[], skewedColValueLocationMaps:{}), 
> storedAsSubDirectories:false), partitionKeys:[], parameters:{numPartitions=0, 
> numFiles=1, transient_lastDdlTime=1400090745, numRows=0, totalSize=262, 
> rawDataSize=0}, viewOriginalText:null, viewExpandedText:null, 
> tableType:MANAGED_TABLE), 
> inputSplits=[maprfs:/user/hive/warehouse/integer_table/Integer_Table.csv:0+262],
>  columns=null]), rowcount=1.0, cumulative cost={tiny}
>               
> rel#1210:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1221:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1220:Subset#9.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>       rel#1209:Subset#9.PHYSICAL.ANY([]).[], best=rel#1219, 
> importance=0.531441
>               
> rel#1211:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1189:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1222:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1220:Subset#9.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1223:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1189:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1224:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               rel#1219:ScanPrel.PHYSICAL.SINGLETON([]).[](groupscan=HiveScan 
> [table=Table(tableName:integer_table, dbName:default, owner:root, 
> createTime:1400090744, lastAccessTime:0, retention:0, 
> sd:StorageDescriptor(cols:[FieldSchema(name:keycolumn, type:string, 
> comment:null), FieldSchema(name:column1, type:int, comment:null)], 
> location:maprfs:/user/hive/warehouse/integer_table, 
> inputFormat:org.apache.hadoop.mapred.TextInputFormat, 
> outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
> compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, 
> serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, 
> parameters:{serialization.format=,, field.delim=,}), bucketCols:[], 
> sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], 
> skewedColValues:[], skewedColValueLocationMaps:{}), 
> storedAsSubDirectories:false), partitionKeys:[], parameters:{numPartitions=0, 
> numFiles=1, transient_lastDdlTime=1400090745, numRows=0, totalSize=262, 
> rawDataSize=0}, viewOriginalText:null, viewExpandedText:null, 
> tableType:MANAGED_TABLE), 
> inputSplits=[maprfs:/user/hive/warehouse/integer_table/Integer_Table.csv:0+262],
>  columns=null]), rowcount=1.0, cumulative cost={tiny}
>       rel#1220:Subset#9.PHYSICAL.SINGLETON([]).[], best=rel#1219, 
> importance=0.4782969000000001
>               
> rel#1223:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1189:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1224:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               rel#1219:ScanPrel.PHYSICAL.SINGLETON([]).[](groupscan=HiveScan 
> [table=Table(tableName:integer_table, dbName:default, owner:root, 
> createTime:1400090744, lastAccessTime:0, retention:0, 
> sd:StorageDescriptor(cols:[FieldSchema(name:keycolumn, type:string, 
> comment:null), FieldSchema(name:column1, type:int, comment:null)], 
> location:maprfs:/user/hive/warehouse/integer_table, 
> inputFormat:org.apache.hadoop.mapred.TextInputFormat, 
> outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
> compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, 
> serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, 
> parameters:{serialization.format=,, field.delim=,}), bucketCols:[], 
> sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], 
> skewedColValues:[], skewedColValueLocationMaps:{}), 
> storedAsSubDirectories:false), partitionKeys:[], parameters:{numPartitions=0, 
> numFiles=1, transient_lastDdlTime=1400090745, numRows=0, totalSize=262, 
> rawDataSize=0}, viewOriginalText:null, viewExpandedText:null, 
> tableType:MANAGED_TABLE), 
> inputSplits=[maprfs:/user/hive/warehouse/integer_table/Integer_Table.csv:0+262],
>  columns=null]), rowcount=1.0, cumulative cost={tiny}
> Set#10, type: RecordType(VARCHAR(65535) keycolumn, INTEGER column1)
>       rel#1191:Subset#10.LOGICAL.ANY([]).[], best=rel#1190, importance=0.6561
>               
> rel#1190:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#1189:Subset#9.LOGICAL.ANY([]).[],condition=>($1,
>  10)), rowcount=1.0, cumulative cost={2.0 rows, 5.0 cpu, 0.0 io, 0.0 network}
>               
> rel#1214:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1213:Subset#10.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1227:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1226:Subset#10.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>       rel#1213:Subset#10.PHYSICAL.ANY([]).[], best=rel#1212, 
> importance=0.5904900000000001
>               
> rel#1215:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1191:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1212:FilterPrel.PHYSICAL.ANY([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],condition=>($1,
>  10)), rowcount=1.0, cumulative cost={2.0 rows, 5.0 cpu, 0.0 io, 0.0 network}
>               
> rel#1228:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1226:Subset#10.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1229:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1191:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1230:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1213:Subset#10.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1225:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],condition=>($1,
>  10)), rowcount=1.0, cumulative cost={2.0 rows, 5.0 cpu, 0.0 io, 0.0 network}
>       rel#1226:Subset#10.PHYSICAL.SINGLETON([]).[], best=rel#1225, 
> importance=0.531441
>               
> rel#1229:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1191:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1230:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1213:Subset#10.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1225:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#1209:Subset#9.PHYSICAL.ANY([]).[],condition=>($1,
>  10)), rowcount=1.0, cumulative cost={2.0 rows, 5.0 cpu, 0.0 io, 0.0 network}
> Set#11, type: RecordType(VARCHAR(65535) keycolumn, INTEGER column1)
>       rel#1193:Subset#11.LOGICAL.ANY([]).[], best=rel#1192, 
> importance=0.7290000000000001
>               
> rel#1192:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#1191:Subset#10.LOGICAL.ANY([]).[],condition==(0,
>  1)), rowcount=1.0, cumulative cost={3.0 rows, 9.0 cpu, 0.0 io, 0.0 network}
>               
> rel#1207:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1206:Subset#11.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>       rel#1206:Subset#11.PHYSICAL.ANY([]).[], best=rel#1216, importance=0.6561
>               
> rel#1208:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1193:Subset#11.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1216:FilterPrel.PHYSICAL.ANY([]).[](child=rel#1213:Subset#10.PHYSICAL.ANY([]).[],condition==(0,
>  1)), rowcount=1.0, cumulative cost={3.0 rows, 9.0 cpu, 0.0 io, 0.0 network}
> Set#12, type: RecordType(INTEGER column1)
>       rel#1195:Subset#12.LOGICAL.ANY([]).[], best=rel#1194, importance=0.81
>               
> rel#1194:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#1193:Subset#11.LOGICAL.ANY([]).[],column1=$1),
>  rowcount=1.0, cumulative cost={4.0 rows, 13.0 cpu, 0.0 io, 0.0 network}
>               
> rel#1202:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1201:Subset#12.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#1201:Subset#12.PHYSICAL.SINGLETON([]).[], best=null, 
> importance=0.7290000000000001
>               
> rel#1203:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1195:Subset#12.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
> Set#13, type: RecordType(INTEGER column1)
>       rel#1197:Subset#13.LOGICAL.ANY([]).[], best=rel#1196, importance=0.9
>               
> rel#1196:DrillScreenRel.LOGICAL.ANY([]).[](child=rel#1195:Subset#12.LOGICAL.ANY([]).[]),
>  rowcount=1.0, cumulative cost={4.1 rows, 13.1 cpu, 0.0 io, 0.0 network}
>               
> rel#1199:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1198:Subset#13.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#1198:Subset#13.PHYSICAL.SINGLETON([]).[], best=null, importance=1.0
>               
> rel#1200:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1197:Subset#13.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.0, cumulative cost={inf}
>               
> rel#1204:ScreenPrel.PHYSICAL.SINGLETON([]).[](child=rel#1201:Subset#12.PHYSICAL.SINGLETON([]).[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>  ]"
> ]
> Error: exception while executing query (state=,code=0)
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to