1
0
Fork 0

Merge branch 'devel' of https://github.com/arangodb/arangodb into devel

This commit is contained in:
Jan Steemann 2015-10-22 17:23:52 +02:00
commit e6121b4464
2 changed files with 47 additions and 3 deletions

View File

@ -379,8 +379,52 @@ function arrayIndexCrazyQueriesSuite () {
db._drop(cName);
},
testLongChainediArrayHash : function () {
/* Needs a decission for nested arrays
testLongChainedArrayHash : function () {
var idx = col.ensureHashIndex("the[*].quick.brown.foxx[*].jumps[*].over.the.lazy.dog[*]").id;
const buildDocument = function (dog1, dog2) {
dog2 = dog2 || dog1;
var doc = { the: [] };
var foxx = [];
var jumps = [];
jumps.push({over : { the: { lazy: { dog: dog1 } } } });
jumps.push({over : { the: { lazy: { dog: dog2 } } } });
foxx.push(jumps);
doc.the.push({ quick: { brown: { foxx } } });
return doc;
};
col.save(buildDocument([1], [42]));
col.save(buildDocument([1,3,4], [5,6,7]));
col.save(buildDocument([3,4], [5,6,7]));
col.save(buildDocument([3,4], [5,6,7]));
var checkIsOptimizedQuery = function (query, bindVars) {
var plan = AQL_EXPLAIN(query, bindVars).plan;
var nodeTypes = plan.nodes.map(function(node) {
return node.type;
});
require("internal").print(bindVars);
require("org/arangodb/aql/explainer").explain({query, bindVars});
assertEqual("SingletonNode", nodeTypes[0], query);
assertEqual(-1, nodeTypes.indexOf("EnumerateCollection"),
"found EnumerateCollection node for:" + query);
var idxNodeId = nodeTypes.indexOf("IndexNode");
assertNotEqual(-1, idxNodeId, "no index used for: " + query);
var idxNode = plan.nodes[idxNodeId];
require("internal").print(idxNode);
};
const query = `FOR x IN ${cName} FILTER @tag
IN x.the[*].quick.brown.foxx[*].jumps[*].over.the.lazy.dog[*]
SORT x._key RETURN x._key`;
var bindVars = {};
bindVars.tag = 42;
checkIsOptimizedQuery(query, bindVars);
}
*/
};

View File

@ -298,6 +298,7 @@ function arrayHashIndexSuite () {
assertEqual(res.length, 0);
},
/* TODO Decission required here
testInsertAndReadNestedElements: function () {
var idx = collection.ensureHashIndex("a[*].b").id;
var id1 = collection.save({a: [{b: 1}]})._id;
@ -305,7 +306,6 @@ function arrayHashIndexSuite () {
collection.save({a: [1,2,3]});
collection.save({b: [1,2,3]});
/*
var res = collection.BY_EXAMPLE_HASH(idx, {a: {b: 1} }, 0, null).documents;
assertEqual(res.length, 2);
assertEqual(res[0]._id, id1);
@ -314,8 +314,8 @@ function arrayHashIndexSuite () {
res = collection.BY_EXAMPLE_HASH(idx, {a: {b: 2} }, 0, null).documents;
assertEqual(res.length, 1);
assertEqual(res[0]._id, id2);
*/
},
*/
};
}