ee-query-builder
Advanced tools
Comparing version 0.1.27 to 0.2.0
@@ -93,6 +93,28 @@ !function(){ | ||
SQLString += ' WHERE ' + (this._renderFilter(parameters, query.filter || {}) || 1); | ||
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); | ||
if (this._type === 'postgres' && (query.limit >= 0 || query.offset >= 0)) { | ||
// postgres cannot limit deletes, we have to build a subselect | ||
log(query); | ||
SQLString += ' WHERE CTID IN (' + this._render('query', { | ||
select : [function() {return {keyWord: 'CTID'};}] | ||
, 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+')'; | ||
} | ||
else { | ||
// render filter (where statement) | ||
if (query.join && query.join.length) SQLString += this._renderJoin(query.database, query.join); | ||
if (query.order && query.order.length) SQLString += ' ORDER BY ' + (this._renderOrder(query.order || []) || 1); | ||
SQLString += ' WHERE ' + (this._renderFilter(parameters, query.filter || {}) || 1); | ||
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); | ||
} | ||
@@ -150,8 +172,28 @@ return {SQLString: SQLString, parameters: parameters}; | ||
// render filter (where statement) | ||
SQLString += ' WHERE ' + (this._renderFilter(parameters, query.filter || {}) || 1); | ||
if (this._type === 'postgres' && (query.limit >= 0 || query.offset >= 0)) { | ||
// postgres cannot limit updates, we have to build a subselect | ||
log(query); | ||
SQLString += ' WHERE CTID IN (' + this._render('query', { | ||
select : [function() {return {keyWord: 'CTID'};}] | ||
, 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+')'; | ||
} | ||
else { | ||
// render filter (where statement) | ||
if (query.join && query.join.length) SQLString += this._renderJoin(query.database, query.join); | ||
if (query.order && query.order.length) SQLString += ' ORDER BY ' + (this._renderOrder(query.order || []) || 1); | ||
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); | ||
SQLString += ' WHERE ' + (this._renderFilter(parameters, query.filter || {}) || 1); | ||
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 {SQLString: SQLString, parameters: parameters}; | ||
@@ -335,2 +377,5 @@ } | ||
} | ||
else if (command.keyWord) { | ||
selects.push(command.keyWord); | ||
} | ||
break; | ||
@@ -337,0 +382,0 @@ } |
{ | ||
"name" : "ee-query-builder" | ||
, "description" : "query builder for ee-orm" | ||
, "version" : "0.1.27" | ||
, "version" : "0.2.0" | ||
, "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
22599
511