1
0
Fork 0

reverted non-fix

This commit is contained in:
Jan Steemann 2014-12-13 12:44:24 +01:00
parent b275c79793
commit e4686bcc1b
1 changed files with 54 additions and 51 deletions

View File

@ -40,7 +40,7 @@ var removeAlwaysOnClusterRules = helper.removeAlwaysOnClusterRules;
/// @brief test suite /// @brief test suite
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
function optimizerRuleTestSuite_filterByIndex() { function optimizerRuleTestSuite() {
var IndexRangeRule = "use-index-range"; var IndexRangeRule = "use-index-range";
var FilterRemoveRule = "remove-filter-covered-by-index"; var FilterRemoveRule = "remove-filter-covered-by-index";
var SortRemoveRule = "use-index-for-sort"; var SortRemoveRule = "use-index-for-sort";
@ -170,36 +170,36 @@ function optimizerRuleTestSuite_filterByIndex() {
]; ];
queries.forEach(function(query) { queries.forEach(function(query) {
var j, result; var result;
result = AQL_EXPLAIN(query, { }, paramIndexRangeFilter);
assertEqual([ IndexRangeRule, FilterRemoveRule ],
removeAlwaysOnClusterRules(result.plan.rules), query);
hasNoFilterNode(result);
result = AQL_EXPLAIN(query, { }, paramIndexRangeFilter); hasIndexRangeNodeWithRanges(result);
assertEqual([ IndexRangeRule, FilterRemoveRule ],
removeAlwaysOnClusterRules(result.plan.rules), query);
hasNoFilterNode(result);
hasIndexRangeNode_WithRanges(result, true);
result = AQL_EXPLAIN(query, { }, paramIndexRangeSortFilter); result = AQL_EXPLAIN(query, { }, paramIndexRangeSortFilter);
assertEqual([ IndexRangeRule, FilterRemoveRule, SortRemoveRule ], assertEqual([ IndexRangeRule, FilterRemoveRule, SortRemoveRule ],
removeAlwaysOnClusterRules(result.plan.rules), query); removeAlwaysOnClusterRules(result.plan.rules), query);
hasNoFilterNode(result); hasNoFilterNode(result);
hasIndexRangeNode_WithRanges(result, true); hasIndexRangeNodeWithRanges(result);
var QResults = [];
QResults[0] = AQL_EXECUTE(query, { }, paramNone).json;
QResults[1] = AQL_EXECUTE(query, { }, paramIndexRangeFilter).json;
QResults[2] = AQL_EXECUTE(query, { }, paramIndexRangeSortFilter).json;
QResults[0] = AQL_EXECUTE(query, { }, paramNone).json; assertTrue(isEqual(QResults[0], QResults[1]), "result is equal?");
QResults[1] = AQL_EXECUTE(query, { }, paramIndexRangeFilter).json; assertTrue(isEqual(QResults[0], QResults[2]), "result is equal?");
QResults[2] = AQL_EXECUTE(query, { }, paramIndexRangeSortFilter).json;
assertTrue(isEqual(QResults[0], QResults[1]), "result " + i + " is equal?"); var allResults = getQueryMultiplePlansAndExecutions(query, {});
assertTrue(isEqual(QResults[0], QResults[2]), "result " + i + " is equal?"); for (var j = 1; j < allResults.results.length; j++) {
assertTrue(isEqual(allResults.results[0],
allresults = getQueryMultiplePlansAndExecutions(query, {}); allResults.results[j]),
for (j = 1; j < allresults.results.length; j++) { "while executing '" + query +
assertTrue(isEqual(allresults.results[0], "' this plan gave the wrong results: " + JSON.stringify(allResults.plans[j]) +
allresults.results[j]), " Should be: '" + JSON.stringify(allResults.results[0]) +
"whether the execution of '" + query + "', but is: " + JSON.stringify(allResults.results[j]) + "'"
"' this plan gave the wrong results: " + JSON.stringify(allresults.plans[j]) +
" Should be: '" + JSON.stringify(allresults.results[0]) +
"' but Is: " + JSON.stringify(allresults.results[j]) + "'"
); );
} }
}); });
@ -218,34 +218,37 @@ function optimizerRuleTestSuite_filterByIndex() {
+ colNameOther + " FILTER w.f == 1 SORT w.a, w.h RETURN w.f ) SORT v.a , v.c FILTER v.a == 1RETURN [v.a, x]" + colNameOther + " FILTER w.f == 1 SORT w.a, w.h RETURN w.f ) SORT v.a , v.c FILTER v.a == 1RETURN [v.a, x]"
]; ];
queries.forEach(function(query) { queries.forEach(function(query) {
var j, result; var result;
result = AQL_EXPLAIN(query, { }, paramIndexRangeFilter); result = AQL_EXPLAIN(query, { }, paramIndexRangeFilter);
assertEqual([ IndexRangeRule, FilterRemoveRule ], assertEqual([ IndexRangeRule, FilterRemoveRule ],
removeAlwaysOnClusterRules(result.plan.rules), query); removeAlwaysOnClusterRules(result.plan.rules), query);
hasNoFilterNode(result); hasNoFilterNode(result);
hasIndexRangeNodeWithRanges(result);
result = AQL_EXPLAIN(query, { }, paramIndexRangeSortFilter); result = AQL_EXPLAIN(query, { }, paramIndexRangeSortFilter);
assertEqual([ IndexRangeRule, FilterRemoveRule ], assertEqual([ IndexRangeRule, FilterRemoveRule ],
removeAlwaysOnClusterRules(result.plan.rules), query); removeAlwaysOnClusterRules(result.plan.rules), query);
hasNoFilterNode(result); hasNoFilterNode(result);
hasIndexRangeNodeWithRanges(result);
QResults[0] = AQL_EXECUTE(query, { }, paramNone).json; var QResults = [];
QResults[1] = AQL_EXECUTE(query, { }, paramIndexRangeFilter).json; QResults[0] = AQL_EXECUTE(query, { }, paramNone).json;
QResults[2] = AQL_EXECUTE(query, { }, paramIndexRangeSortFilter).json; QResults[1] = AQL_EXECUTE(query, { }, paramIndexRangeFilter).json;
QResults[2] = AQL_EXECUTE(query, { }, paramIndexRangeSortFilter).json;
assertTrue(isEqual(QResults[0], QResults[1]), "result " + i + " is equal?"); assertTrue(isEqual(QResults[0], QResults[1]), "result is equal?");
assertTrue(isEqual(QResults[0], QResults[2]), "result " + i + " is equal?"); assertTrue(isEqual(QResults[0], QResults[2]), "result is equal?");
allresults = getQueryMultiplePlansAndExecutions(query, {}); var allResults = getQueryMultiplePlansAndExecutions(query, {});
for (j = 1; j < allresults.results.length; j++) { for (var j = 1; j < allResults.results.length; j++) {
assertTrue(isEqual(allresults.results[0], assertTrue(isEqual(allResults.results[0],
allresults.results[j]), allResults.results[j]),
"whether the execution of '" + query + "while executing '" + query +
"' this plan gave the wrong results: " + JSON.stringify(allresults.plans[j]) + "' this plan gave the wrong results: " + JSON.stringify(allResults.plans[j]) +
" Should be: '" + JSON.stringify(allresults.results[0]) + " Should be: '" + JSON.stringify(allResults.results[0]) +
"' but Is: " + JSON.stringify(allresults.results[j]) + "'" "', but is: " + JSON.stringify(allResults.results[j]) + "'"
); );
} }
}); });
} }
@ -257,7 +260,7 @@ function optimizerRuleTestSuite_filterByIndex() {
/// @brief executes the test suite /// @brief executes the test suite
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
jsunity.run(optimizerRuleTestSuite_filterByIndex); jsunity.run(optimizerRuleTestSuite);
return jsunity.done(); return jsunity.done();