Skip to content

Commit 0e630b0

Browse files
committed
fix: stringify document params for query() text protocol
query() escapes JS objects as SQL SET-clauses instead of JSON strings, breaking INSERT/UPDATE. Wrap document with JSON.stringify() in put() and update() to serialize correctly.
1 parent 473d82e commit 0e630b0

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

src/utils/db.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ export function put(tableName, document) {
346346
const updateQuery = `INSERT INTO ${tableName} (${PRIMARY_COLUMN}, ${JSON_COLUMN}) values(?,?)`;
347347
try {
348348
const documentID = createDocumentId();
349-
CONNECTION.query(updateQuery, [documentID, document],
349+
CONNECTION.query(updateQuery, [documentID, JSON.stringify(document)],
350350
function (err, _results, _fields) {
351351
//TODO: emit success or failure metrics based on return value
352352
if (err) {
@@ -1113,7 +1113,7 @@ export function update(tableName, documentId, document, condition) {
11131113
const sqlCondition = Query.transformCocoToSQLQuery(condition, []);
11141114
updateQuery = `UPDATE ${tableName} SET ${JSON_COLUMN} = ? WHERE ${PRIMARY_COLUMN} = ? AND (${sqlCondition});`;
11151115
}
1116-
CONNECTION.query(updateQuery, [document, documentId],
1116+
CONNECTION.query(updateQuery, [JSON.stringify(document), documentId],
11171117
function (err, _results, _fields) {
11181118
//TODO: emit success or failure metrics based on return value
11191119
if (err) {

0 commit comments

Comments
 (0)