Add queue tables, quote SQL identifiers (v1.3.0)
- isQueue table option adds queue columns and a (status, available_at) index; BunSQLite.queue exposes add, claim, complete, fail and release_stale with atomic claims - Set busy_timeout on connections so workers in separate processes wait instead of failing with SQLITE_BUSY - Quote table and column names with backticks in generated SQL, so reserved words (to, order, group) work and unknown columns error instead of matching as string literals - Tests for queue ops, multi-process claims and reserved-word names Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Vendored
+3
-3
@@ -3,7 +3,7 @@ import _ from "lodash";
|
||||
import init from "../../functions/init";
|
||||
import sqlGenerator from "../../utils/sql-generator";
|
||||
import { sqlValue } from "../../utils/sql-insert-generator";
|
||||
import { sqlIdent } from "../../utils/sql-safe";
|
||||
import { sqlName } from "../../utils/sql-safe";
|
||||
export default async function DbUpdate({ table, data, query, targetId, returning = true, config, }) {
|
||||
let sqlObj = {
|
||||
string: "",
|
||||
@@ -23,7 +23,7 @@ export default async function DbUpdate({ table, data, query, targetId, returning
|
||||
let values = [];
|
||||
const whereClause = sqlQueryObj.where.string;
|
||||
if (whereClause) {
|
||||
let sql = `UPDATE ${sqlIdent(table, "table name")} SET`;
|
||||
let sql = `UPDATE ${sqlName(table, "table name")} SET`;
|
||||
const finalData = {
|
||||
updated_at: Date.now(),
|
||||
...data,
|
||||
@@ -34,7 +34,7 @@ export default async function DbUpdate({ table, data, query, targetId, returning
|
||||
if (!key)
|
||||
continue;
|
||||
const isLast = i == keys.length - 1;
|
||||
sql += ` ${sqlIdent(key, "column name")}=?`;
|
||||
sql += ` ${sqlName(key, "column name")}=?`;
|
||||
values.push(sqlValue(finalData[key]));
|
||||
if (!isLast) {
|
||||
sql += `,`;
|
||||
|
||||
Reference in New Issue
Block a user