You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2018/03/13 21:56:19 UTC
[1/3] tinkerpop git commit: CTR: Implemented
`Traversal::invalidateTraverserRequirements`.
Repository: tinkerpop
Updated Branches:
refs/heads/master 345d81a8f -> 5ae66ed94
CTR: Implemented `Traversal::invalidateTraverserRequirements`.
This was necessary to allow traversal-mutating strategies (e.g. `SubgraphStrategy`) to invalidate the already cached traverser requirements.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bccff988
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bccff988
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bccff988
Branch: refs/heads/master
Commit: bccff988dc713b9acdee9e9a3858e2c10b7de163
Parents: f9f3d4f
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Mar 13 11:33:06 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Mar 13 13:17:43 2018 -0700
----------------------------------------------------------------------
.../remote/traversal/AbstractRemoteTraversal.java | 5 +++++
.../tinkerpop/gremlin/process/traversal/Traversal.java | 7 +++++++
.../traversal/lambda/AbstractLambdaTraversal.java | 7 +++++++
.../traversal/strategy/decoration/SubgraphStrategy.java | 11 ++++++++++-
.../gremlin/process/traversal/util/DefaultTraversal.java | 5 +++++
5 files changed, 34 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bccff988/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
index 0c6a7aa..480d1fc 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
@@ -88,6 +88,11 @@ public abstract class AbstractRemoteTraversal<S,E> implements RemoteTraversal<S,
}
@Override
+ public void invalidateTraverserRequirements() {
+ throw new UnsupportedOperationException("Remote traversals do not support this method");
+ }
+
+ @Override
public void setSideEffects(final TraversalSideEffects sideEffects) {
throw new UnsupportedOperationException("Remote traversals do not support this method");
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bccff988/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
index 220c995..7a6ddce 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
@@ -426,6 +426,13 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable, A
public Set<TraverserRequirement> getTraverserRequirements();
/**
+ * Invalidates the set of all {@link TraverserRequirement}s for this traversal.
+ */
+ public default void invalidateTraverserRequirements() {
+
+ };
+
+ /**
* Call the {@link Step#reset} method on every step in the traversal.
*/
public default void reset() {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bccff988/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
index 8f910a0..84e1896 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
@@ -184,6 +184,13 @@ public abstract class AbstractLambdaTraversal<S, E> implements Traversal.Admin<S
}
@Override
+ public void invalidateTraverserRequirements() {
+ if (null != this.bypassTraversal) {
+ this.bypassTraversal.invalidateTraverserRequirements();
+ }
+ }
+
+ @Override
public int hashCode() {
return null == this.bypassTraversal ? this.getClass().hashCode() : this.bypassTraversal.hashCode();
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bccff988/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
index e0d260f..7968363 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
@@ -43,6 +43,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -170,6 +171,7 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
}
// turn g.V().out() to g.V().outE().inV() only if there is an edge predicate otherwise
+ boolean invalidateTraverserRequirements = false;
for (final VertexStep<?> step : vertexSteps) {
if (step.returnsEdge())
continue;
@@ -177,7 +179,8 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, (Traversal) this.vertexCriterion.clone()), step, traversal);
} else {
final VertexStep<Edge> someEStep = new VertexStep<>(traversal, Edge.class, step.getDirection(), step.getEdgeLabels());
- final Step<Edge, Vertex> someVStep = step.getDirection() == Direction.BOTH ?
+ final boolean addsPathRequirement;
+ final Step<Edge, Vertex> someVStep = (addsPathRequirement = step.getDirection() == Direction.BOTH) ?
new EdgeOtherVertexStep(traversal) :
new EdgeVertexStep(traversal, step.getDirection().opposite());
@@ -189,9 +192,15 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, this.edgeCriterion.clone()), someEStep, traversal);
if (null != this.vertexCriterion)
TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, this.vertexCriterion.clone()), someVStep, traversal);
+
+ invalidateTraverserRequirements |= addsPathRequirement;
}
}
+ if (invalidateTraverserRequirements) {
+ traversal.invalidateTraverserRequirements();
+ }
+
// turn g.V().properties() to g.V().properties().xxx
// turn g.V().values() to g.V().properties().xxx.value()
if (null != this.vertexPropertyCriterion) {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bccff988/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index 585a82b..57c271b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -166,6 +166,11 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
}
@Override
+ public void invalidateTraverserRequirements() {
+ this.requirements = null;
+ }
+
+ @Override
public List<Step> getSteps() {
return this.unmodifiableSteps;
}
[3/3] tinkerpop git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tinkerpop
Posted by dk...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tinkerpop
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5ae66ed9
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5ae66ed9
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5ae66ed9
Branch: refs/heads/master
Commit: 5ae66ed941f6b8d8fc25fd235f55ea519b72d79f
Parents: 764824f 345d81a
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Mar 13 14:56:06 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Mar 13 14:56:06 2018 -0700
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
docs/src/reference/gremlin-variants.asciidoc | 2 +-
.../upgrade/release-3.2.x-incubating.asciidoc | 11 +++++
gremlin-dotnet/glv/Enum.template | 9 +++-
gremlin-dotnet/glv/generate.groovy | 41 +++++++--------
.../Gremlin.Net/Process/Traversal/Barrier.cs | 9 +++-
.../Process/Traversal/Cardinality.cs | 13 +++--
.../src/Gremlin.Net/Process/Traversal/Column.cs | 11 +++--
.../Gremlin.Net/Process/Traversal/Direction.cs | 13 +++--
.../Process/Traversal/EnumWrapper.cs | 52 ++++++++++++++++++++
.../Process/Traversal/GraphSONVersion.cs | 13 +++--
.../Process/Traversal/GraphTraversal.cs | 43 +++++++++-------
.../Process/Traversal/GraphTraversalSource.cs | 14 ++++--
.../Process/Traversal/GryoVersion.cs | 11 +++--
.../Process/Traversal/IBiFunction.cs | 33 +++++++++++++
.../Process/Traversal/IBinaryOperator.cs | 34 +++++++++++++
.../Process/Traversal/IComparator.cs | 32 ++++++++++++
.../Gremlin.Net/Process/Traversal/IConsumer.cs | 33 +++++++++++++
.../Gremlin.Net/Process/Traversal/IFunction.cs | 32 ++++++++++++
.../Gremlin.Net/Process/Traversal/IPredicate.cs | 32 ++++++++++++
.../Gremlin.Net/Process/Traversal/Operator.cs | 29 ++++++-----
.../src/Gremlin.Net/Process/Traversal/Order.cs | 13 +++--
.../src/Gremlin.Net/Process/Traversal/Pick.cs | 11 +++--
.../src/Gremlin.Net/Process/Traversal/Pop.cs | 15 ++++--
.../src/Gremlin.Net/Process/Traversal/Scope.cs | 11 +++--
.../src/Gremlin.Net/Process/Traversal/T.cs | 15 ++++--
.../Process/Traversal/TraversalPredicate.cs | 2 +-
.../src/Gremlin.Net/Process/Traversal/__.cs | 26 +++++-----
.../Structure/IO/GraphSON/EnumSerializer.cs | 5 +-
.../Structure/IO/GraphSON/GraphSONWriter.cs | 2 +-
.../Gherkin/GherkinTestRunner.cs | 1 +
.../TraversalEnumParameter.cs | 5 +-
32 files changed, 455 insertions(+), 119 deletions(-)
----------------------------------------------------------------------
[2/3] tinkerpop git commit: Merge branch 'tp33'
Posted by dk...@apache.org.
Merge branch 'tp33'
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/764824fe
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/764824fe
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/764824fe
Branch: refs/heads/master
Commit: 764824fe85bb03aab1a240fc4003d8733f37414e
Parents: 6e0ccd8 bccff98
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Mar 13 14:55:53 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Mar 13 14:55:53 2018 -0700
----------------------------------------------------------------------
.../remote/traversal/AbstractRemoteTraversal.java | 5 +++++
.../tinkerpop/gremlin/process/traversal/Traversal.java | 7 +++++++
.../traversal/lambda/AbstractLambdaTraversal.java | 7 +++++++
.../traversal/strategy/decoration/SubgraphStrategy.java | 11 ++++++++++-
.../gremlin/process/traversal/util/DefaultTraversal.java | 5 +++++
5 files changed, 34 insertions(+), 1 deletion(-)
----------------------------------------------------------------------