Tal Ron created TINKERPOP-2621:
----------------------------------
Summary: toString for traversals such as within with empty array
returns empty string as argument instead of brackets
Key: TINKERPOP-2621
URL: https://issues.apache.org/jira/browse/TINKERPOP-2621
Project: TinkerPop
Issue Type: Bug
Components: javascript
Affects Versions: 3.5.1
Environment: neptune engine: 1.0.2.2 (i did not see any fixes for that
in newer engine releases for such traversal)
gremlin: 3.5.1
Reporter: Tal Ron
I use the gremlin Translator to translate bytecode query to script in order to
allow sending it to neptune profile/explain endpoints.
a query which include a steps such as '.within([])' , notice the empty array,
is translated to
.within() which fails in neptune, where within([]) with empty brackets
actually works.
now I don't know if this is neptune blame which should allow such traversal or
gremlin (client) issue, and if gremlin should print empty brackets or empty
string..
see: node_modules/gremlin/lib/process/traversal.js :
return this.operator + '(' + formatValue(this.value) + ')';
.toString([]) => ''
{code:java}
//
toString() {
function formatValue(value){
if (Array.isArray(value)) {
let acc = [];
for (const item of value) {
acc.push(formatValue(item));
}
return acc;
}
if (value && typeof value === "string"){
return "'" + value + "'";
}
return value;
}
if (this.other === undefined || this.other === null) {
return this.operator + '(' + formatValue(this.value) + ')';
}
return this.operator + '(' + formatValue(this.value) + ', ' +
formatValue(this.other) + ')';
} {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)