This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
from 24df1d2b89 TINKERPOP-3250 Standardize request interceptors and switch
to JSON request serialization (#3447)
new dd9b90d614 feat: add GQL.g4 minimal ANTLR grammar for MATCH node/edge
patterns
new 95b7369ce3 feat: add DeclarativeMatchStep for GQL-based pattern
matching
new daf09db8d9 fix: update TinkerGraphGqlPlanner to use canonical GQL.g4
grammar rule names
new f39978c4e4 feat: implement TinkerGraphGqlExecutor with DFS
backtracking pattern matching
new c4df599522 feat: implement TinkerGraphMatchStep: executor integration
and traverser path binding
new 0a1281e260 feat: add TinkerGraphDeclarativeMatchStrategy optimization
strategy
new 733c0da76d feat: add match(String) and match(String, Map) grammar
rules to Gremlin.g4
new 5db447f885 feat: add DeclarativeMatchVerificationStrategy to prevent
terminal match()
new 9e7e1d6213 feat: add match(String) and match(String, Map) spawn
methods to GraphTraversalSource
new a1ca0ac08a feat: add match(String) spawn method to Python GLV and
integration test
new 33b6bd65e0 feat: add match(String) and match(String, Map) to JS GLV
and integration test
new 0a9742e451 feat: add Match(string) and Match(string, IDictionary)
overloads to gremlin-dotnet DSL
new 403e5d24e3 feat: add match(String) support to gremlin-go GLV with
integration test
new 19d6d4029c feat: add match(String) and match(String,Map) to grammar
visitors
new c40bff9ade fix: update TinkerGraphMatchStepTest to not use match() as
terminal step
new e433328283 Fix broken translations
new acc2b96697 fix: code review — bugs, per-graph singletons, tests, and
translations
new ea623deef0 Fixed up match() start step
new 04a10f58ef Renamed parameter names
new 8257bb048a refactor: remove DEFAULT_QUERY_LANGUAGE from
DeclarativeMatchStep — let graph providers own their language
new f9c0857e9e rename gqlQuery to matchQuery across gremlin-core and all
GLVs
new 40c9d0d097 Added documentation for match step
new 9a4b12de5d GQL engine: label/edge count indexes, DAG executor, live
seed selection
new af67f481bc refactor: array bindings + lazy Iterator delivery in GQL
executor
new bc29cc8a2e feat: GQL property filters — inline map syntax and
parameter references
new f074a1ddb9 feat: use TinkerGraph vertex index as seed source for
property-filtered GQL patterns
new 5a4aee65eb refactor: deduplicate parallel anonymous edges in GQL DFS
executor
new b747a2093d docs: document GQL property filter and parameterized query
syntax
new 2cd2fb6ab2 feat: align GQL property filter literal types with
Gremlin's type system
new 2836034e4c refactor: rename QueryNode to QueryVertex to align with
TinkerPop vertex terminology
new 872a42b7a6 feat: property-aware step cost, best-eligible DAG
selection, and adaptive reordering
new 9040f13780 fix: evaluate edge property filter predicates in GQL
executor
new 5e5a6263e9 fix: replace unbounded ConcurrentHashMap plan cache with
Caffeine LRU cache
new 70a968d1da test: add gremlin-js integration tests for declarative
match(String) against TinkerGraph
new 93d5978ac6 docs: document edge property filters and update plan cache
note
new 010a0ff7e1 fix: close GQL blindspots — variable conflicts, edge
equality, plan staleness, NPE
new 26dd52767c Added benchmarks for match()
new 4196fa76ff fix: merge predicates and allow label refinement for reused
node variables in GQL MATCH
new 758478ea1e fix: use any-value-matches semantics for multi-properties
in GQL predicate evaluation
new 885dd01526 test: add edge-case coverage for GQL property predicate and
match() params
new 8e010bb868 Updated documentation for GQL/TinkerGraph
new 79d3287cb4 fix: match(String) returns binding Map instead of
Optional.empty
new da7e5c80f9 fix: correct mock strategy in JS match-test to use
_resultsStream
new 6a70546231 Documentation improvements for match after moving out
Optional
new b3e3f824e6 test: add executor coverage for Byte, Short, BigInteger,
BigDecimal, and Double-d suffix literals
new 93ef1b1a5b Adjust GLV tests gien change to match() returning Map
new 7eb4f799bd docs: add Proposal 10 — Generalized GQL Execution Engine
(gql-gremlin module)
new 848f5d0266 docs: revise Proposal 10 — replace
GraphStatistics/IndexAccess interfaces with Graph default methods
new ec08d1933e feat: implement Proposal 10 — extract gql-gremlin module
with generalized GQL execution engine
new 398532a50e docs: brand TinkerGQL, add gql-gremlin module docs and
provider guide
new 889437871c refactor: centralize GQL planner/executor cache in
GqlDeclarativeMatchStrategy
new 61f6b0a44a Provide a way to configure the cache for the planner
explicitly
new 18a0a71318 docs: fix provider guide, upgrade notes, and reference docs
for gql-gremlin refactor
new 3a3a129dac test: add Gherkin coverage for match(String) / TinkerGQL;
remove language-variant smoke tests
new b05eb9c7ff test: expand TinkerGQL Gherkin coverage and fix OLAP test
exclusion
new 3564eb748f fix: add GLV translator support for match(String, Map) form
in Python, .NET, and Go
new 66a808fa04 fix: exclude @TinkerGQL scenarios from Hadoop feature test
run
new 41a76ec708 test: verify match(String) wire-protocol round-trip and add
cyclic/no-match Gherkin scenarios
new f8331bfeba feat: guard against path-label/pattern-variable name
collision in match()
new 9cb9b91ebf refactor: polish match() PR — constant, docs, test
consolidation
new 2030bffc9b fix: add DeprecationWarning to Python match(Traversal) form
new c1eaa11836 test: add Gherkin scenarios for multi-pattern bridge join
and combined edge variable + filter
new 6315dfc021 fix: address PR review feedback on match() GQL parsing and
Go translation
new 0a66f164b6 refactor: migrate GQL parser unit tests from
tinkergraph-gremlin to gql-gremlin
new b723d458b1 refactor: replace MatchWithParams with variadic Match on
GraphTraversalSource in Go
The 65 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGELOG.asciidoc | 7 +-
docs/src/dev/developer/for-committers.asciidoc | 4 +
.../dev/future/proposal-3-remove-closures.asciidoc | 7 +-
.../dev/future/proposal-arrow-flight-2.asciidoc | 2 +-
.../src/dev/future/proposal-asbool-step-7.asciidoc | 2 +-
.../dev/future/proposal-asnumber-step-6.asciidoc | 2 +-
.../proposal-declarative-match-step-9.asciidoc | 4 +
docs/src/dev/future/proposal-equality-1.asciidoc | 2 +-
docs/src/dev/future/proposal-scoping-5.asciidoc | 2 +-
.../src/dev/future/proposal-transaction-4.asciidoc | 2 +-
.../dev/future/proposal-type-predicate-8.asciidoc | 2 +-
docs/src/dev/provider/gremlin-semantics.asciidoc | 53 +
docs/src/dev/provider/index.asciidoc | 194 ++++
.../reference/implementations-tinkergraph.asciidoc | 40 +
docs/src/reference/the-traversal.asciidoc | 429 ++++---
docs/src/upgrade/release-4.x.x.asciidoc | 92 ++
gql-gremlin/README.md | 67 ++
{gremlin-language => gql-gremlin}/pom.xml | 58 +-
gql-gremlin/src/main/antlr4/GQL.g4 | 311 +++++
.../tinkerpop/gremlin/gql/DefaultGqlExecutor.java | 318 ++++++
.../tinkerpop/gremlin/gql/DefaultGqlPlanner.java | 339 ++++++
.../tinkerpop/gremlin/gql/ExtensionStep.java | 207 ++++
.../gremlin/gql/GqlDeclarativeMatchStrategy.java | 210 ++++
.../apache/tinkerpop/gremlin/gql/GqlExecutor.java | 79 ++
.../apache/tinkerpop/gremlin/gql/GqlMatchPlan.java | 160 +++
.../apache/tinkerpop/gremlin/gql/GqlMatchStep.java | 260 +++++
.../apache/tinkerpop/gremlin/gql/GqlPlanner.java | 71 ++
.../tinkerpop/gremlin/gql/PropertyPredicate.java | 162 +++
.../apache/tinkerpop/gremlin/gql/QueryEdge.java | 129 +++
.../apache/tinkerpop/gremlin/gql/QueryGraph.java | 387 +++++++
.../apache/tinkerpop/gremlin/gql/QueryVertex.java | 89 ++
.../tinkerpop/gremlin/gql/GqlGrammarTest.java | 267 +++++
.../tinkerpop/gremlin/gql/QueryGraphTest.java | 364 ++++++
.../grammar/DefaultGremlinBaseVisitor.java | 18 +-
.../language/grammar/TraversalMethodVisitor.java | 19 +-
.../grammar/TraversalSourceSpawnMethodVisitor.java | 17 +
.../translator/DotNetTranslateVisitor.java | 48 +-
.../language/translator/GoTranslateVisitor.java | 45 +
.../translator/PythonTranslateVisitor.java | 12 +-
.../traversal/dsl/graph/GraphTraversal.java | 36 +
.../traversal/dsl/graph/GraphTraversalSource.java | 38 +
.../gremlin/process/traversal/dsl/graph/__.java | 18 +
.../traversal/step/map/DeclarativeMatchStep.java | 159 +++
.../process/traversal/step/map/MatchStep.java | 3 +
.../process/traversal/step/util/WithOptions.java | 11 +
.../apache/tinkerpop/gremlin/structure/Graph.java | 82 ++
.../grammar/TraversalMethodVisitorTest.java | 15 +
.../grammar/TraversalSourceSpawnVisitorTest.java | 17 +
.../language/translator/GremlinTranslatorTest.java | 18 +
.../gremlin/process/traversal/GremlinLangTest.java | 7 +
.../Process/Traversal/GraphTraversal.cs | 25 +
.../Process/Traversal/GraphTraversalSource.cs | 27 +
.../src/Gremlin.Net/Process/Traversal/__.cs | 24 +-
.../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 25 +
gremlin-go/driver/cucumber/gremlin.go | 25 +
gremlin-go/driver/graphTraversal.go | 3 +-
gremlin-go/driver/graphTraversalSource.go | 9 +
gremlin-go/driver/gremlinlang_test.go | 28 +
.../language/translator/DotNetTranslateVisitor.ts | 34 +-
.../lib/language/translator/GoTranslateVisitor.ts | 38 +
.../language/translator/PythonTranslateVisitor.ts | 12 +-
.../lib/process/graph-traversal.ts | 30 +-
.../gremlin-javascript/test/cucumber/gremlin.js | 25 +
.../test/integration/match-tests.js | 82 ++
.../gremlin-javascript/test/unit/match-test.js | 113 ++
gremlin-language/src/main/antlr4/Gremlin.g4 | 10 +-
.../gremlin_python/process/graph_traversal.py | 14 +
.../src/main/python/tests/feature/gremlin.py | 25 +
.../python/tests/unit/process/test_gremlin_lang.py | 7 +
.../apache/tinkerpop/gremlin/LoadGraphWith.java | 19 +-
.../apache/tinkerpop/gremlin/features/World.java | 2 +-
.../gremlin/language/translator/translations.json | 425 +++++++
.../gremlin/structure/io/gryo/air-routes-v3.kryo | Bin
.../gremlin/test/features/map/MatchString.feature | 322 ++++++
gremlin-tools/gremlin-benchmark/pom.xml | 2 +-
.../benchmark/util/AbstractGraphBenchmark.java | 2 +
.../gremlin/process/MatchStepBenchmark.java | 295 +++++
.../hadoop/HadoopGraphFeatureIntegrateTest.java | 2 +-
pom.xml | 2 +
tinkergraph-gremlin/pom.xml | 10 +
.../tinkergraph/structure/AbstractTinkerGraph.java | 64 +-
.../gremlin/tinkergraph/structure/TinkerGraph.java | 31 +-
.../tinkergraph/structure/TinkerIndexHelper.java | 4 +
.../structure/TinkerTransactionGraph.java | 20 +-
.../gremlin/gql/DefaultGqlExecutorTest.java | 1194 ++++++++++++++++++++
.../gremlin/gql/DefaultGqlPlannerTest.java | 451 ++++++++
.../traversal/step/map/GqlMatchStepTest.java | 528 +++++++++
.../GqlDeclarativeMatchStrategyTest.java | 219 ++++
.../tinkergraph/structure/TinkerShuffleGraph.java | 9 +
89 files changed, 8828 insertions(+), 214 deletions(-)
create mode 100644 gql-gremlin/README.md
copy {gremlin-language => gql-gremlin}/pom.xml (59%)
create mode 100644 gql-gremlin/src/main/antlr4/GQL.g4
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/DefaultGqlExecutor.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/DefaultGqlPlanner.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/ExtensionStep.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/GqlDeclarativeMatchStrategy.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/GqlExecutor.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/GqlMatchPlan.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/GqlMatchStep.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/GqlPlanner.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/PropertyPredicate.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/QueryEdge.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/QueryGraph.java
create mode 100644
gql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/gql/QueryVertex.java
create mode 100644
gql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/gql/GqlGrammarTest.java
create mode 100644
gql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/gql/QueryGraphTest.java
create mode 100644
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/DeclarativeMatchStep.java
create mode 100644
gremlin-js/gremlin-javascript/test/integration/match-tests.js
create mode 100644 gremlin-js/gremlin-javascript/test/unit/match-test.js
copy data/air-routes.kryo =>
gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/air-routes-v3.kryo
(100%)
create mode 100644
gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/MatchString.feature
create mode 100644
gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/MatchStepBenchmark.java
create mode 100644
tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/gql/DefaultGqlExecutorTest.java
create mode 100644
tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/gql/DefaultGqlPlannerTest.java
create mode 100644
tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/step/map/GqlMatchStepTest.java
create mode 100644
tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/optimization/GqlDeclarativeMatchStrategyTest.java