MCPcopy Create free account
hub / github.com/apache/paimon-rust / add

Method add

crates/paimon/src/btree/block.rs:211–235  ·  view source on GitHub ↗
(&mut self, key: &[u8], value: &[u8])

Source from the content-addressed store, hash-verified

209 }
210
211 pub fn add(&mut self, key: &[u8], value: &[u8]) {
212 let start = self.data.len() as i32;
213
214 // key_len (var int) + key + value_len (var int) + value
215 let mut var_buf = [0u8; 5];
216 let n = encode_var_int_to_slice(&mut var_buf, 0, key.len() as i32);
217 self.data.extend_from_slice(&var_buf[..n]);
218 self.data.extend_from_slice(key);
219
220 let n = encode_var_int_to_slice(&mut var_buf, 0, value.len() as i32);
221 self.data.extend_from_slice(&var_buf[..n]);
222 self.data.extend_from_slice(value);
223
224 let end = self.data.len() as i32;
225 self.positions.push(start);
226
227 if self.aligned {
228 let current_size = end - start;
229 if self.aligned_size == 0 {
230 self.aligned_size = current_size;
231 } else {
232 self.aligned = self.aligned_size == current_size;
233 }
234 }
235 }
236
237 pub fn entry_count(&self) -> usize {
238 self.positions.len()

Callers 6

putMethod · 0.45
flushMethod · 0.45
test_block_seekFunction · 0.45

Calls 2

encode_var_int_to_sliceFunction · 0.85
lenMethod · 0.45

Tested by 3

test_block_seekFunction · 0.36