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)

Reply via email to