From 7e23cf50c4417a68e2e4e47fc7336d4610eec572 Mon Sep 17 00:00:00 2001 From: Andriy Date: Mon, 16 Apr 2018 10:14:06 +0300 Subject: [PATCH] Fix filter by null (#1) * Added possibility to use filter by null --- build/example/sql.d.ts | 1 + build/example/sql.js | 17 +++++++---------- build/example/sql.js.map | 2 +- build/lib/index.js | 1 + build/lib/index.js.map | 2 +- build/lib/visitor.js | 11 ++++++++--- build/lib/visitor.js.map | 2 +- src/lib/visitor.ts | 18 ++++++++++++------ 8 files changed, 32 insertions(+), 22 deletions(-) diff --git a/build/example/sql.d.ts b/build/example/sql.d.ts index e69de29..cb0ff5c 100644 --- a/build/example/sql.d.ts +++ b/build/example/sql.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/example/sql.js b/build/example/sql.js index 42fad3e..b4e00af 100644 --- a/build/example/sql.js +++ b/build/example/sql.js @@ -11,11 +11,12 @@ var __param = (this && this.__param) || function (paramIndex, decorator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments)).next()); + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +Object.defineProperty(exports, "__esModule", { value: true }); const pg = require("pg"); const config = require("config"); const index_1 = require("../lib/index"); @@ -74,8 +75,7 @@ __decorate([ ], CountriesController.prototype, "getCountries", null); __decorate([ odata_v4_server_1.odata.GET, - __param(0, odata_v4_server_1.odata.key), - __param(1, odata_v4_server_1.odata.query) + __param(0, odata_v4_server_1.odata.key), __param(1, odata_v4_server_1.odata.query) ], CountriesController.prototype, "getCountry", null); CountriesController = __decorate([ odata_v4_server_1.odata.type(Country) @@ -96,13 +96,11 @@ let CitiesController = class CitiesController extends odata_v4_server_1.ODataCon }; __decorate([ odata_v4_server_1.odata.GET, - __param(0, odata_v4_server_1.odata.stream), - __param(1, odata_v4_server_1.odata.query) + __param(0, odata_v4_server_1.odata.stream), __param(1, odata_v4_server_1.odata.query) ], CitiesController.prototype, "getCities", null); __decorate([ odata_v4_server_1.odata.GET, - __param(0, odata_v4_server_1.odata.key), - __param(1, odata_v4_server_1.odata.query) + __param(0, odata_v4_server_1.odata.key), __param(1, odata_v4_server_1.odata.query) ], CitiesController.prototype, "getCity", null); CitiesController = __decorate([ odata_v4_server_1.odata.type(City) @@ -117,8 +115,7 @@ let CountryLanguagesController = class CountryLanguagesController extends odata_ }; __decorate([ odata_v4_server_1.odata.GET, - __param(0, odata_v4_server_1.odata.stream), - __param(1, odata_v4_server_1.odata.query) + __param(0, odata_v4_server_1.odata.stream), __param(1, odata_v4_server_1.odata.query) ], CountryLanguagesController.prototype, "getLanguages", null); CountryLanguagesController = __decorate([ odata_v4_server_1.odata.type(CountryLanguage) diff --git a/build/example/sql.js.map b/build/example/sql.js.map index 7d6469a..7d469e3 100644 --- a/build/example/sql.js.map +++ b/build/example/sql.js.map @@ -1 +1 @@ -{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/example/sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/example/sql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/lib/index.js b/build/lib/index.js index b357575..5a9698b 100644 --- a/build/lib/index.js +++ b/build/lib/index.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const visitor_1 = require("./visitor"); const odata_v4_sql_1 = require("odata-v4-sql"); const odata_v4_parser_1 = require("odata-v4-parser"); diff --git a/build/lib/index.js.map b/build/lib/index.js.map index 672a00c..7a48b0d 100644 --- a/build/lib/index.js.map +++ b/build/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";AAAA,0BAAqC,WAAW,CAAC,CAAA;AACjD,+BAAwB,cAAc,CAAC,CAAA;AACvC,kCAA8B,iBAAiB,CAAC,CAAA;AAkBhD,qBAA4B,UAAyB,EAAE,OAAO,GAAe,EAAE;IAC3E,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,UAAU,CAAC;IAClC,IAAI,GAAG,GAAgB,CAAC,OAAO,UAAU,IAAI,QAAQ,GAAG,uBAAK,CAAS,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;IAChG,MAAM,CAAC,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAJe,mBAAW,cAI1B,CAAA;AAYD,sBAA6B,WAA0B,EAAE,OAAO,GAAe,EAAE;IAC7E,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,UAAU,CAAC;IAClC,IAAI,GAAG,GAAgB,CAAC,OAAO,WAAW,IAAI,QAAQ,GAAG,wBAAM,CAAS,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC;IACpG,MAAM,CAAC,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAJe,oBAAY,eAI3B,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;AAAA,uCAAiD;AACjD,+CAAuC;AACvC,qDAAgD;AAkBhD,qBAA4B,UAAyB,EAAE,OAAO,GAAe,EAAE;IAC3E,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,UAAU,CAAC;IAClC,IAAI,GAAG,GAAgB,CAAC,OAAO,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,uBAAK,CAAS,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAChG,OAAO,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAJD,kCAIC;AAYD,sBAA6B,WAA0B,EAAE,OAAO,GAAe,EAAE;IAC7E,OAAO,CAAC,IAAI,GAAG,sBAAO,CAAC,UAAU,CAAC;IAClC,IAAI,GAAG,GAAgB,CAAC,OAAO,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,wBAAM,CAAS,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACpG,OAAO,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAJD,oCAIC"} \ No newline at end of file diff --git a/build/lib/visitor.js b/build/lib/visitor.js index 7d9bfeb..0f5a392 100644 --- a/build/lib/visitor.js +++ b/build/lib/visitor.js @@ -1,4 +1,5 @@ "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const odata_v4_literal_1 = require("odata-v4-literal"); const visitor_1 = require("odata-v4-sql/lib/visitor"); class PGVisitor extends visitor_1.Visitor { @@ -43,7 +44,8 @@ class PGVisitor extends visitor_1.Visitor { this.where += " = "; this.Visit(node.value.right, context); if (this.options.useParameters && context.literal == null) { - this.where = this.where.replace(/= \?$/, "IS NULL").replace(new RegExp(`\\? = "${context.identifier}"$`), `"${context.identifier}" IS NULL`); + this.where = this.where.replace(/= \$\d*$/, "IS NULL") + .replace(new RegExp(`\\$\\d* = "${context.identifier}"$`), `"${context.identifier}" IS NULL`); } else if (context.literal == "NULL") { this.where = this.where.replace(/= NULL$/, "IS NULL").replace(new RegExp(`NULL = "${context.identifier}"$`), `"${context.identifier}" IS NULL`); @@ -54,7 +56,8 @@ class PGVisitor extends visitor_1.Visitor { this.where += " <> "; this.Visit(node.value.right, context); if (this.options.useParameters && context.literal == null) { - this.where = this.where.replace(/<> \?$/, "IS NOT NULL").replace(new RegExp(`\\? <> "${context.identifier}"$`), `"${context.identifier}" IS NOT NULL`); + this.where = this.where.replace(/<> \$\d*$/, "IS NOT NULL") + .replace(new RegExp(`\\$\\d* <> "${context.identifier}"$`), `"${context.identifier}" IS NOT NULL`); } else if (context.literal == "NULL") { this.where = this.where.replace(/<> NULL$/, "IS NOT NULL").replace(new RegExp(`NULL <> "${context.identifier}"$`), `"${context.identifier}" IS NOT NULL`); @@ -64,7 +67,9 @@ class PGVisitor extends visitor_1.Visitor { if (this.options.useParameters) { let value = odata_v4_literal_1.Literal.convert(node.value, node.raw); context.literal = value; - this.parameters.push(value); + if (context.literal != null) { + this.parameters.push(value); + } this.where += `\$${this.parameters.length}`; } else diff --git a/build/lib/visitor.js.map b/build/lib/visitor.js.map index b645a97..feb369a 100644 --- a/build/lib/visitor.js.map +++ b/build/lib/visitor.js.map @@ -1 +1 @@ -{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/lib/visitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/lib/visitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lib/visitor.ts b/src/lib/visitor.ts index 7f11fee..bf92237 100644 --- a/src/lib/visitor.ts +++ b/src/lib/visitor.ts @@ -49,8 +49,10 @@ export class PGVisitor extends Visitor{ this.where += " = "; this.Visit(node.value.right, context); if (this.options.useParameters && context.literal == null){ - this.where = this.where.replace(/= \?$/, "IS NULL").replace(new RegExp(`\\? = "${context.identifier}"$`), `"${context.identifier}" IS NULL`); - }else if (context.literal == "NULL"){ + this.where = this.where.replace(/= \$\d*$/, "IS NULL") + .replace(new RegExp(`\\$\\d* = "${context.identifier}"$`), + `"${context.identifier}" IS NULL`); + } else if (context.literal == "NULL"){ this.where = this.where.replace(/= NULL$/, "IS NULL").replace(new RegExp(`NULL = "${context.identifier}"$`), `"${context.identifier}" IS NULL`); } } @@ -60,8 +62,10 @@ export class PGVisitor extends Visitor{ this.where += " <> "; this.Visit(node.value.right, context); if (this.options.useParameters && context.literal == null){ - this.where = this.where.replace(/<> \?$/, "IS NOT NULL").replace(new RegExp(`\\? <> "${context.identifier}"$`), `"${context.identifier}" IS NOT NULL`); - }else if (context.literal == "NULL"){ + this.where = this.where.replace(/<> \$\d*$/, "IS NOT NULL") + .replace(new RegExp(`\\$\\d* <> "${context.identifier}"$`), + `"${context.identifier}" IS NOT NULL`); + } else if (context.literal == "NULL"){ this.where = this.where.replace(/<> NULL$/, "IS NOT NULL").replace(new RegExp(`NULL <> "${context.identifier}"$`), `"${context.identifier}" IS NOT NULL`); } } @@ -70,9 +74,11 @@ export class PGVisitor extends Visitor{ if (this.options.useParameters){ let value = Literal.convert(node.value, node.raw); context.literal = value; - this.parameters.push(value); + if (context.literal != null) { + this.parameters.push(value); + } this.where += `\$${this.parameters.length}`; - }else this.where += (context.literal = SQLLiteral.convert(node.value, node.raw)); + } else this.where += (context.literal = SQLLiteral.convert(node.value, node.raw)); } protected VisitMethodCallExpression(node:Token, context:any){