From 02d4235abdf13f498608a06b79b6ba4998a79563 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sun, 23 Feb 2025 09:21:14 -0600 Subject: [PATCH] Rename nostr_events_new_pkey to nostr_events_pkey --- packages/db/migrations/052_rename_pkey.ts | 12 ++++++++++++ packages/ditto/storages/DittoPgStore.test.ts | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 packages/db/migrations/052_rename_pkey.ts diff --git a/packages/db/migrations/052_rename_pkey.ts b/packages/db/migrations/052_rename_pkey.ts new file mode 100644 index 00000000..c7472d02 --- /dev/null +++ b/packages/db/migrations/052_rename_pkey.ts @@ -0,0 +1,12 @@ +import { type Kysely, sql } from 'kysely'; + +export async function up(db: Kysely): Promise { + try { + await sql`ALTER INDEX nostr_events_new_pkey RENAME TO nostr_events_pkey;`.execute(db); + } catch { + // all good + } +} + +export async function down(_db: Kysely): Promise { +} diff --git a/packages/ditto/storages/DittoPgStore.test.ts b/packages/ditto/storages/DittoPgStore.test.ts index 5b731ff4..405229dd 100644 --- a/packages/ditto/storages/DittoPgStore.test.ts +++ b/packages/ditto/storages/DittoPgStore.test.ts @@ -210,6 +210,16 @@ Deno.test('throws a RelayError when inserting an event deleted by a user', async ); }); +Deno.test('inserting the same event twice', async () => { + await using db = await createTestDB({ pure: true }); + const { store } = db; + + const event = genEvent({ kind: 1 }); + + await store.event(event); + await store.event(event); +}); + Deno.test('inserting replaceable events', async () => { await using db = await createTestDB({ pure: true }); const { store } = db; @@ -225,6 +235,8 @@ Deno.test('inserting replaceable events', async () => { const newerEvent = genEvent({ kind: 0, created_at: 999 }, sk); await store.event(newerEvent); assertEquals(await store.query([{ kinds: [0] }]), [newerEvent]); + + await store.event(olderEvent); // doesn't throw }); Deno.test("throws a RelayError when querying an event with a large 'since'", async () => {