@@ -189,17 +189,16 @@ function optimizerRuleTestSuite() {
189
189
[ "FOR v IN " + colName + " FILTER v.b == 1 SORT v.b, v.a RETURN 1" , false , true ] ,
190
190
[ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.b, v.a RETURN 1" , true , false ] ,
191
191
[ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.a, v.b RETURN 1" , true , false ] ,
192
- [ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.a, v.c RETURN 1" , true , true ] ,
192
+ [ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.a, v.c RETURN 1" , false , true ] ,
193
193
[ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.b, v.a RETURN 1" , true , false ] ,
194
- [ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.a, v.b, v.c RETURN 1" , true , true ]
194
+ [ "FOR v IN " + colName + " FILTER v.a == 1 && v.b == 1 SORT v.a, v.b, v.c RETURN 1" , false , true ]
195
195
] ;
196
196
197
197
queries . forEach ( function ( query ) {
198
198
var result = AQL_EXPLAIN ( query [ 0 ] ) ;
199
199
if ( query [ 1 ] ) {
200
200
assertNotEqual ( - 1 , removeAlwaysOnClusterRules ( result . plan . rules ) . indexOf ( ruleName ) , query [ 0 ] ) ;
201
- }
202
- else {
201
+ } else {
203
202
assertEqual ( - 1 , removeAlwaysOnClusterRules ( result . plan . rules ) . indexOf ( ruleName ) , query [ 0 ] ) ;
204
203
}
205
204
if ( query [ 2 ] ) {
@@ -402,7 +401,6 @@ function optimizerRuleTestSuite() {
402
401
// place since the index can't fullfill all of the sorting criteria.
403
402
////////////////////////////////////////////////////////////////////////////////
404
403
testSortMoreThanIndexed : function ( ) {
405
-
406
404
var query = "FOR v IN " + colName + " FILTER v.a == 1 SORT v.a, v.c RETURN [v.a, v.b, v.c]" ;
407
405
// no index can be used for v.c -> sort has to remain in place!
408
406
var XPresult ;
@@ -431,7 +429,7 @@ function optimizerRuleTestSuite() {
431
429
QResults [ 2 ] = AQL_EXECUTE ( query , { } , paramIndexFromSort_IndexRange ) . json ;
432
430
XPresult = AQL_EXPLAIN ( query , { } , paramIndexFromSort_IndexRange ) ;
433
431
434
- assertEqual ( [ ruleName , secondRuleName ] , removeAlwaysOnClusterRules ( XPresult . plan . rules ) . sort ( ) ) ;
432
+ assertEqual ( [ secondRuleName ] , removeAlwaysOnClusterRules ( XPresult . plan . rules ) . sort ( ) ) ;
435
433
// The sortnode and its calculation node should not have been removed.
436
434
hasSortNode ( XPresult ) ;
437
435
hasCalculationNodes ( XPresult , 4 ) ;
@@ -1124,7 +1122,7 @@ function optimizerRuleTestSuite() {
1124
1122
testSortModifyFilterCondition : function ( ) {
1125
1123
var query = "FOR v IN " + colName + " FILTER v.a == 123 SORT v.a, v.xxx RETURN v" ;
1126
1124
var rules = AQL_EXPLAIN ( query ) . plan . rules ;
1127
- assertNotEqual ( - 1 , rules . indexOf ( ruleName ) ) ;
1125
+ assertEqual ( - 1 , rules . indexOf ( ruleName ) ) ;
1128
1126
assertNotEqual ( - 1 , rules . indexOf ( secondRuleName ) ) ;
1129
1127
assertNotEqual ( - 1 , rules . indexOf ( "remove-filter-covered-by-index" ) ) ;
1130
1128
@@ -1135,9 +1133,8 @@ function optimizerRuleTestSuite() {
1135
1133
++ seen ;
1136
1134
assertFalse ( node . reverse ) ;
1137
1135
} else if ( node . type === "SortNode" ) {
1138
- // first sort condition (v.a) should have been removed because it is const
1139
1136
++ seen ;
1140
- assertEqual ( 1 , node . elements . length ) ;
1137
+ assertEqual ( 2 , node . elements . length ) ;
1141
1138
}
1142
1139
} ) ;
1143
1140
assertEqual ( 2 , seen ) ;
0 commit comments