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

Method truncate

nodedb-columnar/src/memtable/column_data/mutation.rs:21–123  ·  view source on GitHub ↗

Truncate this column to `n` rows, discarding any rows beyond that point. Used by transaction rollback to restore the column to its pre-write state. Panics in debug builds if `n > self.len()`.

(&mut self, n: usize)

Source from the content-addressed store, hash-verified

19 /// Used by transaction rollback to restore the column to its pre-write state.
20 /// Panics in debug builds if `n > self.len()`.
21 pub(crate) fn truncate(&mut self, n: usize) {
22 debug_assert!(
23 n <= self.len(),
24 "truncate({n}) exceeds column length {}",
25 self.len()
26 );
27 match self {
28 Self::Int64 { values, valid } => {
29 values.truncate(n);
30 if let Some(v) = valid {
31 v.truncate(n);
32 }
33 }
34 Self::Float64 { values, valid } => {
35 values.truncate(n);
36 if let Some(v) = valid {
37 v.truncate(n);
38 }
39 }
40 Self::Bool { values, valid } => {
41 values.truncate(n);
42 if let Some(v) = valid {
43 v.truncate(n);
44 }
45 }
46 Self::Timestamp { values, valid } => {
47 values.truncate(n);
48 if let Some(v) = valid {
49 v.truncate(n);
50 }
51 }
52 Self::Decimal { values, valid } => {
53 values.truncate(n);
54 if let Some(v) = valid {
55 v.truncate(n);
56 }
57 }
58 Self::Uuid { values, valid } => {
59 values.truncate(n);
60 if let Some(v) = valid {
61 v.truncate(n);
62 }
63 }
64 Self::String {
65 data,
66 offsets,
67 valid,
68 } => {
69 // offsets has length n_rows + 1; truncate to n+1.
70 if n < offsets.len().saturating_sub(1) {
71 let byte_end = offsets[n] as usize;
72 data.truncate(byte_end);
73 offsets.truncate(n + 1);
74 }
75 if let Some(v) = valid {
76 v.truncate(n);
77 }
78 }

Callers 15

prefix_successorFunction · 0.45
insert_sortedFunction · 0.45
apply_rotationMethod · 0.45
openMethod · 0.45
adaptive_searchFunction · 0.45
search_with_metricMethod · 0.45
searchMethod · 0.45
matryoshka_searchFunction · 0.45
searchMethod · 0.45

Calls 1

lenMethod · 0.45