Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit 4871fe5

Browse files
fix cached queries (#10797)
1 parent f7d23f2 commit 4871fe5

1 file changed

Lines changed: 11 additions & 13 deletions

File tree

  • frameworks/Rust/water-http/src

frameworks/Rust/water-http/src/db.rs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ impl PgConnection {
175175
for _ in 0..num {
176176
let id = (self.rang.clone().generate::<u32>() % 10_000 ) as i32;
177177
let row = self.cl.query_one(&self.world, &[&id]).await.unwrap();
178-
worlds.push(World {
178+
worlds.push(World {
179179
id: row.get(0),
180180
randomnumber: row.get(1),
181181
});
@@ -217,7 +217,7 @@ impl PgConnection {
217217
id:ids[index],
218218
randomnumber:s_id
219219
});
220-
numbers.push(s_id);
220+
numbers.push(s_id);
221221
}
222222
buffers.body.clear();
223223
for index in 0..num {
@@ -262,24 +262,22 @@ impl PgConnection {
262262

263263

264264
pub fn get_cached_queries(&self,num:usize)->&[u8]{
265-
let buf = self.buffers();
266-
let buf = &mut buf.body;
267-
buf.clear();
268-
buf.extend_from_slice(br#"["#);
269-
let mut writer = BytesMuteWriter(buf);
265+
let buffers = self.buffers();
266+
let mut worlds = Vec::<World>::with_capacity(num);
270267
for _ in 0..num {
271268
let rd = (self.rang.clone().generate::<u32>() % 10_000 ) as i32;
272269
let v = match self.get_world_id_for_cache(rd){
273270
None => {continue}
274271
Some(e)=>{e}
275272
};
276-
writer.extend_from_slice(br"{");
277-
_ = write!(writer, r#""id":{},"randomnumber":{}"#, rd, v);
278-
writer.extend_from_slice(br"},");
273+
worlds.push(World{
274+
id:rd,
275+
randomnumber:*v
276+
})
279277
}
280-
if buf.len() >1 {buf.truncate(buf.len() - 1);}
281-
buf.extend_from_slice(b"]");
282-
return &buf[..]
278+
buffers.body.clear();
279+
sonic_rs::to_writer(BytesMuteWriter(&mut buffers.body), &worlds).unwrap();
280+
return &buffers.body[..]
283281
}
284282

285283
fn get_world_id_for_cache(&self, id: i32) -> Option<&i32> {

0 commit comments

Comments
 (0)