From 37767af17f2e76642dc6258bbbe878b314bdc62a Mon Sep 17 00:00:00 2001 From: Laurent Leleux Date: Fri, 4 Sep 2015 14:47:15 +0200 Subject: [PATCH] fix #69 Remove quotes from strings starting with $ Convert RID's from string to objects when doing an add/remove --- lib/db/statement.js | 12 ++++++++++-- lib/utils.js | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/db/statement.js b/lib/db/statement.js index d22b4074..a53d218c 100644 --- a/lib/db/statement.js +++ b/lib/db/statement.js @@ -135,7 +135,11 @@ Statement.prototype.add = function (property/*, ...values*/) { values = new Array(totalArguments - 1), a; for (a = 1; a < totalArguments; a++) { - values[a - 1] = arguments[a]; + if (!(arguments[a] instanceof RID) && RID.isValid(arguments[a])) { + values[a - 1] = RID(arguments[a]); + } else { + values[a - 1] = arguments[a]; + } } this._state.add = this._state.add || []; this._state.add.push([property, values]); @@ -155,7 +159,11 @@ Statement.prototype.remove = function (property/*, ...values*/) { values = new Array(totalArguments - 1), a; for (a = 1; a < totalArguments; a++) { - values[a - 1] = arguments[a]; + if (!(arguments[a] instanceof RID) && RID.isValid(arguments[a])) { + values[a - 1] = RID(arguments[a]); + } else { + values[a - 1] = arguments[a]; + } } this._state.remove = this._state.remove || []; this._state.remove.push([property, values]); diff --git a/lib/utils.js b/lib/utils.js index 5814aa6b..c7e50d28 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -214,6 +214,9 @@ exports.encode = function encode (value) { return value; } else if (typeof value === 'string') { + if (value.charAt(0) === '$') { + return exports.escape(value); + } return '"' + exports.escape(value) + '"'; } else if (value instanceof Date) {