[
https://issues.apache.org/jira/browse/TINKERPOP-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17420654#comment-17420654
]
ASF GitHub Bot commented on TINKERPOP-2621:
-------------------------------------------
divijvaidya commented on pull request #1481:
URL: https://github.com/apache/tinkerpop/pull/1481#issuecomment-927742342
Could we also please create a JIRA to write an optimizer to handle empty
within()/without() steps from the query? Some examples of how the optimizers
will behave are as follows (I can add more details in the JIRA later):
1. `has(key, within(''))` is always false in which case we can replace
`within('')` with `false`.
2. `has(hey, without(''))` is always true in which case this
step/`HasContainer` can be removed from the traversal as a filter.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
> 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)