[ 
https://issues.apache.org/jira/browse/DRILL-207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13758652#comment-13758652
 ] 

Ted Dunning commented on DRILL-207:
-----------------------------------

Ah... OK.  That makes sense.

Here is an improved query:

{code}
select x.region, x.region_id, 
    (select sum(cast(_MAP['N_NATIONKEY'] as INTEGER)) 
     from "sample-data/nation.parquet"
     where _MAP['N_REGIONKEY'] = x.region_id) 
from
   (select _MAP['R_REGIONKEY'] as region_id, _MAP['R_NAME'] as region from 
"sample-data/region.parquet") x
{code}

which causes this problem
{code} 
org.eigenbase.relopt.RelOptPlanner$CannotPlanException: Node 
[rel#778:Subset#7.ENUMERABLE.[]] could not be implemented; planner state:

Root: rel#778:Subset#7.ENUMERABLE.[]
Original rel:
AbstractConverter(subset=[rel#778:Subset#7.ENUMERABLE.[]], 
convention=[ENUMERABLE], sort=[[]])
  ProjectRel(subset=[rel#771:Subset#7.NONE.[]], REGION=[$1], REGION_ID=[$0], 
EXPR$2=[$2])
    CorrelatorRel(subset=[rel#769:Subset#6.NONE.[]], condition=[true], 
joinType=[left], correlations=[[var0=offset0]])
      ProjectRel(subset=[rel#760:Subset#1.NONE.[]], REGION_ID=[ITEM($0, 
'R_REGIONKEY')], REGION=[ITEM($0, 'R_NAME')])
        DrillScan(subset=[rel#758:Subset#0.DRILL.[]], table=[[parquet-local, 
sample-data/region.parquet]])
      AggregateRel(subset=[rel#767:Subset#5.NONE.[]], group=[{}], 
EXPR$0=[SUM($0)])
        ProjectRel(subset=[rel#765:Subset#4.NONE.[]], $f0=[CAST(ITEM($0, 
'N_NATIONKEY')):INTEGER NOT NULL])
          FilterRel(subset=[rel#763:Subset#3.NONE.[]], condition=[=(ITEM($0, 
'N_REGIONKEY'), $cor0.REGION_ID)])
            DrillScan(subset=[rel#761:Subset#2.DRILL.[]], 
table=[[parquet-local, sample-data/nation.parquet]])

Sets:
Set#0, type: RecordType((VARCHAR, ANY) MAP _MAP)
        rel#758:Subset#0.DRILL.[], best=rel#750, importance=0.6561000000000001
                rel#750:DrillScan.DRILL.[](table=[parquet-local, 
sample-data/region.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 
101.0 cpu, 0.0 io}
                
rel#865:AbstractConverter.DRILL.[](child=rel#864:Subset#0.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=100.0, cumulative cost={inf}
        rel#864:Subset#0.ENUMERABLE.[], best=rel#899, 
importance=0.5904900000000001
                
rel#866:AbstractConverter.ENUMERABLE.[](child=rel#758:Subset#0.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=100.0, cumulative cost={inf}
                
rel#899:EnumerableDrillRel.ENUMERABLE.[](child=rel#758:Subset#0.DRILL.[]), 
rowcount=100.0, cumulative cost={110.0 rows, 111.0 cpu, 0.0 io}
Set#1, type: RecordType(ANY REGION_ID, ANY REGION)
        rel#760:Subset#1.NONE.[], best=null, importance=0.7290000000000001
                
rel#759:ProjectRel.NONE.[](child=rel#758:Subset#0.DRILL.[],REGION_ID=ITEM($0, 
'R_REGIONKEY'),REGION=ITEM($0, 'R_NAME')), rowcount=100.0, cumulative cost={inf}
                
rel#781:CalcRel.NONE.[](child=rel#758:Subset#0.DRILL.[],expr#0={inputs},expr#1='R_REGIONKEY',expr#2=ITEM($t0,
 $t1),expr#3='R_NAME',expr#4=ITEM($t0, $t3),REGION_ID=$t2,REGION=$t4), 
rowcount=100.0, cumulative cost={inf}
        rel#817:Subset#1.DRILL.[], best=rel#816, importance=0.4601593625498008
                
rel#818:AbstractConverter.DRILL.[](child=rel#760:Subset#1.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#816:DrillProjectRel.DRILL.[](child=rel#758:Subset#0.DRILL.[],REGION_ID=ITEM($0,
 'R_REGIONKEY'),REGION=ITEM($0, 'R_NAME')), rowcount=100.0, cumulative 
