···11+DROP INDEX `threadOrder_idx`;--> statement-breakpoint
22+CREATE INDEX `threadOrder_idx` ON `posts` (`rootPost`,`threadOrder`) WHERE threadOrder <> -1;
···179179 }
180180 // Handle queue acknowledgement on success/failure
181181 if (!wasSuccess) {
182182- message.retry({delaySeconds: delay*(message.attempts+1)});
182182+ const delaySeconds = delay*(message.attempts+1);
183183+ console.log(`attempting to retry message in ${delaySeconds}`);
184184+ message.retry({delaySeconds: delaySeconds});
183185 } else {
184186 message.ack();
185187 }
+3-3
src/utils/dbQuery.ts
···11import { addHours, isAfter, isEqual } from "date-fns";
22-import { and, asc, desc, eq, getTableColumns, gt, gte, sql } from "drizzle-orm";
22+import { and, asc, desc, eq, getTableColumns, gt, gte, ne, sql } from "drizzle-orm";
33import { BatchItem } from "drizzle-orm/batch";
44import { DrizzleD1Database } from "drizzle-orm/d1";
55import has from "just-has";
···132132 // Update the post order past here
133133 queriesToExecute.push(db.update(posts).set({threadOrder: sql`threadOrder - 1`})
134134 .where(
135135- and(eq(posts.rootPost, postObj.rootPost!), gt(posts.threadOrder, postObj.threadOrder)
135135+ and(and(eq(posts.rootPost, postObj.rootPost!), ne(posts.threadOrder, -1)), gt(posts.threadOrder, postObj.threadOrder)
136136 )));
137137 }
138138···269269 // update all posts past this one to also update their order (we will take their id)
270270 dbOperations.push(db.update(posts).set({threadOrder: sql`threadOrder + 1`})
271271 .where(
272272- and(eq(posts.rootPost, rootPostID!), gte(posts.threadOrder, parentPostOrder)
272272+ and(and(eq(posts.rootPost, rootPostID!), ne(posts.threadOrder, -1)), gte(posts.threadOrder, parentPostOrder)
273273 )));
274274275275 // Update the root post so that it has the correct flags set on it as well.