ee-query-builder
Advanced tools
Comparing version 0.3.0 to 0.3.1
@@ -114,15 +114,3 @@ !function(){ | ||
// we need to render a subquery for every selected field (primary key) | ||
SQLString += ' WHERE ' + query.select.map(function(column) { | ||
return this._escapeId(query.from)+'.'+this._escapeId(column)+' IN('+this._render('query', { | ||
select : [column] | ||
, from : query.from | ||
, database : query.database | ||
, filter : query.filter | ||
, join : query.join | ||
, order : query.order | ||
, group : query.group | ||
, limit : query.limit | ||
, offset : query.offset | ||
}, parameters).SQLString+')' | ||
}.bind(this)).join(' AND '); | ||
SQLString += ' WHERE ' + this._renderUpdateOrDeleteFilter(query, parameters); | ||
@@ -217,3 +205,18 @@ return {SQLString: SQLString, parameters: parameters}; | ||
// we need to render a subquery for every selected field (primary key) | ||
SQLString += ' WHERE ' + query.select.map(function(column) { | ||
SQLString += ' WHERE ' + this._renderUpdateOrDeleteFilter(query, parameters); | ||
return {SQLString: SQLString, parameters: parameters}; | ||
} | ||
/** | ||
* render the filter for the update query | ||
* | ||
* @param <Object> query | ||
* @param <Object> parameters object, values that must be | ||
* escaped an inserted into the SQL | ||
*/ | ||
, _renderUpdateOrDeleteFilter: function(query, parameters) { | ||
return query.select.map(function(column) { | ||
return this._escapeId(query.from)+'.'+this._escapeId(column)+' IN('+this._render('query', { | ||
@@ -230,5 +233,3 @@ select : [column] | ||
}, parameters).SQLString+')' | ||
}.bind(this)).join(' AND '); | ||
return {SQLString: SQLString, parameters: parameters}; | ||
}.bind(this)).join(' AND ') | ||
} | ||
@@ -238,3 +239,2 @@ | ||
/** | ||
@@ -302,15 +302,45 @@ * add update specific commands | ||
// render order statement | ||
if(query.order && query.order.length) SQLString += ' ORDER BY ' + (this._renderOrder(query.order || []) || 1); | ||
// order & group | ||
SQLString += this._renderOrderAndGroup(query); | ||
// limit & offset | ||
SQLString += this._renderLimit(query); | ||
return {SQLString: SQLString, parameters: parameters}; | ||
} | ||
/** | ||
* render the ôrder ang group statements | ||
* | ||
* @param <Object> query | ||
*/ | ||
, _renderOrderAndGroup: function(query) { | ||
var str = ''; | ||
// render group statement | ||
if(query.group && query.group.length) SQLString += ' GROUP BY ' + (this._renderGroup(query.group ) || 1); | ||
if(query.group && query.group.length) str += ' GROUP BY ' + (this._renderGroup(query.group ) || 1); | ||
// render order statement | ||
if(query.order && query.order.length) str += ' ORDER BY ' + (this._renderOrder(query.order || []) || 1); | ||
// limit & offset | ||
if(query.limit && !isNaN(parseInt(query.limit, 10))) SQLString += ' LIMIT ' + parseInt(query.limit, 10); | ||
if(query.offset && !isNaN(parseInt(query.offset, 10))) SQLString += ' OFFSET ' + parseInt(query.offset, 10); | ||
return str; | ||
} | ||
return {SQLString: SQLString, parameters: parameters}; | ||
/** | ||
* render thje limit / offset statements | ||
* | ||
* @param <Object> query | ||
*/ | ||
, _renderLimit: function(query) { | ||
var str = ''; | ||
if(query.limit && !isNaN(parseInt(query.limit, 10))) str += ' LIMIT ' + parseInt(query.limit, 10); | ||
if(query.offset && !isNaN(parseInt(query.offset, 10))) str += ' OFFSET ' + parseInt(query.offset, 10); | ||
return str; | ||
} | ||
@@ -317,0 +347,0 @@ |
{ | ||
"name" : "ee-query-builder" | ||
, "description" : "SQL query builder for the ee-orm package. Implents the postgres syntax." | ||
, "version" : "0.3.0" | ||
, "version" : "0.3.1" | ||
, "homepage" : "https://github.com/eventEmitter/ee-query-builder" | ||
@@ -6,0 +6,0 @@ , "author" : "Michael van der Weg <michael@eventemitter.com> (http://eventemitter.com/)" |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
26505
656