cost={110.0 rows, 121.0 cpu, 0.0 io}
                
rel#869:AbstractConverter.DRILL.[](child=rel#868:Subset#1.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=100.0, cumulative cost={inf}
        rel#868:Subset#1.ENUMERABLE.[], best=rel#894, importance=0.495
                
rel#870:AbstractConverter.ENUMERABLE.[](child=rel#760:Subset#1.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#871:AbstractConverter.ENUMERABLE.[](child=rel#817:Subset#1.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=100.0, cumulative cost={inf}
                
rel#867:EnumerableCalcRel.ENUMERABLE.[](child=rel#864:Subset#0.ENUMERABLE.[],expr#0={inputs},expr#1='R_REGIONKEY',expr#2=ITEM($t0,
 $t1),expr#3='R_NAME',expr#4=ITEM($t0, $t3),REGION_ID=$t2,REGION=$t4), 
rowcount=100.0, cumulative cost={210.0 rows, 811.0 cpu, 0.0 io}
                
rel#894:EnumerableDrillRel.ENUMERABLE.[](child=rel#817:Subset#1.DRILL.[]), 
rowcount=100.0, cumulative cost={120.0 rows, 131.0 cpu, 0.0 io}
Set#2, type: RecordType((VARCHAR, ANY) MAP _MAP)
        rel#761:Subset#2.DRILL.[], best=rel#752, importance=0.531441
                rel#752:DrillScan.DRILL.[](table=[parquet-local, 
sample-data/nation.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 
101.0 cpu, 0.0 io}
                
rel#833:AbstractConverter.DRILL.[](child=rel#832:Subset#2.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=100.0, cumulative cost={inf}
        rel#832:Subset#2.ENUMERABLE.[], best=rel#897, 
importance=0.4782969000000001
                
rel#834:AbstractConverter.ENUMERABLE.[](child=rel#761:Subset#2.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=100.0, cumulative cost={inf}
                
rel#897:EnumerableDrillRel.ENUMERABLE.[](child=rel#761:Subset#2.DRILL.[]), 
rowcount=100.0, cumulative cost={110.0 rows, 111.0 cpu, 0.0 io}
Set#3, type: RecordType((VARCHAR, ANY) MAP _MAP)
        rel#763:Subset#3.NONE.[], best=null, importance=0.5904900000000001
                
rel#762:FilterRel.NONE.[](child=rel#761:Subset#2.DRILL.[],condition==(ITEM($0, 
'N_REGIONKEY'), $cor0.REGION_ID)), rowcount=15.0, cumulative cost={inf}
                
rel#783:CalcRel.NONE.[](child=rel#761:Subset#2.DRILL.[],expr#0={inputs},expr#1='N_REGIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=$cor0,expr#4=$t3.REGION_ID,expr#5==($t2, 
$t4),_MAP=$t0,$condition=$t5), rowcount=15.0, cumulative cost={inf}
        rel#824:Subset#3.DRILL.[], best=rel#845, importance=0.49303944315545245
                
rel#825:AbstractConverter.DRILL.[](child=rel#763:Subset#3.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#845:DrillFilterRel.DRILL.[](child=rel#761:Subset#2.DRILL.[],condition==(ITEM($0,
 'N_REGIONKEY'), $cor0.REGION_ID)), rowcount=15.0, cumulative cost={101.5 rows, 
111.0 cpu, 0.0 io}
                
rel#854:AbstractConverter.DRILL.[](child=rel#853:Subset#3.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=15.0, cumulative cost={inf}
        rel#853:Subset#3.ENUMERABLE.[], best=rel#883, importance=0.495
                
rel#855:AbstractConverter.ENUMERABLE.[](child=rel#763:Subset#3.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#856:AbstractConverter.ENUMERABLE.[](child=rel#824:Subset#3.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=15.0, cumulative cost={inf}
                
rel#852:EnumerableCalcRel.ENUMERABLE.[](child=rel#832:Subset#2.ENUMERABLE.[],expr#0={inputs},expr#1='N_REGIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=$cor0,expr#4=$t3.REGION_ID,expr#5==($t2, 
$t4),_MAP=$t0,$condition=$t5), rowcount=15.0, cumulative cost={125.0 rows, 
911.0 cpu, 0.0 io}
                
