mirror of
https://github.com/atuinsh/atuin.git
synced 2024-11-22 00:03:49 +01:00
fix: idx cache inconsistency (#2231)
This commit is contained in:
parent
c3723aaf27
commit
5fe8ae05e5
@ -219,15 +219,16 @@ impl Store for SqliteStore {
|
||||
idx: RecordIdx,
|
||||
limit: u64,
|
||||
) -> Result<Vec<Record<EncryptedData>>> {
|
||||
let res =
|
||||
sqlx::query("select * from store where idx >= ?1 and host = ?2 and tag = ?3 limit ?4")
|
||||
.bind(idx as i64)
|
||||
.bind(host.0.as_hyphenated().to_string())
|
||||
.bind(tag)
|
||||
.bind(limit as i64)
|
||||
.map(Self::query_row)
|
||||
.fetch_all(&self.pool)
|
||||
.await?;
|
||||
let res = sqlx::query(
|
||||
"select * from store where idx >= ?1 and host = ?2 and tag = ?3 order by idx asc limit ?4",
|
||||
)
|
||||
.bind(idx as i64)
|
||||
.bind(host.0.as_hyphenated().to_string())
|
||||
.bind(tag)
|
||||
.bind(limit as i64)
|
||||
.map(Self::query_row)
|
||||
.fetch_all(&self.pool)
|
||||
.await?;
|
||||
|
||||
Ok(res)
|
||||
}
|
||||
|
@ -571,7 +571,7 @@ impl Database for Postgres {
|
||||
"insert into store_idx_cache
|
||||
(user_id, host, tag, idx)
|
||||
values ($1, $2, $3, $4)
|
||||
on conflict(user_id, host, tag) do update set idx = $4
|
||||
on conflict(user_id, host, tag) do update set idx = greatest(idx, $4)
|
||||
",
|
||||
)
|
||||
.bind(user.id)
|
||||
|
Loading…
Reference in New Issue
Block a user