diff --git a/lib/node/valueExpression.js b/lib/node/valueExpression.js index 6933fa11..e04ba5ff 100644 --- a/lib/node/valueExpression.js +++ b/lib/node/valueExpression.js @@ -156,6 +156,7 @@ var ValueExpressionMixin = function() { in : inMethod, notIn : notInMethod, between : ternaryMethod('BETWEEN', 'AND'), + notBetween : ternaryMethod('NOT BETWEEN', 'AND'), at : atMethod, contains : binaryMethod('@>'), containedBy : binaryMethod('<@'), diff --git a/package.json b/package.json index 4354f1d1..8bde9645 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "sliced": "0.0.x", - "lodash": "1.3.x" + "lodash": "4.17.16" }, "devDependencies": { "jshint": "*", diff --git a/test/dialects/alias-tests.js b/test/dialects/alias-tests.js index f558260b..c17d3426 100644 --- a/test/dialects/alias-tests.js +++ b/test/dialects/alias-tests.js @@ -77,3 +77,28 @@ Harness.test({ }, params: [10, 20] }); + +Harness.test({ + query: customer.select(customer.age.notBetween(10, 20).as('ageNotBetween')), + pg: { + text : 'SELECT ("customer"."age" NOT BETWEEN $1 AND $2) AS "ageNotBetween" FROM "customer"', + string: 'SELECT ("customer"."age" NOT BETWEEN 10 AND 20) AS "ageNotBetween" FROM "customer"' + }, + sqlite: { + text : 'SELECT ("customer"."age" NOT BETWEEN $1 AND $2) AS "ageNotBetween" FROM "customer"', + string: 'SELECT ("customer"."age" NOT BETWEEN 10 AND 20) AS "ageNotBetween" FROM "customer"' + }, + mysql: { + text : 'SELECT (`customer`.`age` NOT BETWEEN ? AND ?) AS `ageNotBetween` FROM `customer`', + string: 'SELECT (`customer`.`age` NOT BETWEEN 10 AND 20) AS `ageNotBetween` FROM `customer`' + }, + mssql: { + text : 'SELECT ([customer].[age] NOT BETWEEN @1 AND @2) AS [ageBetween] FROM [customer]', + string: 'SELECT ([customer].[age] NOT BETWEEN 10 AND 20) AS [ageBetween] FROM [customer]' + }, + oracle: { + text : 'SELECT ("customer"."age" NOT BETWEEN :1 AND :2) "ageBetween" FROM "customer"', + string: 'SELECT ("customer"."age" NOT BETWEEN 10 AND 20) "ageBetween" FROM "customer"' + }, + params: [10, 20] +});