rel#883:EnumerableDrillRel.ENUMERABLE.[](child=rel#824:Subset#3.DRILL.[]), 
rowcount=15.0, cumulative cost={103.0 rows, 112.5 cpu, 0.0 io}
Set#4, type: RecordType(INTEGER $f0)
        rel#765:Subset#4.NONE.[], best=null, importance=0.6561000000000001
                
rel#764:ProjectRel.NONE.[](child=rel#763:Subset#3.NONE.[],$f0=CAST(ITEM($0, 
'N_NATIONKEY')):INTEGER NOT NULL), rowcount=1.7976931348623157E308, cumulative 
cost={inf}
                
rel#782:CalcRel.NONE.[](child=rel#763:Subset#3.NONE.[],expr#0={inputs},expr#1='N_NATIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=CAST($t2):INTEGER NOT NULL,$f0=$t3), 
rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#784:CalcRel.NONE.[](child=rel#761:Subset#2.DRILL.[],expr#0={inputs},expr#1='N_NATIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=CAST($t2):INTEGER NOT NULL,expr#4='N_REGIONKEY',expr#5=ITEM($t0, 
$t4),expr#6=$cor0,expr#7=$t6.REGION_ID,expr#8==($t5, 
$t7),$f0=$t3,$condition=$t8), rowcount=15.0, cumulative cost={inf}
        rel#810:Subset#4.DRILL.[], best=rel#826, importance=0.4965437788018433
                
rel#811:AbstractConverter.DRILL.[](child=rel#765:Subset#4.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#826:DrillProjectRel.DRILL.[](child=rel#824:Subset#3.DRILL.[],$f0=CAST(ITEM($0,
 'N_NATIONKEY')):INTEGER NOT NULL), rowcount=15.0, cumulative cost={103.0 rows, 
112.5 cpu, 0.0 io}
                
rel#837:AbstractConverter.DRILL.[](child=rel#836:Subset#4.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=15.0, cumulative cost={inf}
        rel#836:Subset#4.ENUMERABLE.[], best=rel#888, importance=0.495
                
rel#838:AbstractConverter.ENUMERABLE.[](child=rel#765:Subset#4.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#839:AbstractConverter.ENUMERABLE.[](child=rel#810:Subset#4.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=15.0, cumulative cost={inf}
                
rel#835:EnumerableCalcRel.ENUMERABLE.[](child=rel#832:Subset#2.ENUMERABLE.[],expr#0={inputs},expr#1='N_NATIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=CAST($t2):INTEGER NOT NULL,expr#4='N_REGIONKEY',expr#5=ITEM($t0, 
$t4),expr#6=$cor0,expr#7=$t6.REGION_ID,expr#8==($t5, 
$t7),$f0=$t3,$condition=$t8), rowcount=15.0, cumulative cost={125.0 rows, 
1211.0 cpu, 0.0 io}
                
rel#862:EnumerableCalcRel.ENUMERABLE.[](child=rel#853:Subset#3.ENUMERABLE.[],expr#0={inputs},expr#1='N_NATIONKEY',expr#2=ITEM($t0,
 $t1),expr#3=CAST($t2):INTEGER NOT NULL,$f0=$t3), rowcount=15.0, cumulative 
cost={118.0 rows, 187.5 cpu, 0.0 io}
                
rel#888:EnumerableDrillRel.ENUMERABLE.[](child=rel#810:Subset#4.DRILL.[]), 
rowcount=15.0, cumulative cost={104.5 rows, 114.0 cpu, 0.0 io}
Set#5, type: RecordType(INTEGER EXPR$0)
        rel#767:Subset#5.NONE.[], best=null, importance=0.7290000000000001
                
rel#766:AggregateRel.NONE.[](child=rel#765:Subset#4.NONE.[],group={},EXPR$0=SUM($0)),
 rowcount=1.7976931348623158E307, cumulative cost={inf}
        rel#813:Subset#5.DRILL.[], best=rel#812, importance=0.4993097100782328
                
rel#814:AbstractConverter.DRILL.[](child=rel#767:Subset#5.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#812:DrillAggregateRel.DRILL.[](child=rel#810:Subset#4.DRILL.[],group={},EXPR$0=SUM($0)),
 rowcount=1.5, cumulative cost={104.5 rows, 112.5 cpu, 0.0 io}
                
rel#874:AbstractConverter.DRILL.[](child=rel#873:Subset#5.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=1.5, cumulative cost={inf}
        rel#873:Subset#5.ENUMERABLE.[], best=rel#885, importance=0.495
                
