MCPcopy Create free account
hub / github.com/erans/pgsqlite / insert

Method insert

src/cache/row_description.rs:102–127  ·  view source on GitHub ↗

Insert a new RowDescription into the cache

(&self, key: RowDescriptionKey, fields: Vec<FieldDescription>)

Source from the content-addressed store, hash-verified

100
101 /// Insert a new RowDescription into the cache
102 pub fn insert(&self, key: RowDescriptionKey, fields: Vec<FieldDescription>) {
103 let mut cache = self.cache.write().unwrap();
104 let mut stats = self.stats.write().unwrap();
105
106 // Check capacity and evict if necessary
107 if cache.len() >= self.capacity && !cache.contains_key(&key) {
108 // Find and remove the least recently used entry
109 if let Some((lru_key, _)) = cache.iter()
110 .min_by_key(|(_, entry)| (entry.hit_count, entry.created_at)) {
111 let lru_key = lru_key.clone();
112 cache.remove(&lru_key);
113 stats.evictions += 1;
114 debug!("Evicted LRU RowDescription cache entry");
115 }
116 }
117
118 let entry = CachedRowDescription {
119 fields,
120 created_at: Instant::now(),
121 hit_count: 0,
122 };
123
124 cache.insert(key.clone(), entry);
125 stats.entries = cache.len();
126 debug!("Cached RowDescription for query: {}", &key.query[..50.min(key.query.len())]);
127 }
128
129 /// Clear all cache entries
130 pub fn clear(&self) {

Callers 1

Calls 3

lenMethod · 0.45
cloneMethod · 0.45
removeMethod · 0.45

Tested by 1