guihui123456 opened a new issue, #2588:
URL: https://github.com/apache/drill/issues/2588

   **Describe the bug**
   ERROR o.a.d.e.p.s.h.DefaultSqlHandler - There are not enough rules to 
produce a node with desired properties: convention=PHYSICAL, 
DrillDistributionTraitDef=SINGLETON([]), sort=[].
   Missing conversion is VertexDrel[convention: LOGICAL -> PHYSICAL, 
DrillDistributionTraitDef: ANY([]) -> SINGLETON([])]
   
   Graphviz:
   digraph G {
        root [style=filled,label="Root"];
        subgraph cluster10{
                label="Set 10 RecordType(INTEGER L_ORDERKEY)";
                rel6 [label="rel#6:JdbcTableScan\ntable=[mysql, guihui, 
lineitem]\nrows=100.0, cost={100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                rel529 
[label="rel#529:VertexDrel\ninput=RelSubset#506\nrows=100.0, cost={200.0 rows, 
201.0 cpu, 0.0 io, 0.0 network, 0.0 memory}",color=blue,shape=box]
                rel533 
[label="rel#533:AbstractConverter\ninput=RelSubset#532,convention=JDBC.mysql,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel534 
[label="rel#534:AbstractConverter\ninput=RelSubset#532,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel531 
[label="rel#531:JdbcIntermediatePrel\ninput=RelSubset#506\nrows=100.0, 
cost={200.0 rows, 201.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                subset506 [label="rel#506:Subset#10.JDBC.mysql.ANY([]).[]"]
                subset530 [label="rel#530:Subset#10.LOGICAL.ANY([]).[]"]
                subset532 [label="rel#532:Subset#10.PHYSICAL.ANY([]).[]"]
        }
        subgraph cluster11{
                label="Set 11 RecordType(INTEGER L_ORDERKEY)";
                rel507 
[label="rel#507:DrillFilterRel\ninput=RelSubset#506,condition==($0, 
1)\nrows=15.0, cost={200.0 rows, 561.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                rel563 
[label="rel#563:AbstractConverter\ninput=RelSubset#562,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=15.0,
 cost={inf}",shape=box]
                rel561 
[label="rel#561:FilterPrel\ninput=RelSubset#532,condition==($0, 1)\nrows=15.0, 
cost={300.0 rows, 661.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                subset508 [label="rel#508:Subset#11.LOGICAL.ANY([]).[]"]
                subset562 [label="rel#562:Subset#11.PHYSICAL.ANY([]).[]"]
        }
        subgraph cluster12{
                label="Set 12 RecordType(INTEGER O_ORDERKEY)";
                rel7 [label="rel#7:JdbcTableScan\ntable=[mysql, guihui, 
orders]\nrows=100.0, cost={100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                rel520 
[label="rel#520:VertexDrel\ninput=RelSubset#509\nrows=100.0, cost={200.0 rows, 
201.0 cpu, 0.0 io, 0.0 network, 0.0 memory}",color=blue,shape=box]
                rel524 
[label="rel#524:AbstractConverter\ninput=RelSubset#523,convention=JDBC.mysql,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel525 
[label="rel#525:AbstractConverter\ninput=RelSubset#523,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel522 
[label="rel#522:JdbcIntermediatePrel\ninput=RelSubset#509\nrows=100.0, 
cost={200.0 rows, 201.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                subset509 [label="rel#509:Subset#12.JDBC.mysql.ANY([]).[]"]
                subset521 [label="rel#521:Subset#12.LOGICAL.ANY([]).[]"]
                subset523 [label="rel#523:Subset#12.PHYSICAL.ANY([]).[]"]
        }
        subgraph cluster13{
                label="Set 13 RecordType(INTEGER L_ORDERKEY, INTEGER 
O_ORDERKEY)";
                rel510 
[label="rel#510:JdbcJoin\nleft=RelSubset#508,right=RelSubset#509,condition==($0,
 $1),joinType=inner\nrows=100.0, cost={301.0 rows, 663.0 cpu, 0.0 io, 0.0 
network, 0.0 memory}",color=blue,shape=box]
                rel542 
[label="rel#542:VertexDrel\ninput=RelSubset#511\nrows=100.0, cost={401.0 rows, 
763.0 cpu, 0.0 io, 0.0 network, 0.0 memory}",color=blue,shape=box]
                rel546 
[label="rel#546:AbstractConverter\ninput=RelSubset#545,convention=JDBC.mysql,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel547 
[label="rel#547:AbstractConverter\ninput=RelSubset#545,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel544 
[label="rel#544:JdbcIntermediatePrel\ninput=RelSubset#511\nrows=100.0, 
cost={401.0 rows, 763.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                subset511 [label="rel#511:Subset#13.JDBC.mysql.ANY([]).[]"]
                subset543 [label="rel#543:Subset#13.LOGICAL.ANY([]).[]"]
                subset545 [label="rel#545:Subset#13.PHYSICAL.ANY([]).[]"]
        }
        subgraph cluster14{
                label="Set 14 RecordType(INTEGER L_ORDERKEY, INTEGER 
O_ORDERKEY)";
                rel512 
[label="rel#512:DrillProjectRel\ninput=RelSubset#511,L_ORDERKEY=CAST($0):INTEGER,O_ORDERKEY=$1\nrows=100.0,
 cost={401.0 rows, 1163.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                rel559 
[label="rel#559:AbstractConverter\ninput=RelSubset#558,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel557 
[label="rel#557:ProjectPrel\ninput=RelSubset#545,L_ORDERKEY=CAST($0):INTEGER,O_ORDERKEY=$1\nrows=100.0,
 cost={501.0 rows, 1263.0 cpu, 0.0 io, 0.0 network, 0.0 
memory}",color=blue,shape=box]
                subset513 [label="rel#513:Subset#14.LOGICAL.ANY([]).[]"]
                subset558 
[label="rel#558:Subset#14.PHYSICAL.RANDOM_DISTRIBUTED([]).[]"]
        }
        subgraph cluster15{
                label="Set 15 RecordType(INTEGER L_ORDERKEY, INTEGER 
O_ORDERKEY)";
                rel514 
[label="rel#514:VertexDrel\ninput=RelSubset#513\nrows=100.0, cost={501.0 rows, 
1263.0 cpu, 0.0 io, 0.0 network, 0.0 memory}",color=blue,shape=box]
                rel554 
[label="rel#554:AbstractConverter\ninput=RelSubset#553,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                subset515 [label="rel#515:Subset#15.LOGICAL.ANY([]).[]"]
                subset553 
[label="rel#553:Subset#15.PHYSICAL.SINGLETON([]).[]",color=red]
        }
        subgraph cluster16{
                label="Set 16 RecordType(INTEGER L_ORDERKEY, INTEGER 
O_ORDERKEY)";
                rel516 
[label="rel#516:DrillScreenRel\ninput=RelSubset#515\nrows=100.0, cost={511.0 
rows, 1273.0 cpu, 0.0 io, 0.0 network, 0.0 memory}",color=blue,shape=box]
                rel519 
[label="rel#519:AbstractConverter\ninput=RelSubset#518,convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]\nrows=100.0,
 cost={inf}",shape=box]
                rel555 
[label="rel#555:ScreenPrel\ninput=RelSubset#553\nrows=100.0, 
cost={inf}",shape=box]
                subset517 [label="rel#517:Subset#16.LOGICAL.ANY([]).[]"]
                subset518 [label="rel#518:Subset#16.PHYSICAL.SINGLETON([]).[]"]
        }
        root -> subset518;
        subset506 -> rel6[color=blue];
        subset530 -> rel529[color=blue]; rel529 -> subset506[color=blue];
        subset506 -> rel533; rel533 -> subset532;
        subset530 -> rel534; rel534 -> subset532;
        subset532 -> rel531[color=blue]; rel531 -> subset506[color=blue];
        subset508 -> rel507[color=blue]; rel507 -> subset506[color=blue];
        subset508 -> rel563; rel563 -> subset562;
        subset562 -> rel561[color=blue]; rel561 -> subset532[color=blue];
        subset509 -> rel7[color=blue];
        subset521 -> rel520[color=blue]; rel520 -> subset509[color=blue];
        subset509 -> rel524; rel524 -> subset523;
        subset521 -> rel525; rel525 -> subset523;
        subset523 -> rel522[color=blue]; rel522 -> subset509[color=blue];
        subset511 -> rel510[color=blue]; rel510 -> 
subset508[color=blue,label="0"]; rel510 -> subset509[color=blue,label="1"];
        subset543 -> rel542[color=blue]; rel542 -> subset511[color=blue];
        subset511 -> rel546; rel546 -> subset545;
        subset543 -> rel547; rel547 -> subset545;
        subset545 -> rel544[color=blue]; rel544 -> subset511[color=blue];
        subset513 -> rel512[color=blue]; rel512 -> subset511[color=blue];
        subset513 -> rel559; rel559 -> subset558;
        subset558 -> rel557[color=blue]; rel557 -> subset545[color=blue];
        subset515 -> rel514[color=blue]; rel514 -> subset513[color=blue];
        subset515 -> rel554; rel554 -> subset553;
        subset517 -> rel516[color=blue]; rel516 -> subset515[color=blue];
        subset517 -> rel519; rel519 -> subset518;
        subset518 -> rel555; rel555 -> subset553;
   }
   2022-07-08 03:06:52,474 [1d3860bd-8e96-1d99-3b73-378c343f5fc8:foreman] TRACE 
o.apache.calcite.plan.RelOptPlanner - Caught exception in 
class=org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer, 
method=visit
   org.apache.calcite.plan.RelOptPlanner$CannotPlanException: There are not 
enough rules to produce a node with desired properties: convention=PHYSICAL, 
DrillDistributionTraitDef=SINGLETON([]), sort=[].
   Missing conversion is VertexDrel[convention: LOGICAL -> PHYSICAL, 
DrillDistributionTraitDef: ANY([]) -> SINGLETON([])]
   There is 1 empty subset: rel#553:Subset#15.PHYSICAL.SINGLETON([]).[], the 
relevant part of the original plan is as follows
   514:VertexDrel
     512:DrillProjectRel(subset=[rel#513:Subset#14.LOGICAL.ANY([]).[]], 
L_ORDERKEY=[CAST($0):INTEGER], O_ORDERKEY=[$1])
       510:JdbcJoin(subset=[rel#511:Subset#13.JDBC.mysql.ANY([]).[]], 
condition=[=($0, $1)], joinType=[inner])
         507:DrillFilterRel(subset=[rel#508:Subset#11.LOGICAL.ANY([]).[]], 
condition=[=($0, 1)])
           6:JdbcTableScan(subset=[rel#506:Subset#10.JDBC.mysql.ANY([]).[]], 
table=[[mysql, guihui, lineitem]])
         7:JdbcTableScan(subset=[rel#509:Subset#12.JDBC.mysql.ANY([]).[]], 
table=[[mysql, guihui, orders]])
   
   **To Reproduce**
   Steps to reproduce the behavior:
   1. CREATE TABLE ORDERS  ( O_ORDERKEY       INTEGER NOT NULL);
   2. CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL);
   3. select L_ORDERKEY,O_ORDERKEY from
   lineitem right join orders 
   on L_ORDERKEY = O_ORDERKEY 
   where L_ORDERKEY = 1 ;
   4. See error
   
   **Expected behavior**
   Execute correctly.
   
   
   **Desktop (please complete the following information):**
    - OS: [Centos7]
    - Version [drill-1.21]
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to