rel#875:AbstractConverter.ENUMERABLE.[](child=rel#767:Subset#5.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#876:AbstractConverter.ENUMERABLE.[](child=rel#813:Subset#5.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.5, cumulative cost={inf}
                
rel#872:EnumerableAggregateRel.ENUMERABLE.[](child=rel#836:Subset#4.ENUMERABLE.[],group={},EXPR$0=SUM($0)),
 rowcount=1.5, cumulative cost={106.0 rows, 114.0 cpu, 0.0 io}
                
rel#885:EnumerableDrillRel.ENUMERABLE.[](child=rel#813:Subset#5.DRILL.[]), 
rowcount=1.5, cumulative cost={104.65 rows, 112.65 cpu, 0.0 io}
Set#6, type: RecordType(ANY REGION_ID, ANY REGION, INTEGER EXPR$0)
        rel#769:Subset#6.NONE.[], best=null, importance=0.81
                
rel#768:CorrelatorRel.NONE.[](left=rel#760:Subset#1.NONE.[],right=rel#767:Subset#5.NONE.[],condition=true,joinType=left,correlations=[var0=offset0]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
        rel#785:Subset#6.ENUMERABLE.[], best=null, importance=0.9
                
rel#786:AbstractConverter.ENUMERABLE.[](child=rel#769:Subset#6.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#789:AbstractConverter.ENUMERABLE.[](child=rel#788:Subset#6.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#807:EnumerableDrillRel.ENUMERABLE.[](child=rel#788:Subset#6.DRILL.[]), 
rowcount=1.7976931348623157E308, cumulative cost={inf}
        rel#788:Subset#6.DRILL.[], best=null, importance=0.81
                
rel#790:AbstractConverter.DRILL.[](child=rel#769:Subset#6.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#791:AbstractConverter.DRILL.[](child=rel#785:Subset#6.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
Set#7, type: RecordType(ANY REGION, ANY REGION_ID, INTEGER EXPR$2)
        rel#771:Subset#7.NONE.[], best=null, importance=0.9
                
rel#770:ProjectRel.NONE.[](child=rel#769:Subset#6.NONE.[],REGION=$1,REGION_ID=$0,EXPR$2=$2),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#780:CalcRel.NONE.[](child=rel#769:Subset#6.NONE.[],expr#0..2={inputs},REGION=$t1,REGION_ID=$t0,EXPR$2=$t2),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
        rel#778:Subset#7.ENUMERABLE.[], best=null, importance=1.0
                
rel#779:AbstractConverter.ENUMERABLE.[](child=rel#771:Subset#7.NONE.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#787:EnumerableCalcRel.ENUMERABLE.[](child=rel#785:Subset#6.ENUMERABLE.[],expr#0..2={inputs},REGION=$t1,REGION_ID=$t0,EXPR$2=$t2),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#794:AbstractConverter.ENUMERABLE.[](child=rel#793:Subset#7.DRILL.[],convention=ENUMERABLE,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#797:EnumerableDrillRel.ENUMERABLE.[](child=rel#793:Subset#7.DRILL.[]), 
rowcount=1.7976931348623157E308, cumulative cost={inf}
        rel#793:Subset#7.DRILL.[], best=null, importance=0.9
                
rel#795:AbstractConverter.DRILL.[](child=rel#771:Subset#7.NONE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#796:AbstractConverter.DRILL.[](child=rel#778:Subset#7.ENUMERABLE.[],convention=DRILL,sort=[]),
 rowcount=1.7976931348623157E308, cumulative cost={inf}
                
rel#792:DrillProjectRel.DRILL.[](child=rel#788:Subset#6.DRILL.[],REGION=$1,REGION_ID=$0,EXPR$2=$2),
 rowcount=1.7976931348623157E308, cumulative cost={inf}


        at 
org.eigenbase.relopt.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:398)
        at 
org.eigenbase.relopt.volcano.RelSubset.buildCheapestPlan(RelSubset.java:257)
        at 
org.eigenbase.relopt.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:576)
        at net.hydromatic.optiq.prepare.Prepare.optimize(Prepare.java:101)
        at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:212)
        at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:129)
        at 
net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare2_(OptiqPrepareImpl.java:255)
        at 
net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare_(OptiqPrepareImpl.java:195)
        at 
net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepareSql(OptiqPrepareImpl.java:168)
        at 
