[ 
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)

Reply via email to