Fix postgres adapter

This commit is contained in:
Anatoliy Chakkaev 2012-01-30 17:54:13 +04:00
parent f56bbb44b0
commit 5b308b846e
2 changed files with 2 additions and 27 deletions

View File

@ -169,7 +169,7 @@ PG.prototype.all = function all(model, filter, callback) {
if (err) { if (err) {
return callback(err, []); return callback(err, []);
} }
callback(err, filter && filter.where ? data.items.filter(applyFilter(filter)) : data.items); callback(err, data.items);
}.bind(this)); }.bind(this));
}; };
@ -211,31 +211,6 @@ PG.prototype.toFilter = function (model, filter) {
return out; return out;
}; };
function applyFilter(filter) {
if (typeof filter.where === 'function') {
return filter;
}
var keys = Object.keys(filter.where);
return function (obj) {
var pass = true;
keys.forEach(function (key) {
if (!test(filter.where[key], obj[key])) {
pass = false;
}
});
return pass;
}
function test(example, value) {
if (typeof value === 'string' && example && example.constructor.name === 'RegExp') {
return value.match(example);
}
// not strict equality
return example == value;
}
}
PG.prototype.destroyAll = function destroyAll(model, callback) { PG.prototype.destroyAll = function destroyAll(model, callback) {
this.query('DELETE FROM "' + model + '"', function (err) { this.query('DELETE FROM "' + model + '"', function (err) {
if (err) { if (err) {

View File

@ -347,7 +347,7 @@ function testOrm(schema) {
}); });
// matching regexp // matching regexp
if (Post.schema.name === 'mysql') done(); else if (Post.schema.name !== 'redis') done(); else
Post.all({where: {title: /hello/i}}, function (err, res) { Post.all({where: {title: /hello/i}}, function (err, res) {
var pass = true; var pass = true;
res.forEach(function (r) { res.forEach(function (r) {