net.hydromatic.optiq.jdbc.OptiqStatement.parseQuery(OptiqStatement.java:402)
        at 
net.hydromatic.optiq.jdbc.OptiqStatement.execute(OptiqStatement.java:192)
        at sqlline.SqlLine$Commands.execute(SqlLine.java:3825)
        at sqlline.SqlLine$Commands.sql(SqlLine.java:3738)
        at sqlline.SqlLine.dispatch(SqlLine.java:882)
        at sqlline.SqlLine.begin(SqlLine.java:717)
        at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460)
        at sqlline.SqlLine.main(SqlLine.java:443)
{code} 

                
> Correlated sub-query doesn't work
> ---------------------------------
>
>                 Key: DRILL-207
>                 URL: https://issues.apache.org/jira/browse/DRILL-207
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Ted Dunning
>
> For this query:
> {code}
> select x.region, x.region_id, y.total
> from
>    (select _MAP['R_REGIONKEY'] as region_id, _MAP['R_NAME'] as region from 
> "sample-data/region.parquet") x
>    join
>    (select sum(nation_id) total from 
>       (select _MAP['N_NATIONKEY'] as nation_id, _MAP['N_REGIONKEY'] region_id 
> from "sample-data/nation.parquet") nation
>       where region_id = x.region_id) y
> {code}
> I get this message:
> {code}
> Sep 04, 2013 1:36:48 PM org.eigenbase.sql.validate.SqlValidatorException 
> <init>
> SEVERE: org.eigenbase.sql.validate.SqlValidatorException: Table 'X' not found
> Sep 04, 2013 1:36:48 PM org.eigenbase.util.EigenbaseException <init>
> SEVERE: org.eigenbase.util.EigenbaseContextException: At line 7, column 25
> org.eigenbase.util.EigenbaseContextException: At line 7, column 25
>       at 
> org.eigenbase.resource.EigenbaseResource$_Def11.ex(EigenbaseResource.java:1006)
>       at org.eigenbase.sql.SqlUtil.newContextException(SqlUtil.java:739)
>       at org.eigenbase.sql.SqlUtil.newContextException(SqlUtil.java:726)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:3830)
>       at 
> org.eigenbase.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:176)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateIdentifier(SqlValidatorImpl.java:2585)
>       at org.eigenbase.sql.SqlIdentifier.validateExpr(SqlIdentifier.java:241)
>       at org.eigenbase.sql.SqlOperator.validateCall(SqlOperator.java:419)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateCall(SqlValidatorImpl.java:3984)
>       at org.eigenbase.sql.SqlCall.validate(SqlCall.java:159)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateWhereOrOn(SqlValidatorImpl.java:3230)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateWhereClause(SqlValidatorImpl.java:3217)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3018)
>       at 
> org.eigenbase.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:69)
>       at 
> org.eigenbase.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:90)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:802)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:790)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2776)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2761)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateJoin(SqlValidatorImpl.java:2800)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:2770)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3013)
>       at 
> org.eigenbase.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:69)
>       at 
> org.eigenbase.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:90)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:802)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:790)
>       at org.eigenbase.sql.SqlSelect.validate(SqlSelect.java:154)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:753)
>       at 
> org.eigenbase.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:444)
>       at 
> org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:445)
>       at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:160)
>       at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:129)
>       at 
> net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare2_(OptiqPrepareImpl.java:255)
>       at 
> net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare_(OptiqPrepareImpl.java:195)
>       at 
> net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepareSql(OptiqPrepareImpl.java:168)
>       at 
> net.hydromatic.optiq.jdbc.OptiqStatement.parseQuery(OptiqStatement.java:402)
>       at 
> net.hydromatic.optiq.jdbc.OptiqStatement.execute(OptiqStatement.java:192)
>       at sqlline.SqlLine$Commands.execute(SqlLine.java:3825)
>       at sqlline.SqlLine$Commands.sql(SqlLine.java:3738)
>       at sqlline.SqlLine.dispatch(SqlLine.java:882)
>       at sqlline.SqlLine.begin(SqlLine.java:717)
>       at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460)
>       at sqlline.SqlLine.main(SqlLine.java:443)
> Caused by: org.eigenbase.sql.validate.SqlValidatorException: Table 'X' not 
> found
>       at 
> org.eigenbase.resource.EigenbaseResource$_Def9.ex(EigenbaseResource.java:963)
>       ... 39 more
> {code}
>    

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to