[
https://issues.apache.org/jira/browse/TINKERPOP-2854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrea Santurbano updated TINKERPOP-2854:
-----------------------------------------
Description:
Hi everybody,
I'm playing with Gremlin and OpenCypher query transpiler by using the following
bytecode query:
{code:java}
[[], [inject( cypher.start), map([[], [project( GENERATED1, GENERATED2,
GENERATED3), by([[], [constant(1)]]), by([[], [constant(2)]]), by([[],
[constant(3)]]), select(values)]]), project(r), by([[], [project( GENERATED5,
GENERATED6, GENERATED7), by([[], [identity()]]), by([[], [choose([[],
[constant(binding[from=3])]], [[], [constant(binding[from=3])]], [[],
[constant( cypher.null)]])]]), by([[], [choose([[],
[constant(binding[to=1])]], [[], [constant(binding[to=1])]], [[], [constant(
cypher.null)]])]]), select(values),
map(lambda[cypherListSlice().apply(it)])]])]]{code}
Using Gremlin 3.4.13 produces the following traversal:
{code:java}
[InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
[ConstantStep(3)]]), TraversalMapStep(values)]),
ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(3),
HasNextStep],[[(eq(true)), [ConstantStep(3), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(1),
HasNextStep],[[(eq(true)), [ConstantStep(1), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
LambdaMapStep(lambda)]])]{code}
while 3.6.1 creates this one (we only upgraded the library and changed some
package name references):
{code:java}
[InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
[ConstantStep(3)]]), TraversalMapStep(values)]),
ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(OUT),
HasNextStep],[[(eq(true)), [ConstantStep(OUT), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(IN),
HasNextStep],[[(eq(true)), [ConstantStep(IN), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
LambdaMapStep(lambda)]])]{code}
Indeed the one in 3.6.1 is the wrong one because it adds some extra steps like
{*}ConstantStep(IN){*}.
was:
Hi everybovy,
I'm playing with Gremlin and OpenCypher query transpiler by using the following
bytecode query:
{code:java}
[[], [inject( cypher.start), map([[], [project( GENERATED1, GENERATED2,
GENERATED3), by([[], [constant(1)]]), by([[], [constant(2)]]), by([[],
[constant(3)]]), select(values)]]), project(r), by([[], [project( GENERATED5,
GENERATED6, GENERATED7), by([[], [identity()]]), by([[], [choose([[],
[constant(binding[from=3])]], [[], [constant(binding[from=3])]], [[],
[constant( cypher.null)]])]]), by([[], [choose([[],
[constant(binding[to=1])]], [[], [constant(binding[to=1])]], [[], [constant(
cypher.null)]])]]), select(values),
map(lambda[cypherListSlice().apply(it)])]])]]{code}
Using Gremlin 3.4.13 produces the following traversal:
{code:java}
[InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
[ConstantStep(3)]]), TraversalMapStep(values)]),
ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(3),
HasNextStep],[[(eq(true)), [ConstantStep(3), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(1),
HasNextStep],[[(eq(true)), [ConstantStep(1), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
LambdaMapStep(lambda)]])]{code}
while 3.6.1 creates this one (we only upgraded the library and changed some
package name references):
{code:java}
[InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
[ConstantStep(3)]]), TraversalMapStep(values)]),
ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(OUT),
HasNextStep],[[(eq(true)), [ConstantStep(OUT), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(IN),
HasNextStep],[[(eq(true)), [ConstantStep(IN), EndStep]], [(eq(false)),
[ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
LambdaMapStep(lambda)]])]{code}
Indeed the one in 3.6.1 is the wrong one because it adds some extra steps like
{*}ConstantStep(IN){*}.
> Generated Traversal differs from v3.4.13 to v3.6.1
> --------------------------------------------------
>
> Key: TINKERPOP-2854
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2854
> Project: TinkerPop
> Issue Type: Bug
> Affects Versions: 3.6.1
> Reporter: Andrea Santurbano
> Priority: Major
>
> Hi everybody,
> I'm playing with Gremlin and OpenCypher query transpiler by using the
> following bytecode query:
> {code:java}
> [[], [inject( cypher.start), map([[], [project( GENERATED1, GENERATED2,
> GENERATED3), by([[], [constant(1)]]), by([[], [constant(2)]]), by([[],
> [constant(3)]]), select(values)]]), project(r), by([[], [project(
> GENERATED5, GENERATED6, GENERATED7), by([[], [identity()]]), by([[],
> [choose([[], [constant(binding[from=3])]], [[], [constant(binding[from=3])]],
> [[], [constant( cypher.null)]])]]), by([[], [choose([[],
> [constant(binding[to=1])]], [[], [constant(binding[to=1])]], [[], [constant(
> cypher.null)]])]]), select(values),
> map(lambda[cypherListSlice().apply(it)])]])]]{code}
> Using Gremlin 3.4.13 produces the following traversal:
>
>
> {code:java}
> [InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
> GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
> [ConstantStep(3)]]), TraversalMapStep(values)]),
> ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
> GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(3),
> HasNextStep],[[(eq(true)), [ConstantStep(3), EndStep]], [(eq(false)),
> [ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(1),
> HasNextStep],[[(eq(true)), [ConstantStep(1), EndStep]], [(eq(false)),
> [ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
> LambdaMapStep(lambda)]])]{code}
> while 3.6.1 creates this one (we only upgraded the library and changed some
> package name references):
>
>
> {code:java}
> [InjectStep([ cypher.start]), TraversalMapStep([ProjectStep([ GENERATED1,
> GENERATED2, GENERATED3],[[ConstantStep(1)], [ConstantStep(2)],
> [ConstantStep(3)]]), TraversalMapStep(values)]),
> ProjectStep([r],[[ProjectStep([ GENERATED5, GENERATED6,
> GENERATED7],[[IdentityStep], [ChooseStep([ConstantStep(OUT),
> HasNextStep],[[(eq(true)), [ConstantStep(OUT), EndStep]], [(eq(false)),
> [ConstantStep( cypher.null), EndStep]]])], [ChooseStep([ConstantStep(IN),
> HasNextStep],[[(eq(true)), [ConstantStep(IN), EndStep]], [(eq(false)),
> [ConstantStep( cypher.null), EndStep]]])]]), TraversalMapStep(values),
> LambdaMapStep(lambda)]])]{code}
> Indeed the one in 3.6.1 is the wrong one because it adds some extra steps
> like {*}ConstantStep(IN){*}.
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)