From bf99980f165dfd217c2e3f37f9e6a16d543644b4 Mon Sep 17 00:00:00 2001 From: Sankha Narayan Guria Date: Sat, 20 Oct 2012 22:55:49 +0530 Subject: [PATCH 1/2] optimized the set() function by reducing the number of assignments to the variable delim --- lib/Query.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/Query.js b/lib/Query.js index 204bf23..a84dece 100644 --- a/lib/Query.js +++ b/lib/Query.js @@ -124,12 +124,10 @@ Query.prototype.sql = function (query, level) { } function set(data) { - var sql = "", delim="", i; - for(i in data) { + var sql = "", delim=", ", i; + for(i in data) sql += delim + nd + i + nd + "=" + self.sql(data[i], level+1); - delim = ", "; - } - return sql; + return sql.substring(2); } function values(data) { From df0e6b0dea46fe1ce5196a0a13a81c9e7118020a Mon Sep 17 00:00:00 2001 From: Sankha Narayan Guria Date: Sun, 21 Oct 2012 01:23:44 +0530 Subject: [PATCH 2/2] added support for INSERT, UPDATE, DELETE operations on multiple tables with single requests --- lib/Query.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/Query.js b/lib/Query.js index a84dece..764d1b0 100644 --- a/lib/Query.js +++ b/lib/Query.js @@ -171,18 +171,27 @@ Query.prototype.sql = function (query, level) { sql += " WHERE " + where(query.filters); } } else if(query.verb == "insert") { - sql = "INSERT INTO " + nd + query.table + nd + - " SET " + set(query.data); + var sql = "", delim="\n", i; + for(i in data) + sql += delim + "INSERT INTO " + nd + query.table[i] + nd + + " SET " + set(query.data[i]); + sql = sql.substring(1); } else if(query.verb == "update") { if(!query.filters) throw "Can't update without filters."; - sql = "UPDATE " + nd + query.table + nd + - " SET " + set(query.data) + - " WHERE " + where(query.filters) + + var sql = "", delim="\n", i; + for(i in data) + sql += delim + "UPDATE " + nd + query.table[i] + nd + + " SET " + set(query.data[i]) + + " WHERE " + where(query.filters[i]) + " LIMIT 1"; + sql = sql.substring(1); } else if(query.verb == "delete") { if(!query.filters) throw "Can't delete without filters."; - sql = "DELETE FROM " + nd + query.table + nd + - " WHERE " + where(query.filters); + var sql = "", delim="\n", i; + for(i in data) + sql += delim +"DELETE FROM " + nd + query.table[i] + nd + + " WHERE " + where(query.filters[i]); + sql = sql.substring(1); } if(!sql) {