mirror of https://gitee.com/bigwinds/arangodb
Fix the result analysis of the multi-plan cross tests
This commit is contained in:
parent
8f27ef531c
commit
258cf9ee7d
|
@ -26,6 +26,7 @@
|
||||||
/// @author Jan Steemann
|
/// @author Jan Steemann
|
||||||
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
var PY = function (plan) { require("internal").print(require("js-yaml").safeDump(plan));};
|
||||||
|
|
||||||
var internal = require("internal");
|
var internal = require("internal");
|
||||||
var jsunity = require("jsunity");
|
var jsunity = require("jsunity");
|
||||||
|
@ -192,13 +193,13 @@ function optimizerRuleTestSuite() {
|
||||||
// todo: we use an index anyways right now.
|
// todo: we use an index anyways right now.
|
||||||
// currently only ASC supported.
|
// currently only ASC supported.
|
||||||
// "FOR v IN " + colName + " SORT v.a DESC RETURN [v.a, v.b]",true],
|
// "FOR v IN " + colName + " SORT v.a DESC RETURN [v.a, v.b]",true],
|
||||||
["FOR v IN " + colName + " SORT v.b, v.a RETURN [v.a, v.b]",true],
|
["FOR v IN " + colName + " SORT v.b, v.a RETURN [v.a]",true],
|
||||||
["FOR v IN " + colName + " SORT v.c RETURN [v.a, v.b]",true],
|
["FOR v IN " + colName + " SORT v.c RETURN [v.a, v.b]",true],
|
||||||
["FOR v IN " + colName + " SORT v.a + 1 RETURN [v.a, v.b]",false],// this will throw...
|
["FOR v IN " + colName + " SORT v.a + 1 RETURN [v.a]",false],// this will throw...
|
||||||
["FOR v IN " + colName + " SORT CONCAT(TO_STRING(v.a), \"lol\") RETURN [v.a, v.b]",true],
|
["FOR v IN " + colName + " SORT CONCAT(TO_STRING(v.a), \"lol\") RETURN [v.a]",true],
|
||||||
// TODO: limit blocks sort atm.
|
// TODO: limit blocks sort atm.
|
||||||
["FOR v IN " + colName + " FILTER v.a > 2 LIMIT 3 SORT v.a RETURN [v.a, v.b] ",true],
|
["FOR v IN " + colName + " FILTER v.a > 2 LIMIT 3 SORT v.a RETURN [v.a] ",true],
|
||||||
["FOR v IN " + colName + " FOR w IN " + colNameOther + " SORT v.a RETURN [v.a, v.b]",true]
|
["FOR v IN " + colName + " FOR w IN " + colNameOther + " SORT v.a RETURN [v.a]",true]
|
||||||
];
|
];
|
||||||
|
|
||||||
queries.forEach(function(query) {
|
queries.forEach(function(query) {
|
||||||
|
@ -207,11 +208,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertEqual([], result.plan.rules, query);
|
assertEqual([], result.plan.rules, query);
|
||||||
if (query[1]) {
|
if (query[1]) {
|
||||||
var allresults = getQueryMultiplePlansAndExecutions(query[0], {});
|
var allresults = getQueryMultiplePlansAndExecutions(query[0], {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -249,11 +253,14 @@ function optimizerRuleTestSuite() {
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
AQL_EXECUTEJSON(allresults.plans[0].plan, paramNone);
|
AQL_EXECUTEJSON(allresults.plans[0].plan, paramNone);
|
||||||
|
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
});
|
});
|
||||||
|
@ -284,11 +291,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[1]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0], QResults[1]), "Result " + i + " is Equal?");
|
||||||
|
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
});
|
});
|
||||||
|
@ -343,11 +353,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
||||||
}
|
}
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -413,11 +426,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
||||||
}
|
}
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -489,11 +505,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
||||||
}
|
}
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -567,7 +586,7 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0], QResults[i]), "Result " + i + " is Equal?");
|
||||||
}
|
}
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of this plan gave the right results: " +
|
||||||
|
@ -615,11 +634,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0].sort(sortArray), QResults[i]), "Result " + i + " is Equal?");
|
assertTrue(isEqual(QResults[0].sort(sortArray), QResults[i]), "Result " + i + " is Equal?");
|
||||||
}
|
}
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -657,11 +679,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
||||||
|
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -698,11 +723,14 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
||||||
|
|
||||||
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -740,7 +768,7 @@ function optimizerRuleTestSuite() {
|
||||||
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
||||||
|
|
||||||
var allresults = getQueryMultiplePlansAndExecutions(query, {});
|
var allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of this plan gave the right results: " +
|
||||||
|
@ -779,11 +807,14 @@ function optimizerRuleTestSuite() {
|
||||||
|
|
||||||
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
assertTrue(isEqual(QResults[0], QResults[1]), "Results are Equal?");
|
||||||
var allresults = getQueryMultiplePlansAndExecutions(query, {});
|
var allresults = getQueryMultiplePlansAndExecutions(query, {});
|
||||||
for (j = 1; j <= allresults.length; j++) {
|
for (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 this plan gave the right results: " +
|
"whether the execution of " + query[0] +
|
||||||
allresults.plans[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]) + "'"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue