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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]