Skip to content

Commit 5197af8

Browse files
author
Mike Eldridge
committed
map { '!=' : null } in queries to IS NOT NULL via knex's whereNotNull() call
1 parent 7cac235 commit 5197af8

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,11 @@ class DSSqlAdapter {
338338
if (op === '==' || op === '===') {
339339
query = query.where(field, v)
340340
} else if (op === '!=' || op === '!==') {
341-
query = query.where(field, '!=', v)
341+
if (v === null) {
342+
query = query.whereNotNull(field)
343+
} else {
344+
query = query.where(field, '!=', v)
345+
}
342346
} else if (op === '>') {
343347
query = query.where(field, '>', v)
344348
} else if (op === '>=') {

test/filterQuery.spec.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,16 @@ describe('DSSqlAdapter#filterQuery', function () {
3434
var filterQuery = adapter.filterQuery(User, { orderBy: 'name' }, { query });
3535
assert.equal(filterQuery.toString(), 'select * from `test` order by `name` asc')
3636
});
37+
38+
it('should convert == null to IS NULL', function* () {
39+
var query = adapter.query.from('test');
40+
var filterQuery = adapter.filterQuery(User, { name: { '==' : null } }, { query });
41+
assert.equal(filterQuery.toString(), 'select * from `test` where `name` is null')
42+
});
43+
44+
it('should convert != null to IS NOT NULL', function* () {
45+
var query = adapter.query.from('test');
46+
var filterQuery = adapter.filterQuery(User, { name: { '!=' : null } }, { query });
47+
assert.equal(filterQuery.toString(), 'select * from `test` where `name` is not null')
48+
});
3749
});

0 commit comments

Comments
 (0)