mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(kv): restore keyset paging for numeric key scans (#2314)
This commit is contained in:
@@ -306,9 +306,13 @@ suite('postgres kv upgrade safety', () => {
|
||||
WHERE tablename = '${OLD}' AND indexname <> '${OLD}_row_key_c_idx'
|
||||
EXCEPT SELECT replace(indexdef, '${NEW}', 'KV') FROM pg_indexes WHERE tablename = '${NEW}')
|
||||
UNION ALL
|
||||
(SELECT replace(indexdef, '${NEW}', 'KV') FROM pg_indexes WHERE tablename = '${NEW}'
|
||||
(SELECT replace(indexdef, '${NEW}', 'KV') FROM pg_indexes
|
||||
WHERE tablename = '${NEW}' AND indexname <> '${NEW}_row_key_numeric_idx'
|
||||
EXCEPT SELECT replace(indexdef, '${OLD}', 'KV') FROM pg_indexes WHERE tablename = '${OLD}')
|
||||
) d`);
|
||||
const added = await raw.query<{indexname: string}>(`
|
||||
SELECT indexname FROM pg_indexes WHERE tablename = '${NEW}'
|
||||
EXCEPT SELECT replace(indexname, '${OLD}', '${NEW}') FROM pg_indexes WHERE tablename = '${OLD}'`);
|
||||
const collations = await raw.query<{tablename: string; attname: string; collname: string}>(`
|
||||
SELECT cls.relname AS tablename, att.attname, col.collname
|
||||
FROM pg_attribute att
|
||||
@@ -322,6 +326,7 @@ suite('postgres kv upgrade safety', () => {
|
||||
);
|
||||
expect(Number(diff.rows[0]!.n)).toBe(0);
|
||||
expect(Number(schemaDiff.rows[0]!.n)).toBe(0);
|
||||
expect(added.rows.map((r) => r.indexname)).toEqual([`${NEW}_row_key_numeric_idx`]);
|
||||
expect(collations.rows.filter((r) => r.tablename === OLD).map((r) => r.collname)).toEqual(['default', 'default']);
|
||||
expect(collations.rows.filter((r) => r.tablename === NEW).map((r) => r.collname)).toEqual(['C', 'C']);
|
||||
expect(cIndexes.rows.map((r) => r.tablename)).toEqual([OLD]);
|
||||
|
||||
Reference in New Issue
Block a user