mirror of https://gitee.com/bigwinds/arangodb
allow functions results as parameters in all function calls
This commit is contained in:
parent
94d6523b87
commit
02a84a4f92
|
@ -150,7 +150,8 @@ static bool CheckArgumentType (TRI_aql_node_t const* parameter,
|
|||
const param_t* const allowed) {
|
||||
param_t found = InitParam();
|
||||
|
||||
if (parameter->_type == TRI_AQL_NODE_REFERENCE) {
|
||||
if (parameter->_type == TRI_AQL_NODE_REFERENCE ||
|
||||
parameter->_type == TRI_AQL_NODE_FCALL) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1760,13 +1760,28 @@ function ahuacatlFunctionsTestSuite () {
|
|||
actual = getQueryResults("RETURN DOCUMENT(\"" + d2._id + "\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
// test with function result parameter
|
||||
actual = getQueryResults("RETURN DOCUMENT(CONCAT(\"foo\", \"bar\"))");
|
||||
assertEqual([ null ], actual);
|
||||
actual = getQueryResults("RETURN DOCUMENT(CONCAT(\"" + cn + "\", \"bart\"))");
|
||||
assertEqual([ null ], actual);
|
||||
|
||||
var d3 = cx.save({ _key: "foo", value: "bar" });
|
||||
expected = [ { value: "bar" } ];
|
||||
actual = getQueryResults("RETURN DOCUMENT(CONCAT(\"" + cn + "\", \"foo\"))");
|
||||
assertEqual([ null ], actual);
|
||||
actual = getQueryResults("RETURN DOCUMENT(CONCAT(@c, \"/\", @k))", { c: cn, k: "foo" });
|
||||
assertEqual(expected, actual);
|
||||
actual = getQueryResults("RETURN DOCUMENT(CONCAT(\"" + cn + "\", \"/\", @k))", { k: "foo" });
|
||||
assertEqual(expected, actual);
|
||||
|
||||
// test with bind parameter
|
||||
expected = [ { title: "nada", value : 123 } ];
|
||||
actual = getQueryResults("RETURN DOCUMENT(@id)", { id: d2._id });
|
||||
assertEqual(expected, actual);
|
||||
|
||||
// test dynamic parameter
|
||||
expected = [ { title: "nada", value : 123 }, { title: "123", value: 456 } ];
|
||||
expected = [ { title: "nada", value : 123 }, { title: "123", value: 456 }, { value: "bar" } ];
|
||||
actual = getQueryResults("FOR d IN @@cn SORT d.value RETURN DOCUMENT(d._id)", { "@cn" : cn });
|
||||
assertEqual(expected, actual);
|
||||
|
||||
|
|
Loading…
Reference in New Issue