+7
api/src/database/records.rs
+7
api/src/database/records.rs
···
60
60
async fn batch_insert_records_chunk(&self, records: &[Record]) -> Result<(), DatabaseError> {
61
61
let mut tx = self.pool.begin().await?;
62
62
63
+
let mut deduped = std::collections::HashMap::new();
64
+
for record in records {
65
+
let key = (&record.uri, &record.slice_uri);
66
+
deduped.insert(key, record);
67
+
}
68
+
let records: Vec<&Record> = deduped.into_values().collect();
69
+
63
70
let mut query = String::from(
64
71
r#"INSERT INTO "record" ("uri", "cid", "did", "collection", "json", "indexed_at", "slice_uri") VALUES "#,
65
72
);