MCPcopy Create free account
hub / github.com/clockworklabs/SpacetimeDB / insert_bulk

Method insert_bulk

crates/bench/src/sqlite.rs:116–132  ·  view source on GitHub ↗
(&mut self, table_id: &Self::TableId, rows: Vec<T>)

Source from the content-addressed store, hash-verified

114 }
115
116 fn insert_bulk<T: BenchTable>(&mut self, table_id: &Self::TableId, rows: Vec<T>) -> ResultBench<()> {
117 let statement = memo_query(BenchName::InsertBulk, table_id, || {
118 insert_template(table_id, T::product_type())
119 });
120
121 let mut begin: rusqlite::CachedStatement<'_> = self.db.prepare_cached(BEGIN_TRANSACTION)?;
122 let mut stmt = self.db.prepare_cached(&statement)?;
123 let mut commit = self.db.prepare_cached(COMMIT_TRANSACTION)?;
124
125 begin.execute(())?;
126 for row in rows {
127 stmt.execute(row.into_sqlite_params())?;
128 }
129 commit.execute(())?;
130
131 Ok(())
132 }
133
134 fn update_bulk<T: BenchTable>(&mut self, table_id: &Self::TableId, row_count: u32) -> ResultBench<()> {
135 let mut product = T::product_type();

Callers 6

run_benchmarkMethod · 0.45
insert_bulkFunction · 0.45
update_bulkFunction · 0.45
iterateFunction · 0.45
filterFunction · 0.45
basic_invariantsFunction · 0.45

Calls 5

memo_queryFunction · 0.85
insert_templateFunction · 0.85
into_sqlite_paramsMethod · 0.80
OkFunction · 0.50
executeMethod · 0.45

Tested by

no test coverage detected