pub enum Predicate {
Show 14 variants
LogicalIdEq(String),
KindEq(String),
JsonPathEq {
path: String,
value: ScalarValue,
},
JsonPathCompare {
path: String,
op: ComparisonOp,
value: ScalarValue,
},
SourceRefEq(String),
ContentRefNotNull,
ContentRefEq(String),
JsonPathFusedEq {
path: String,
value: String,
},
JsonPathFusedTimestampCmp {
path: String,
op: ComparisonOp,
value: i64,
},
JsonPathFusedBoolEq {
path: String,
value: bool,
},
EdgePropertyEq {
path: String,
value: ScalarValue,
},
EdgePropertyCompare {
path: String,
op: ComparisonOp,
value: ScalarValue,
},
JsonPathFusedIn {
path: String,
values: Vec<String>,
},
JsonPathIn {
path: String,
values: Vec<ScalarValue>,
},
}Expand description
A filter predicate applied to candidate nodes.
Variants§
LogicalIdEq(String)
Match nodes with the exact logical ID.
KindEq(String)
Match nodes with the exact kind.
JsonPathEq
Equality check on a JSON property at the given path.
Fields
value: ScalarValueValue to compare against.
JsonPathCompare
Ordered comparison on a JSON property at the given path.
SourceRefEq(String)
Match nodes with the exact source_ref.
ContentRefNotNull
Match nodes where content_ref is not NULL (i.e. content proxy nodes).
ContentRefEq(String)
Match nodes with the exact content_ref URI.
JsonPathFusedEq
Fused equality check on a JSON text property at the given path.
Unlike Predicate::JsonPathEq, this variant is classified as
fusable by crate::fusion::is_fusable and is pushed into
the search CTE’s inner WHERE clause so the CTE LIMIT applies
after the predicate runs. The caller opts into fusion by
registering an FTS property schema that covers the path; the
tethered builder enforces that gate at filter-add time.
Fields
JsonPathFusedTimestampCmp
Fused ordered comparison on a JSON integer/timestamp property at
the given path. See Predicate::JsonPathFusedEq for the fusion
contract.
Fields
op: ComparisonOpComparison operator.
JsonPathFusedBoolEq
Fused equality check on a JSON boolean property at the given path.
See Predicate::JsonPathFusedEq for the fusion contract.
The boolean is stored as SQLite integer 1/0.
Fields
EdgePropertyEq
Equality check on a JSON property of the traversed edge at the given path.
Structurally identical to Predicate::JsonPathEq but targets
e.properties on the edge row rather than n.properties on the
target node. Only valid inside an expansion slot’s edge_filter.
EdgePropertyCompare
Ordered comparison on a JSON property of the traversed edge at the given path.
Structurally identical to Predicate::JsonPathCompare but targets
e.properties on the edge row rather than n.properties on the
target node. Only valid inside an expansion slot’s edge_filter.
JsonPathFusedIn
Fused IN-set check on a JSON text property at the given path.
Like Predicate::JsonPathFusedEq, this variant is classified as
fusable and is pushed into the search CTE’s inner WHERE clause.
The caller must have a registered FTS property schema for the path.
Fields
JsonPathIn
IN-set check on a JSON property at the given path.
Unlike Predicate::JsonPathFusedIn, this variant is not fusable
and is applied as a residual WHERE clause on the Nodes driver scan.
Fields
values: Vec<ScalarValue>Non-empty set of values; the node must match at least one.