This is a set of rewrites to adapt the translation to Cosmos DB.
This rewriter relocates label and property predicates from normalized WHERE expressions
to the related as step as has steps.
Generated flatMap steps with traversal argument can be replaced
with just the traversal for the same effect.
This is a set of rewrites to adapt the translation to AWS Neptune.
This rule removes select steps that immediately follow an as step with the same label.
This rule removes select steps that immediately follow an as step with the same label.
Since the expected value is already in the traverser, this is a useless operation.
This rewrite also enables some cases of RemoveUnusedAliases rewrites.
This rewriter removes many cases of as steps that have been generated,
but are not actually used in the traversal.
This rewriter removes many cases of as steps that have been generated,
but are not actually used in the traversal.
This enables some default Gremlin optimization strategies like
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategy
and allows bulking by keeping traversers compact.
This rewriter removes different sequences of steps that are no-op or otherwise useless.
This rewriter removes different sequences of steps that are no-op or otherwise useless. These sequences can sometimes appear in the generated traversal when results of several walkers are combined together.
Patterns that only match a directed relation and begin the traversal can be simplified to a single graph step.
Property setters where value is a constant can be simplified to avoid empty traversal checks and set or unset the property directly.
Match patterns that start with renaming an existing alias can simply select the existing alias from the traversal.
This rule removes workarounds from effectively-single projections and lifts projection traversals out of single aggregating projections.
This rewriter relocates label and property predicates from normalized
WHEREexpressions to the relatedasstep ashassteps. This should allow Gremlin provider optimization strategies to fold generatedhassteps into the adjacent vertex step.