This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new ccc8327099 Make hasValue() value-matching semantics explicit in
provider docs
ccc8327099 is described below
commit ccc8327099988c52ce4d42c058edf0f38d136473
Author: Stephen Mallette <[email protected]>
AuthorDate: Wed Sep 9 20:34:11 2026 +0000
Make hasValue() value-matching semantics explicit in provider docs
Clarify the value-matching contract for hasValue() in the Gremlin
semantics provider guide: multiple values use within-set (any-of)
matching, value comparison follows Gremlin equality and comparability
including cross-type numeric coercion, and a null argument matches
nothing without raising an error.
Assisted-by: Kiro:claude-opus-4.8
---
docs/src/dev/provider/gremlin-semantics.asciidoc | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/docs/src/dev/provider/gremlin-semantics.asciidoc
b/docs/src/dev/provider/gremlin-semantics.asciidoc
index 633083c939..cc133ee833 100644
--- a/docs/src/dev/provider/gremlin-semantics.asciidoc
+++ b/docs/src/dev/provider/gremlin-semantics.asciidoc
@@ -2159,7 +2159,14 @@ None
*Considerations:*
-* Equivalent to `has(T.value, ...)`.
+* `hasValue(value)` is equivalent to `has(T.value, value)`.
+* When multiple values are supplied, `hasValue(value, otherValues...)` is
equivalent to
+ `has(T.value, within(value, otherValues...))`: the property matches if its
value equals *any* of the
+ supplied values (any-of / OR semantics).
+* Value matching uses Gremlin equality, so it follows the rules described in
+ <<gremlin-semantics-equality-comparability, Equality and Comparability>>,
including cross-type numeric
+ coercion (for example, the integer `1` matches the long `1L`, per <<Numeric
Type Promotion>>).
+* A `null` argument matches nothing (produces an empty result) and does not
raise an error.
* Operates on `Property` or `VertexProperty` traversers (typically reached via
`properties()`).
* Child traversals must be read-only; mutating steps are rejected with an
`Argument Error`.