[
https://issues.apache.org/jira/browse/TINKERPOP-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephen Mallette updated TINKERPOP-2621:
----------------------------------------
Component/s: (was: javascript)
language
Environment: (was: 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)
> 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: language
> Affects Versions: 3.5.1
> Reporter: Tal Ron
> Priority: Major
>
> 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)