Add check for Column in `by(Function)`
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/a0a243b2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/a0a243b2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/a0a243b2 Branch: refs/heads/TINKERPOP-2023 Commit: a0a243b256dbfdf66bb5ce24958fc91c7e6eed03 Parents: 1b99323 Author: yatam <[email protected]> Authored: Mon Aug 6 15:57:06 2018 +0300 Committer: Stephen Mallette <[email protected]> Committed: Mon Aug 13 10:35:09 2018 -0400 ---------------------------------------------------------------------- .../tinkerpop/gremlin/process/traversal/step/ByModulating.java | 2 ++ .../tinkerpop/gremlin/process/traversal/step/map/GroupStep.java | 2 ++ 2 files changed, 4 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a0a243b2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java index bea1b56..01841fa 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/ByModulating.java @@ -57,6 +57,8 @@ public interface ByModulating { public default void modulateBy(final Function function) throws UnsupportedOperationException { if (function instanceof T) this.modulateBy((T) function); + else if (function instanceof Column) + this.modulateBy(new ColumnTraversal((Column) function)); else this.modulateBy(__.map(new FunctionTraverser<>(function)).asAdmin()); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a0a243b2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java index 07ca4ae..127d562 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStep.java @@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Operator; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; +import org.apache.tinkerpop.gremlin.process.traversal.lambda.ColumnTraversal; import org.apache.tinkerpop.gremlin.process.traversal.lambda.ElementValueTraversal; import org.apache.tinkerpop.gremlin.process.traversal.lambda.FunctionTraverser; import org.apache.tinkerpop.gremlin.process.traversal.lambda.IdentityTraversal; @@ -176,6 +177,7 @@ public final class GroupStep<S, K, V> extends ReducingBarrierStep<S, Map<K, V>> if (valueTraversal instanceof ElementValueTraversal || valueTraversal instanceof TokenTraversal || valueTraversal instanceof IdentityTraversal || + valueTraversal instanceof ColumnTraversal || valueTraversal.getStartStep() instanceof LambdaMapStep && ((LambdaMapStep) valueTraversal.getStartStep()).getMapFunction() instanceof FunctionTraverser) { return (Traversal.Admin<S, E>) __.map(valueTraversal).fold(); } else
