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

Method extract_pk_bytes

nodedb-columnar/src/mutation/engine.rs:263–277  ·  view source on GitHub ↗

Extract PK bytes from a row of values.

(&self, values: &[Value])

Source from the content-addressed store, hash-verified

261
262 /// Extract PK bytes from a row of values.
263 pub(super) fn extract_pk_bytes(&self, values: &[Value]) -> Result<Vec<u8>, ColumnarError> {
264 if values.len() != self.schema.columns.len() {
265 return Err(ColumnarError::SchemaMismatch {
266 expected: self.schema.columns.len(),
267 got: values.len(),
268 });
269 }
270
271 if self.pk_col_indices.len() == 1 {
272 Ok(encode_pk(&values[self.pk_col_indices[0]]))
273 } else {
274 let pk_values: Vec<&Value> = self.pk_col_indices.iter().map(|&i| &values[i]).collect();
275 Ok(crate::pk_index::encode_composite_pk(&pk_values))
276 }
277 }
278}
279
280#[cfg(test)]

Callers 4

insertMethod · 0.80
insert_with_surrogateMethod · 0.80
insert_if_absentMethod · 0.80
encode_pk_from_rowMethod · 0.80

Calls 5

encode_pkFunction · 0.85
encode_composite_pkFunction · 0.85
collectMethod · 0.80
lenMethod · 0.45
iterMethod · 0.45

Tested by

no test coverage detected