MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / compare_preextracted

Function compare_preextracted

nodedb/src/data/executor/handlers/join/mod.rs:118–132  ·  view source on GitHub ↗

Compare two documents using pre-extracted key byte ranges. `a_ranges`/`b_ranges` are `(start, end)` byte slices into the respective docs.

(
    a_doc: &[u8],
    a_ranges: &[(usize, usize)],
    b_doc: &[u8],
    b_ranges: &[(usize, usize)],
)

Source from the content-addressed store, hash-verified

116/// Compare two documents using pre-extracted key byte ranges.
117/// `a_ranges`/`b_ranges` are `(start, end)` byte slices into the respective docs.
118pub(super) fn compare_preextracted(
119 a_doc: &[u8],
120 a_ranges: &[(usize, usize)],
121 b_doc: &[u8],
122 b_ranges: &[(usize, usize)],
123) -> std::cmp::Ordering {
124 use nodedb_query::msgpack_scan::compare_field_bytes;
125 for (a_range, b_range) in a_ranges.iter().zip(b_ranges.iter()) {
126 let ord = compare_field_bytes(a_doc, *a_range, b_doc, *b_range);
127 if ord != std::cmp::Ordering::Equal {
128 return ord;
129 }
130 }
131 std::cmp::Ordering::Equal
132}
133
134/// Filter a binary msgpack row against ScanFilter predicates.
135///

Callers 2

Calls 2

compare_field_bytesFunction · 0.85
iterMethod · 0.45

Tested by

no test coverage detected