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:
+5
-5
@@ -1,20 +1,20 @@
|
||||
import sqlGenGrabConcatStr from "./sql-generator-grab-concat-str";
|
||||
import { sqlField, sqlIdent } from "./sql-safe";
|
||||
import { sqlColumn, sqlName } from "./sql-safe";
|
||||
export default function sqlGenGrabSelectFieldSQL({ selectFields, append_table_names, table_name }) {
|
||||
let str = "";
|
||||
str += ` ${selectFields
|
||||
?.map((fld) => {
|
||||
if (typeof fld != "object") {
|
||||
return sqlField(fld);
|
||||
return sqlColumn(fld);
|
||||
}
|
||||
const fld_name = sqlField(fld.fieldName);
|
||||
const fld_name = sqlColumn(fld.fieldName);
|
||||
const final_fld_name = append_table_names && !fld_name.includes(".")
|
||||
? `${table_name}.${fld_name}`
|
||||
: fld_name;
|
||||
if (fld.group_concat) {
|
||||
return sqlGenGrabConcatStr({
|
||||
field: final_fld_name,
|
||||
alias: fld.group_concat.alias || fld.alias || fld_name,
|
||||
alias: fld.group_concat.alias || fld.alias || String(fld.fieldName),
|
||||
separator: fld.group_concat.separator,
|
||||
distinct: fld.group_concat.distinct,
|
||||
});
|
||||
@@ -46,7 +46,7 @@ export default function sqlGenGrabSelectFieldSQL({ selectFields, append_table_na
|
||||
fld_str += final_fld_name;
|
||||
}
|
||||
if (alias) {
|
||||
fld_str += ` AS ${sqlIdent(alias, "alias")}`;
|
||||
fld_str += ` AS ${sqlName(alias, "alias")}`;
|
||||
}
|
||||
return fld_str;
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user