@stamhoofd/sql 2.1.3 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/SQL.d.ts CHANGED
@@ -1,15 +1,18 @@
1
1
  import { SQLExpression } from "./SQLExpression";
2
2
  import { SQLSelect } from "./SQLSelect";
3
3
  import { SQLColumnExpression, SQLTableExpression, SQLWildcardSelectExpression } from "./SQLExpressions";
4
- import { SQLJsonExtract } from "./SQLJsonExpressions";
4
+ import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
5
+ import { SQLDelete } from "./SQLDelete";
5
6
  declare class StaticSQL {
6
7
  wildcard(namespace?: string): SQLWildcardSelectExpression;
7
8
  column(namespace: string, column: string): SQLColumnExpression;
8
9
  column(column: string): SQLColumnExpression;
9
10
  jsonValue(column: SQLExpression, path: string): SQLJsonExtract;
11
+ jsonLength(column: SQLExpression, path?: string): SQLJsonLength;
10
12
  table(namespace: string, table: string): SQLTableExpression;
11
13
  table(table: string): SQLTableExpression;
12
14
  select(...columns: SQLExpression[]): InstanceType<typeof SQLSelect>;
15
+ delete(): InstanceType<typeof SQLDelete>;
13
16
  leftJoin(table: SQLExpression): {
14
17
  parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): import("./SQLWhere").SQLWhere;
15
18
  where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
@@ -1 +1 @@
1
- {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAgB,kBAAkB,EAAE,2BAA2B,EAAyB,MAAM,kBAAkB,CAAC;AAE7I,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,cAAM,SAAS;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQ3C,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAI9D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAQxC,MAAM,CAAC,GAAG,OAAO,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC;IAOnE,QAAQ,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI7B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,IAAI,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;CAG5B;AAED,eAAO,MAAM,GAAG,WAAkB,CAAC"}
1
+ {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAgB,kBAAkB,EAAE,2BAA2B,EAAyB,MAAM,kBAAkB,CAAC;AAE7I,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAM,SAAS;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQ3C,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAI9D,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa;IAI/D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAQxC,MAAM,CAAC,GAAG,OAAO,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC;IAOnE,MAAM,IAAI,YAAY,CAAC,OAAO,SAAS,CAAC;IAIxC,QAAQ,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI7B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,SAAS,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;IAI9B,IAAI,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;CAG5B;AAED,eAAO,MAAM,GAAG,WAAkB,CAAC"}
package/dist/src/SQL.js CHANGED
@@ -5,6 +5,7 @@ const SQLSelect_1 = require("./SQLSelect");
5
5
  const SQLExpressions_1 = require("./SQLExpressions");
6
6
  const SQLJoin_1 = require("./SQLJoin");
7
7
  const SQLJsonExpressions_1 = require("./SQLJsonExpressions");
8
+ const SQLDelete_1 = require("./SQLDelete");
8
9
  class StaticSQL {
9
10
  wildcard(namespace) {
10
11
  return new SQLExpressions_1.SQLWildcardSelectExpression(namespace);
@@ -18,6 +19,9 @@ class StaticSQL {
18
19
  jsonValue(column, path) {
19
20
  return new SQLJsonExpressions_1.SQLJsonExtract(column, new SQLExpressions_1.SQLSafeValue(path));
20
21
  }
22
+ jsonLength(column, path) {
23
+ return new SQLJsonExpressions_1.SQLJsonLength(column, path ? new SQLExpressions_1.SQLSafeValue(path) : undefined);
24
+ }
21
25
  table(namespaceOrTable, table) {
22
26
  if (table === undefined) {
23
27
  return new SQLExpressions_1.SQLTableExpression(namespaceOrTable);
@@ -30,6 +34,9 @@ class StaticSQL {
30
34
  }
31
35
  return new SQLSelect_1.SQLSelect(...columns);
32
36
  }
37
+ delete() {
38
+ return new SQLDelete_1.SQLDelete();
39
+ }
33
40
  leftJoin(table) {
34
41
  return new SQLJoin_1.SQLJoin(SQLJoin_1.SQLJoinType.Left, table);
35
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SQL.js","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAA6I;AAC7I,uCAAiD;AACjD,6DAAsD;AAEtD,MAAM,SAAS;IACX,QAAQ,CAAC,SAAkB;QACvB,OAAO,IAAI,4CAA2B,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAID,MAAM,CAAC,iBAAyB,EAAE,MAAe;QAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,SAAS,CAAC,MAAqB,EAAE,IAAY;QACzC,OAAO,IAAI,mCAAc,CAAC,MAAM,EAAE,IAAI,6BAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;IAID,KAAK,CAAC,gBAAwB,EAAE,KAAc;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,GAAG,OAAwB;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,IAAI,qBAAS,CAAC,GAAG,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,KAAoB;QACzB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,KAAoB;QACrB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;CACJ;AAEY,QAAA,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"SQL.js","sourceRoot":"","sources":["../../src/SQL.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qDAA6I;AAC7I,uCAAiD;AACjD,6DAAqE;AACrE,2CAAwC;AAExC,MAAM,SAAS;IACX,QAAQ,CAAC,SAAkB;QACvB,OAAO,IAAI,4CAA2B,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAID,MAAM,CAAC,iBAAyB,EAAE,MAAe;QAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,oCAAmB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,SAAS,CAAC,MAAqB,EAAE,IAAY;QACzC,OAAO,IAAI,mCAAc,CAAC,MAAM,EAAE,IAAI,6BAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,UAAU,CAAC,MAAqB,EAAE,IAAa;QAC3C,OAAO,IAAI,kCAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,6BAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC/E,CAAC;IAID,KAAK,CAAC,gBAAwB,EAAE,KAAc;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,mCAAkB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,GAAG,OAAwB;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,IAAI,qBAAS,CAAC,GAAG,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,qBAAS,EAAE,CAAA;IAC1B,CAAC;IAED,QAAQ,CAAC,KAAoB;QACzB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,KAAoB;QACrB,OAAO,IAAI,iBAAO,CAAC,qBAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;CACJ;AAEY,QAAA,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { SQLExpression, SQLExpressionOptions, SQLQuery } from "./SQLExpression";
2
+ import { SQLJoin } from './SQLJoin';
3
+ import { SQLWhere } from "./SQLWhere";
4
+ declare class DeleteBase implements SQLExpression {
5
+ _from: SQLExpression;
6
+ _where: SQLWhere | null;
7
+ _joins: (InstanceType<typeof SQLJoin>)[];
8
+ constructor();
9
+ clone(): this;
10
+ from(table: SQLExpression): this;
11
+ join(join: InstanceType<typeof SQLJoin>): this;
12
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
13
+ delete(): Promise<{
14
+ affectedRows: number;
15
+ }>;
16
+ then(onFulfilled: (value: {
17
+ affectedRows: number;
18
+ }) => any, onRejected: (reason: any) => any): Promise<any>;
19
+ }
20
+ export declare const SQLDelete: {
21
+ new (...args: any[]): {
22
+ parseWhere(...[whereOrColumn, signOrValue, value]: import("./SQLWhere").ParseWhereArguments): SQLWhere;
23
+ where<T>(this: T, ...args: import("./SQLWhere").ParseWhereArguments): T;
24
+ andWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
25
+ orWhere(...args: import("./SQLWhere").ParseWhereArguments): any;
26
+ whereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
27
+ andWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
28
+ orWhereNot(...args: import("./SQLWhere").ParseWhereArguments): any;
29
+ _where: SQLWhere | null;
30
+ };
31
+ } & typeof DeleteBase;
32
+ export {};
33
+ //# sourceMappingURL=SQLDelete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLDelete.d.ts","sourceRoot":"","sources":["../../src/SQLDelete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAmC,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAEvD,cAAM,UAAW,YAAW,aAAa;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAC,IAAI,CAAQ;IAC7B,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,CAAM;;IAK9C,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKhC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC,GAAG,IAAI;IAK9C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAwB1C,MAAM,IAAI,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAC,CAAC;IAQzC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE;QAAC,YAAY,EAAE,MAAM,CAAA;KAAC,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAGlH;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;qBAA8B,CAAA"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLDelete = void 0;
4
+ const simple_database_1 = require("@simonbackx/simple-database");
5
+ const SQLExpression_1 = require("./SQLExpression");
6
+ const SQLWhere_1 = require("./SQLWhere");
7
+ class DeleteBase {
8
+ constructor() {
9
+ this._where = null;
10
+ this._joins = [];
11
+ }
12
+ clone() {
13
+ const c = new exports.SQLDelete();
14
+ Object.assign(c, this);
15
+ return c;
16
+ }
17
+ from(table) {
18
+ this._from = table;
19
+ return this;
20
+ }
21
+ join(join) {
22
+ this._joins.push(join);
23
+ return this;
24
+ }
25
+ getSQL(options) {
26
+ var _a, _b;
27
+ const query = [
28
+ 'DELETE'
29
+ ];
30
+ options = options !== null && options !== void 0 ? options : {};
31
+ options.defaultNamespace = (_b = (_a = this._from.namespace) !== null && _a !== void 0 ? _a : this._from.table) !== null && _b !== void 0 ? _b : undefined;
32
+ query.push('FROM');
33
+ query.push(this._from.getSQL(options));
34
+ query.push(...this._joins.map(j => j.getSQL(options)));
35
+ if (this._where) {
36
+ query.push('WHERE');
37
+ query.push(this._where.getSQL(options));
38
+ }
39
+ return (0, SQLExpression_1.joinSQLQuery)(query, ' ');
40
+ }
41
+ async delete() {
42
+ const { query, params } = (0, SQLExpression_1.normalizeSQLQuery)(this.getSQL());
43
+ console.log(query, params);
44
+ const [rows] = await simple_database_1.Database.delete(query, params);
45
+ return rows;
46
+ }
47
+ async then(onFulfilled, onRejected) {
48
+ return this.delete().then(onFulfilled, onRejected);
49
+ }
50
+ }
51
+ exports.SQLDelete = (0, SQLWhere_1.addWhereHelpers)(DeleteBase);
52
+ //# sourceMappingURL=SQLDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLDelete.js","sourceRoot":"","sources":["../../src/SQLDelete.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AACvD,mDAAiH;AAEjH,yCAAuD;AAEvD,MAAM,UAAU;IAKZ;QAHA,WAAM,GAAkB,IAAI,CAAC;QAC7B,WAAM,GAAqC,EAAE,CAAC;IAG9C,CAAC;IAED,KAAK;QACD,MAAM,CAAC,GAAG,IAAI,iBAAS,EAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvB,OAAO,CAAQ,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,KAAoB;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAkC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAA8B;;QACjC,MAAM,KAAK,GAAe;YACtB,QAAQ;SACX,CAAA;QAED,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAA;QACvB,OAAO,CAAC,gBAAgB,GAAG,MAAA,MAAC,IAAI,CAAC,KAAa,CAAC,SAAS,mCAAK,IAAI,CAAC,KAAa,CAAC,KAAK,mCAAI,SAAS,CAAC;QAEnG,KAAK,CAAC,IAAI,CACN,MAAM,CACT,CAAA;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEvC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEtD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,IAAA,4BAAY,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,IAAA,iCAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAExD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0BAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmD,EAAE,UAAgC;QAC5F,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;CACJ;AAEY,QAAA,SAAS,GAAG,IAAA,0BAAe,EAAC,UAAU,CAAC,CAAA"}
@@ -4,11 +4,21 @@ export type SQLDynamicExpression = SQLScalarValue | SQLScalarValue[] | null | SQ
4
4
  export declare function scalarToSQLJSONExpression(s: SQLScalarValue | null): SQLExpression;
5
5
  export declare function scalarToSQLExpression(s: SQLScalarValue | null): SQLExpression;
6
6
  export declare function readDynamicSQLExpression(s: SQLDynamicExpression): SQLExpression;
7
+ export declare class SQLDistinct implements SQLExpression {
8
+ expression: SQLExpression;
9
+ constructor(expression: SQLExpression);
10
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
11
+ }
7
12
  export declare class SQLCount implements SQLExpression {
8
13
  expression: SQLExpression | null;
9
14
  constructor(expression?: SQLExpression | null);
10
15
  getSQL(options?: SQLExpressionOptions): SQLQuery;
11
16
  }
17
+ export declare class SQLSum implements SQLExpression {
18
+ expression: SQLExpression;
19
+ constructor(expression: SQLExpression);
20
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
21
+ }
12
22
  export declare class SQLSelectAs implements SQLExpression {
13
23
  expression: SQLExpression;
14
24
  as: SQLAlias;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/G,MAAM,MAAM,cAAc,GAAG,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,IAAI,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAC,cAAc,EAAE,GAAC,IAAI,GAAC,aAAa,CAAA;AAErF,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAc/E;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,GAAG,aAAa,CAM3E;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAa/E;AACD,qBAAa,WAAY,YAAW,aAAa;IAC7C,UAAU,EAAE,aAAa,CAAA;gBAEb,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AACD,qBAAa,QAAS,YAAW,aAAa;IAC1C,UAAU,EAAE,aAAa,GAAC,IAAI,CAAA;gBAElB,UAAU,GAAE,aAAa,GAAC,IAAW;IAIjD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AACD,qBAAa,MAAO,YAAW,aAAa;IACxC,UAAU,EAAE,aAAa,CAAA;gBAEb,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AACD,qBAAa,WAAY,YAAW,aAAa;IAC7C,UAAU,EAAE,aAAa,CAAA;IACzB,EAAE,EAAE,QAAQ,CAAA;gBAEA,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ;IAKnD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAED,qBAAa,QAAS,YAAW,aAAa;IAC1C,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM;IAIxB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAGD,qBAAa,SAAU,YAAW,aAAa;IAC3C,WAAW,EAAE,aAAa,EAAE,CAAC;gBAEjB,GAAG,WAAW,EAAE,aAAa,EAAE;IAI3C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAGD,qBAAa,MAAO,YAAW,aAAa;IACxC,UAAU,EAAE,aAAa,CAAC;gBAEd,UAAU,EAAE,aAAa;IAIrC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAOnD;AAED,qBAAa,YAAa,YAAW,aAAa;IAC9C,KAAK,EAAE,IAAI,GAAC,IAAI,GAAC,KAAK,CAAC;gBAEX,KAAK,EAAE,IAAI,GAAC,IAAI,GAAC,KAAK;IAIlC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,OAAQ,YAAW,aAAa;IACzC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,MAAO,YAAW,aAAa;IACxC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,SAAU,YAAW,aAAa;IAC3C,KAAK,EAAE,cAAc,CAAC;gBAEV,KAAK,EAAE,cAAc;IAIjC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AAED,qBAAa,YAAa,YAAW,aAAa;IAC9C,KAAK,EAAE,MAAM,GAAC,MAAM,CAAC;gBAET,KAAK,EAAE,MAAM,GAAC,MAAM;IAIhC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAGD,qBAAa,QAAS,YAAW,aAAa;IAC1C,KAAK,EAAE,cAAc,EAAE,CAAC;gBAEZ,KAAK,EAAE,cAAc,EAAE;IAInC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD;AAED,qBAAa,2BAA4B,YAAW,aAAa;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEP,SAAS,CAAC,EAAE,MAAM;IAI9B,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,mBAAoB,YAAW,aAAa;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;gBAEH,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBACjC,MAAM,EAAE,MAAM;IAU1B,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAGnD;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;gBAChC,KAAK,EAAE,MAAM;IAUzB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAMnD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLSelectAs = exports.SQLCount = exports.readDynamicSQLExpression = exports.scalarToSQLExpression = exports.scalarToSQLJSONExpression = void 0;
3
+ exports.SQLTableExpression = exports.SQLColumnExpression = exports.SQLWildcardSelectExpression = exports.SQLArray = exports.SQLSafeValue = exports.SQLScalar = exports.SQLNow = exports.SQLNull = exports.SQLJSONValue = exports.SQLAge = exports.SQLConcat = exports.SQLAlias = exports.SQLSelectAs = exports.SQLSum = exports.SQLCount = exports.SQLDistinct = exports.readDynamicSQLExpression = exports.scalarToSQLExpression = exports.scalarToSQLJSONExpression = void 0;
4
4
  const SQLExpression_1 = require("./SQLExpression");
5
5
  const simple_database_1 = require("@simonbackx/simple-database");
6
6
  function scalarToSQLJSONExpression(s) {
@@ -36,6 +36,18 @@ function readDynamicSQLExpression(s) {
36
36
  return new SQLScalar(s);
37
37
  }
38
38
  exports.readDynamicSQLExpression = readDynamicSQLExpression;
39
+ class SQLDistinct {
40
+ constructor(expression) {
41
+ this.expression = expression;
42
+ }
43
+ getSQL(options) {
44
+ return (0, SQLExpression_1.joinSQLQuery)([
45
+ 'DISTINCT',
46
+ this.expression.getSQL(options),
47
+ ]);
48
+ }
49
+ }
50
+ exports.SQLDistinct = SQLDistinct;
39
51
  class SQLCount {
40
52
  constructor(expression = null) {
41
53
  this.expression = expression;
@@ -49,6 +61,19 @@ class SQLCount {
49
61
  }
50
62
  }
51
63
  exports.SQLCount = SQLCount;
64
+ class SQLSum {
65
+ constructor(expression) {
66
+ this.expression = expression;
67
+ }
68
+ getSQL(options) {
69
+ return (0, SQLExpression_1.joinSQLQuery)([
70
+ 'SUM(',
71
+ this.expression.getSQL(options),
72
+ ')'
73
+ ]);
74
+ }
75
+ }
76
+ exports.SQLSum = SQLSum;
52
77
  class SQLSelectAs {
53
78
  constructor(expression, as) {
54
79
  this.expression = expression;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLExpressions.js","sourceRoot":"","sources":["../../src/SQLExpressions.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,12 @@ export declare class SQLJsonExtract implements SQLExpression {
8
8
  constructor(target: SQLExpression, path: SQLExpression);
9
9
  getSQL(options?: SQLExpressionOptions): SQLQuery;
10
10
  }
11
+ export declare class SQLJsonLength implements SQLExpression {
12
+ target: SQLExpression;
13
+ path?: SQLExpression;
14
+ constructor(target: SQLExpression, path?: SQLExpression);
15
+ getSQL(options?: SQLExpressionOptions): SQLQuery;
16
+ }
11
17
  /**
12
18
  * JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
13
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SQLJsonExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAG9F;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAChD,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;gBAEP,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;IAKtD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,aAAa;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,KAAK,GAAC,KAAK,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAOnH,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAenD;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAM5F,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAanD;AAGD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa;IAK5D,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD"}
1
+ {"version":3,"file":"SQLJsonExpressions.d.ts","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAG9F;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAChD,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;gBAEP,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;IAKtD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD;AAED,qBAAa,aAAc,YAAW,aAAa;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,EAAE,aAAa,CAAA;gBAER,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,aAAa;IAKvD,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAWnD;AACD;;GAEG;AACH,qBAAa,aAAc,YAAW,aAAa;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,KAAK,GAAC,KAAK,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAOnH,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAenD;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,aAAa,GAAC,IAAI,CAAC;gBAEb,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,GAAE,aAAa,GAAC,IAAW;IAM5F,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAanD;AAGD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa;IAK5D,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CASnD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SQLJsonOverlaps = exports.SQLJsonContains = exports.SQLJsonSearch = exports.SQLJsonExtract = void 0;
3
+ exports.SQLJsonOverlaps = exports.SQLJsonContains = exports.SQLJsonSearch = exports.SQLJsonLength = exports.SQLJsonExtract = void 0;
4
4
  const SQLExpression_1 = require("./SQLExpression");
5
5
  const SQLExpressions_1 = require("./SQLExpressions");
6
6
  /**
@@ -22,6 +22,24 @@ class SQLJsonExtract {
22
22
  }
23
23
  }
24
24
  exports.SQLJsonExtract = SQLJsonExtract;
25
+ class SQLJsonLength {
26
+ constructor(target, path) {
27
+ this.target = target;
28
+ this.path = path;
29
+ }
30
+ getSQL(options) {
31
+ return (0, SQLExpression_1.joinSQLQuery)([
32
+ 'JSON_LENGTH(',
33
+ this.target.getSQL(options),
34
+ ...(this.path ? [
35
+ ',',
36
+ this.path.getSQL(options),
37
+ ] : []),
38
+ ')'
39
+ ]);
40
+ }
41
+ }
42
+ exports.SQLJsonLength = SQLJsonLength;
25
43
  /**
26
44
  * JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
27
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":";;;AAAA,mDAA8F;AAC9F,qDAAgD;AAEhD;;GAEG;AACH,MAAa,cAAc;IAIvB,YAAY,MAAqB,EAAE,IAAmB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,eAAe;YACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAlBD,wCAkBC;AAED;;GAEG;AACH,MAAa,aAAa;IAMtB,YAAY,MAAqB,EAAE,QAAqB,EAAE,SAAwB,EAAE,OAA2B,IAAI;QAC/G,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,cAAc;YACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,6BAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/C,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC,CAAC,EAAE,CAAC;YACX,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AA5BD,sCA4BC;AAED;;GAEG;AACH,MAAa,eAAe;IAKxB,YAAY,MAAqB,EAAE,SAAwB,EAAE,OAA2B,IAAI;QACxF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,gBAAgB;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACZ,GAAG;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC,CAAC,EAAE,CAAC;YACX,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAxBD,0CAwBC;AAGD;;GAEG;AACH,MAAa,eAAe;IAIxB,YAAY,QAAuB,EAAE,QAAuB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,4BAAY,EAAC;YAChB,gBAAgB;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YACjC,GAAG;SACN,CAAC,CAAA;IACN,CAAC;CACJ;AAlBD,0CAkBC"}
1
+ {"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,20 @@ declare class SelectBase implements SQLExpression {
10
10
  _offset: number | null;
11
11
  _where: SQLWhere | null;
12
12
  _orderBy: SQLOrderBy | null;
13
+ _groupBy: SQLExpression[];
13
14
  _joins: (InstanceType<typeof SQLJoin>)[];
14
15
  constructor(...columns: SQLExpression[]);
15
16
  clone(): this;
16
17
  from(table: SQLExpression): this;
17
18
  join(join: InstanceType<typeof SQLJoin>): this;
19
+ groupBy(...columns: SQLExpression[]): this;
18
20
  getSQL(options?: SQLExpressionOptions): SQLQuery;
19
21
  limit(limit: number | null, offset?: number | null): this;
20
22
  fetch(): Promise<SQLResultNamespacedRow[]>;
21
23
  first(required: false): Promise<SQLResultNamespacedRow | null>;
22
24
  first(required: true): Promise<SQLResultNamespacedRow>;
23
25
  count(): Promise<number>;
26
+ sum(expression: SQLExpression): Promise<number>;
24
27
  }
25
28
  export declare const SQLSelect: {
26
29
  new (...args: any[]): {
@@ -1 +1 @@
1
- {"version":3,"file":"SQLSelect.d.ts","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAmC,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAW,sBAAsB,EAAC,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,cAAM,UAAW,YAAW,aAAa;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,aAAa,CAAC;IAErB,MAAM,EAAE,MAAM,GAAC,IAAI,CAAQ;IAC3B,OAAO,EAAE,MAAM,GAAC,IAAI,CAAQ;IAE5B,MAAM,EAAE,QAAQ,GAAC,IAAI,CAAQ;IAC7B,QAAQ,EAAE,UAAU,GAAC,IAAI,CAAQ;IACjC,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,CAAM;gBAElC,GAAG,OAAO,EAAE,aAAa,EAAE;IAIvC,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKhC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC,GAAG,IAAI;IAK9C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAyChD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAC,IAAI,EAAE,MAAM,GAAE,MAAM,GAAC,IAAW,GAAG,IAAI;IAMrD,KAAK,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA0BhD,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,sBAAsB,GAAC,IAAI,CAAC;IAC5D,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYhD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CA8BjC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;qBAErB,CAAA"}
1
+ {"version":3,"file":"SQLSelect.d.ts","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAmC,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAW,sBAAsB,EAAC,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAGjC,cAAM,UAAW,YAAW,aAAa;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,aAAa,CAAC;IAErB,MAAM,EAAE,MAAM,GAAC,IAAI,CAAQ;IAC3B,OAAO,EAAE,MAAM,GAAC,IAAI,CAAQ;IAE5B,MAAM,EAAE,QAAQ,GAAC,IAAI,CAAQ;IAC7B,QAAQ,EAAE,UAAU,GAAC,IAAI,CAAQ;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAM;IAC/B,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,EAAE,CAAM;gBAElC,GAAG,OAAO,EAAE,aAAa,EAAE;IAIvC,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKhC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,OAAO,CAAC,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI;IAK1C,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAkDhD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAC,IAAI,EAAE,MAAM,GAAE,MAAM,GAAC,IAAW,GAAG,IAAI;IAMrD,KAAK,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA0BhD,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,sBAAsB,GAAC,IAAI,CAAC;IAC5D,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYhD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA+BxB,GAAG,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CA8BxD;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;qBAErB,CAAA"}
@@ -12,6 +12,7 @@ class SelectBase {
12
12
  this._offset = null;
13
13
  this._where = null;
14
14
  this._orderBy = null;
15
+ this._groupBy = [];
15
16
  this._joins = [];
16
17
  this._columns = columns;
17
18
  }
@@ -28,6 +29,10 @@ class SelectBase {
28
29
  this._joins.push(join);
29
30
  return this;
30
31
  }
32
+ groupBy(...columns) {
33
+ this._groupBy.push(...columns);
34
+ return this;
35
+ }
31
36
  getSQL(options) {
32
37
  var _a, _b;
33
38
  const query = [
@@ -44,6 +49,10 @@ class SelectBase {
44
49
  query.push('WHERE');
45
50
  query.push(this._where.getSQL(options));
46
51
  }
52
+ if (this._groupBy.length > 0) {
53
+ query.push('GROUP BY');
54
+ query.push((0, SQLExpression_1.joinSQLQuery)(this._groupBy.map(c => c.getSQL(options)), ', '));
55
+ }
47
56
  if (this._orderBy) {
48
57
  query.push(this._orderBy.getSQL(options));
49
58
  }
@@ -119,6 +128,31 @@ class SelectBase {
119
128
  console.warn('Invalid count SQL response', rows);
120
129
  return 0;
121
130
  }
131
+ async sum(expression) {
132
+ this._columns = [
133
+ new SQLExpressions_1.SQLSelectAs(new SQLExpressions_1.SQLSum(expression), new SQLExpressions_1.SQLAlias('c'))
134
+ ];
135
+ this._offset = null;
136
+ this._limit = null;
137
+ this._orderBy = null;
138
+ const { query, params } = (0, SQLExpression_1.normalizeSQLQuery)(this.getSQL());
139
+ console.log(query, params);
140
+ const [rows] = await simple_database_1.Database.select(query, params, { nestTables: true });
141
+ if (rows.length === 1) {
142
+ const row = rows[0];
143
+ if ('' in row) {
144
+ const namespaced = row[''];
145
+ if ('c' in namespaced) {
146
+ const value = namespaced['c'];
147
+ if (typeof value === 'number' && Number.isInteger(value)) {
148
+ return value;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ console.warn('Invalid sum SQL response', rows);
154
+ return 0;
155
+ }
122
156
  }
123
157
  exports.SQLSelect = (0, SQLOrderBy_1.addOrderByHelpers)((0, SQLWhere_1.addWhereHelpers)(SelectBase));
124
158
  //# sourceMappingURL=SQLSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLSelect.js","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLSelect.js","sourceRoot":"","sources":["../../src/SQLSelect.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,9 @@ export declare abstract class SQLWhere implements SQLExpression {
35
35
  export declare enum SQLWhereSign {
36
36
  Equal = "=",
37
37
  Greater = ">",
38
+ GreaterEqual = ">=",
38
39
  Less = "<",
40
+ LessEqual = "<=",
39
41
  NotEqual = "!="
40
42
  }
41
43
  export declare class SQLWhereEqual extends SQLWhere {
@@ -1 +1 @@
1
- {"version":3,"file":"SQLWhere.d.ts","sourceRoot":"","sources":["../../src/SQLWhere.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLWhere.d.ts","sourceRoot":"","sources":["../../src/SQLWhere.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,9 @@ var SQLWhereSign;
75
75
  (function (SQLWhereSign) {
76
76
  SQLWhereSign["Equal"] = "=";
77
77
  SQLWhereSign["Greater"] = ">";
78
+ SQLWhereSign["GreaterEqual"] = ">=";
78
79
  SQLWhereSign["Less"] = "<";
80
+ SQLWhereSign["LessEqual"] = "<=";
79
81
  SQLWhereSign["NotEqual"] = "!=";
80
82
  })(SQLWhereSign || (exports.SQLWhereSign = SQLWhereSign = {}));
81
83
  class SQLWhereEqual extends SQLWhere {
@@ -112,9 +114,15 @@ class SQLWhereEqual extends SQLWhere {
112
114
  this.sign = SQLWhereSign.Equal;
113
115
  break;
114
116
  case SQLWhereSign.Greater:
115
- this.sign = SQLWhereSign.Less;
117
+ this.sign = SQLWhereSign.LessEqual;
116
118
  break;
117
119
  case SQLWhereSign.Less:
120
+ this.sign = SQLWhereSign.GreaterEqual;
121
+ break;
122
+ case SQLWhereSign.GreaterEqual:
123
+ this.sign = SQLWhereSign.Less;
124
+ break;
125
+ case SQLWhereSign.LessEqual:
118
126
  this.sign = SQLWhereSign.Greater;
119
127
  break;
120
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SQLWhere.js","sourceRoot":"","sources":["../../src/SQLWhere.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLWhere.js","sourceRoot":"","sources":["../../src/SQLWhere.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SQLFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAY,mBAAmB,EAAyB,cAAc,EAAoD,MAAM,mBAAmB,CAAC;AAE3J,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmG,MAAM,aAAa,CAAC;AAExI,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,KAAK,QAAQ,GAAC,IAAI,CAAC;AAC1G,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAEpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGrG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGrG;AAqBD,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,aAAa,EAAE,WAAW,EAAE,oBAAoB,GAAG,iBAAiB,CAYhK;AAGD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,oBAAoB,GAAG,iBAAiB,CAI7F;AAED,wBAAgB,iCAAiC,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,KAAK,cAAc,GAAC,IAAI,EAAE,WAAW,UAAQ,EAAE,YAAY,UAAQ,GAAG,iBAAiB,CA2J9M;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,KAAK,cAAc,GAAC,IAAI,GAAG,iBAAiB,CAGrK;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAIpC,CAAA;AA8BD,eAAO,MAAM,kBAAkB,6BAAuB,CAAA"}
1
+ {"version":3,"file":"SQLFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAY,mBAAmB,EAAyB,cAAc,EAAoD,MAAM,mBAAmB,CAAC;AAE3J,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAmG,MAAM,aAAa,CAAC;AAExI,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,KAAK,QAAQ,GAAC,IAAI,CAAC;AAC1G,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAEpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGrG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAGrG;AAqBD,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,aAAa,EAAE,WAAW,EAAE,oBAAoB,GAAG,iBAAiB,CAYhK;AAGD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,oBAAoB,GAAG,iBAAiB,CAI7F;AAED,wBAAgB,iCAAiC,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,KAAK,cAAc,GAAC,IAAI,EAAE,WAAW,UAAQ,EAAE,YAAY,UAAQ,GAAG,iBAAiB,CAoM9M;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,GAAC,IAAI,KAAK,cAAc,GAAC,IAAI,GAAG,iBAAiB,CAGrK;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAIpC,CAAA;AAuCD,eAAO,MAAM,kBAAkB,6BAAuB,CAAA"}
@@ -99,6 +99,17 @@ function createSQLExpressionFilterCompiler(sqlExpression, normalizeValue, isJSON
99
99
  // else
100
100
  return new SQLWhere_1.SQLWhereEqual(new SQLJsonExpressions_1.SQLJsonOverlaps(sqlExpression, convertToExpression(JSON.stringify(v))), SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLSafeValue(1));
101
101
  }
102
+ const nullIncluded = v.includes(null);
103
+ if (nullIncluded) {
104
+ const remaining = v.filter(v => v !== null);
105
+ if (remaining.length === 0) {
106
+ return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull());
107
+ }
108
+ return new SQLWhere_1.SQLWhereOr([
109
+ new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()),
110
+ new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLArray(remaining))
111
+ ]);
112
+ }
102
113
  return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLArray(v));
103
114
  }
104
115
  if ('$neq' in f) {
@@ -128,6 +139,28 @@ function createSQLExpressionFilterCompiler(sqlExpression, normalizeValue, isJSON
128
139
  }
129
140
  return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Greater, convertToExpression(norm(f.$gt)));
130
141
  }
142
+ if ('$gte' in f) {
143
+ guardScalar(f.$gte);
144
+ if (isJSONObject) {
145
+ throw new Error('Greater than is not supported in this place');
146
+ }
147
+ if (f.$gte === null) {
148
+ // >= null is always everything
149
+ return new SQLWhere_1.SQLWhereEqual(new SQLExpressions_1.SQLSafeValue(1), SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLSafeValue(1));
150
+ }
151
+ return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.GreaterEqual, convertToExpression(norm(f.$gte)));
152
+ }
153
+ if ('$lte' in f) {
154
+ guardScalar(f.$lte);
155
+ if (isJSONObject) {
156
+ throw new Error('Greater than is not supported in this place');
157
+ }
158
+ if (f.$lte === null) {
159
+ // <= null is same as equal to null
160
+ return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, convertToExpression(norm(f.$lte)));
161
+ }
162
+ return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.LessEqual, convertToExpression(norm(f.$lte)));
163
+ }
131
164
  if ('$lt' in f) {
132
165
  guardScalar(f.$lt);
133
166
  if (isJSONObject) {
@@ -169,6 +202,15 @@ function compileSQLFilter(filter, definitions) {
169
202
  if (!f) {
170
203
  continue;
171
204
  }
205
+ if (Object.keys(f).length > 1) {
206
+ // Multiple keys in the same object should always be combined with AND
207
+ const splitted = [];
208
+ for (const key of Object.keys(f)) {
209
+ splitted.push({ [key]: f[key] });
210
+ }
211
+ runners.push(andSQLFilterCompiler(splitted, definitions));
212
+ continue;
213
+ }
172
214
  for (const key of Object.keys(f)) {
173
215
  const filter = definitions[key];
174
216
  if (!filter) {
@@ -1 +1 @@
1
- {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/sql",
3
- "version": "2.1.3",
3
+ "version": "2.4.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -13,5 +13,5 @@
13
13
  "build": "tsc -b",
14
14
  "build:full": "rm -rf ./dist && yarn build"
15
15
  },
16
- "gitHead": "b5773c547dceaae52b9c2a098b222417fcd42e4f"
16
+ "gitHead": "5313c328ca0e90544bf198bc6bebc90d7dced2aa"
17
17
  }
package/src/SQL.ts CHANGED
@@ -2,7 +2,8 @@ import { SQLExpression } from "./SQLExpression";
2
2
  import { SQLSelect } from "./SQLSelect";
3
3
  import { SQLColumnExpression, SQLSafeValue, SQLTableExpression, SQLWildcardSelectExpression, scalarToSQLExpression } from "./SQLExpressions";
4
4
  import { SQLJoin, SQLJoinType } from "./SQLJoin";
5
- import { SQLJsonExtract } from "./SQLJsonExpressions";
5
+ import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
6
+ import { SQLDelete } from "./SQLDelete";
6
7
 
7
8
  class StaticSQL {
8
9
  wildcard(namespace?: string) {
@@ -22,6 +23,10 @@ class StaticSQL {
22
23
  return new SQLJsonExtract(column, new SQLSafeValue(path))
23
24
  }
24
25
 
26
+ jsonLength(column: SQLExpression, path?: string): SQLJsonLength {
27
+ return new SQLJsonLength(column, path ? new SQLSafeValue(path) : undefined)
28
+ }
29
+
25
30
  table(namespace: string, table: string): SQLTableExpression;
26
31
  table(table: string): SQLTableExpression;
27
32
  table(namespaceOrTable: string, table?: string): SQLTableExpression {
@@ -38,6 +43,10 @@ class StaticSQL {
38
43
  return new SQLSelect(...columns)
39
44
  }
40
45
 
46
+ delete(): InstanceType<typeof SQLDelete> {
47
+ return new SQLDelete()
48
+ }
49
+
41
50
  leftJoin(table: SQLExpression) {
42
51
  return new SQLJoin(SQLJoinType.Left, table)
43
52
  }
@@ -0,0 +1,67 @@
1
+ import { Database } from "@simonbackx/simple-database";
2
+ import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery, normalizeSQLQuery } from "./SQLExpression";
3
+ import { SQLJoin } from './SQLJoin';
4
+ import { SQLWhere, addWhereHelpers } from "./SQLWhere";
5
+
6
+ class DeleteBase implements SQLExpression {
7
+ _from: SQLExpression;
8
+ _where: SQLWhere|null = null;
9
+ _joins: (InstanceType<typeof SQLJoin>)[] = [];
10
+
11
+ constructor() {
12
+ }
13
+
14
+ clone(): this {
15
+ const c = new SQLDelete()
16
+ Object.assign(c, this);
17
+ return c as any;
18
+ }
19
+
20
+ from(table: SQLExpression): this {
21
+ this._from = table;
22
+ return this;
23
+ }
24
+
25
+ join(join: InstanceType<typeof SQLJoin>): this {
26
+ this._joins.push(join);
27
+ return this;
28
+ }
29
+
30
+ getSQL(options?: SQLExpressionOptions): SQLQuery {
31
+ const query: SQLQuery[] = [
32
+ 'DELETE'
33
+ ]
34
+
35
+ options = options ?? {}
36
+ options.defaultNamespace = (this._from as any).namespace ?? (this._from as any).table ?? undefined;
37
+
38
+ query.push(
39
+ 'FROM'
40
+ )
41
+
42
+ query.push(this._from.getSQL(options));
43
+
44
+ query.push(...this._joins.map(j => j.getSQL(options)))
45
+
46
+ if (this._where) {
47
+ query.push('WHERE')
48
+ query.push(this._where.getSQL(options))
49
+ }
50
+
51
+ return joinSQLQuery(query, ' ');
52
+ }
53
+
54
+ async delete(): Promise<{affectedRows: number}> {
55
+ const {query, params} = normalizeSQLQuery(this.getSQL())
56
+
57
+ console.log(query, params);
58
+ const [rows] = await Database.delete(query, params);
59
+ return rows;
60
+ }
61
+
62
+ async then(onFulfilled: (value: {affectedRows: number}) => any, onRejected: (reason: any) => any): Promise<any> {
63
+ return this.delete().then(onFulfilled, onRejected);
64
+ }
65
+ }
66
+
67
+ export const SQLDelete = addWhereHelpers(DeleteBase)
@@ -42,7 +42,20 @@ export function readDynamicSQLExpression(s: SQLDynamicExpression): SQLExpression
42
42
 
43
43
  return new SQLScalar(s)
44
44
  }
45
+ export class SQLDistinct implements SQLExpression {
46
+ expression: SQLExpression
47
+
48
+ constructor(expression: SQLExpression) {
49
+ this.expression = expression
50
+ }
45
51
 
52
+ getSQL(options?: SQLExpressionOptions): SQLQuery {
53
+ return joinSQLQuery([
54
+ 'DISTINCT',
55
+ this.expression.getSQL(options),
56
+ ])
57
+ }
58
+ }
46
59
  export class SQLCount implements SQLExpression {
47
60
  expression: SQLExpression|null
48
61
 
@@ -58,7 +71,21 @@ export class SQLCount implements SQLExpression {
58
71
  ])
59
72
  }
60
73
  }
74
+ export class SQLSum implements SQLExpression {
75
+ expression: SQLExpression
76
+
77
+ constructor(expression: SQLExpression) {
78
+ this.expression = expression
79
+ }
61
80
 
81
+ getSQL(options?: SQLExpressionOptions): SQLQuery {
82
+ return joinSQLQuery([
83
+ 'SUM(',
84
+ this.expression.getSQL(options),
85
+ ')'
86
+ ])
87
+ }
88
+ }
62
89
  export class SQLSelectAs implements SQLExpression {
63
90
  expression: SQLExpression
64
91
  as: SQLAlias
@@ -24,6 +24,27 @@ export class SQLJsonExtract implements SQLExpression {
24
24
  }
25
25
  }
26
26
 
27
+ export class SQLJsonLength implements SQLExpression {
28
+ target: SQLExpression
29
+ path?: SQLExpression
30
+
31
+ constructor(target: SQLExpression, path?: SQLExpression) {
32
+ this.target = target;
33
+ this.path = path;
34
+ }
35
+
36
+ getSQL(options?: SQLExpressionOptions): SQLQuery {
37
+ return joinSQLQuery([
38
+ 'JSON_LENGTH(',
39
+ this.target.getSQL(options),
40
+ ...(this.path ? [
41
+ ',',
42
+ this.path.getSQL(options),
43
+ ] : []),
44
+ ')'
45
+ ])
46
+ }
47
+ }
27
48
  /**
28
49
  * JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
29
50
  */
@@ -108,4 +129,4 @@ export class SQLJsonOverlaps implements SQLExpression {
108
129
  ')'
109
130
  ])
110
131
  }
111
- }
132
+ }
package/src/SQLSelect.ts CHANGED
@@ -3,7 +3,7 @@ import { SQLOrderBy, addOrderByHelpers } from "./SQLOrderBy";
3
3
  import { SQLWhere, addWhereHelpers } from "./SQLWhere";
4
4
  import {Database, SQLResultNamespacedRow} from "@simonbackx/simple-database"
5
5
  import {SQLJoin} from './SQLJoin'
6
- import { SQLAlias, SQLCount, SQLSelectAs, SQLWildcardSelectExpression } from "./SQLExpressions";
6
+ import { SQLAlias, SQLCount, SQLSelectAs, SQLSum, SQLWildcardSelectExpression } from "./SQLExpressions";
7
7
 
8
8
  class SelectBase implements SQLExpression {
9
9
  _columns: SQLExpression[]
@@ -14,6 +14,7 @@ class SelectBase implements SQLExpression {
14
14
 
15
15
  _where: SQLWhere|null = null;
16
16
  _orderBy: SQLOrderBy|null = null;
17
+ _groupBy: SQLExpression[] = [];
17
18
  _joins: (InstanceType<typeof SQLJoin>)[] = [];
18
19
 
19
20
  constructor(...columns: SQLExpression[]) {
@@ -36,6 +37,11 @@ class SelectBase implements SQLExpression {
36
37
  return this;
37
38
  }
38
39
 
40
+ groupBy(...columns: SQLExpression[]): this {
41
+ this._groupBy.push(...columns);
42
+ return this;
43
+ }
44
+
39
45
  getSQL(options?: SQLExpressionOptions): SQLQuery {
40
46
  const query: SQLQuery[] = [
41
47
  'SELECT'
@@ -62,11 +68,20 @@ class SelectBase implements SQLExpression {
62
68
  query.push(this._where.getSQL(options))
63
69
  }
64
70
 
71
+ if (this._groupBy.length > 0) {
72
+ query.push('GROUP BY')
73
+ query.push(
74
+ joinSQLQuery(
75
+ this._groupBy.map(c => c.getSQL(options)),
76
+ ', '
77
+ )
78
+ )
79
+ }
80
+
65
81
  if (this._orderBy) {
66
82
  query.push(this._orderBy.getSQL(options))
67
83
  }
68
-
69
-
84
+
70
85
  if (this._limit !== null) {
71
86
  query.push('LIMIT ' + this._limit)
72
87
  if (this._offset !== null && this._offset !== 0) {
@@ -152,6 +167,37 @@ class SelectBase implements SQLExpression {
152
167
  console.warn('Invalid count SQL response', rows);
153
168
  return 0;
154
169
  }
170
+
171
+ async sum(expression: SQLExpression): Promise<number> {
172
+ this._columns = [
173
+ new SQLSelectAs(
174
+ new SQLSum(expression),
175
+ new SQLAlias('c')
176
+ )
177
+ ]
178
+ this._offset = null;
179
+ this._limit = null;
180
+ this._orderBy = null;
181
+
182
+ const {query, params} = normalizeSQLQuery(this.getSQL());
183
+ console.log(query, params);
184
+
185
+ const [rows] = await Database.select(query, params, {nestTables: true});
186
+ if (rows.length === 1) {
187
+ const row = rows[0];
188
+ if ('' in row) {
189
+ const namespaced = row[''];
190
+ if ('c' in namespaced) {
191
+ const value = namespaced['c'];
192
+ if (typeof value === 'number' && Number.isInteger(value)) {
193
+ return value;
194
+ }
195
+ }
196
+ }
197
+ }
198
+ console.warn('Invalid sum SQL response', rows);
199
+ return 0;
200
+ }
155
201
  }
156
202
 
157
203
  export const SQLSelect = addOrderByHelpers(
package/src/SQLWhere.ts CHANGED
@@ -105,7 +105,9 @@ export abstract class SQLWhere implements SQLExpression {
105
105
  export enum SQLWhereSign {
106
106
  Equal = '=',
107
107
  Greater = '>',
108
+ GreaterEqual = '>=',
108
109
  Less = '<',
110
+ LessEqual = '<=',
109
111
  NotEqual = '!='
110
112
  }
111
113
 
@@ -147,8 +149,10 @@ export class SQLWhereEqual extends SQLWhere {
147
149
  switch (this.sign) {
148
150
  case SQLWhereSign.Equal: this.sign = SQLWhereSign.NotEqual; break;
149
151
  case SQLWhereSign.NotEqual: this.sign = SQLWhereSign.Equal; break;
150
- case SQLWhereSign.Greater: this.sign = SQLWhereSign.Less; break;
151
- case SQLWhereSign.Less: this.sign = SQLWhereSign.Greater; break;
152
+ case SQLWhereSign.Greater: this.sign = SQLWhereSign.LessEqual; break;
153
+ case SQLWhereSign.Less: this.sign = SQLWhereSign.GreaterEqual; break;
154
+ case SQLWhereSign.GreaterEqual: this.sign = SQLWhereSign.Less; break;
155
+ case SQLWhereSign.LessEqual: this.sign = SQLWhereSign.Greater; break
152
156
  }
153
157
  return this;
154
158
  }
@@ -135,6 +135,18 @@ export function createSQLExpressionFilterCompiler(sqlExpression: SQLExpression,
135
135
  new SQLSafeValue(1)
136
136
  );
137
137
  }
138
+
139
+ const nullIncluded = v.includes(null);
140
+ if (nullIncluded) {
141
+ const remaining = v.filter(v => v !== null);
142
+ if (remaining.length === 0) {
143
+ return new SQLWhereEqual(sqlExpression, SQLWhereSign.Equal, new SQLNull());
144
+ }
145
+ return new SQLWhereOr([
146
+ new SQLWhereEqual(sqlExpression, SQLWhereSign.Equal, new SQLNull()),
147
+ new SQLWhereEqual(sqlExpression, SQLWhereSign.Equal, new SQLArray(remaining))
148
+ ]);
149
+ }
138
150
  return new SQLWhereEqual(sqlExpression, SQLWhereSign.Equal, new SQLArray(v));
139
151
  }
140
152
 
@@ -179,6 +191,35 @@ export function createSQLExpressionFilterCompiler(sqlExpression: SQLExpression,
179
191
  return new SQLWhereEqual(sqlExpression, SQLWhereSign.Greater, convertToExpression(norm(f.$gt)));
180
192
  }
181
193
 
194
+ if ('$gte' in f) {
195
+ guardScalar(f.$gte);
196
+
197
+ if (isJSONObject) {
198
+ throw new Error('Greater than is not supported in this place')
199
+ }
200
+
201
+ if (f.$gte === null) {
202
+ // >= null is always everything
203
+ return new SQLWhereEqual(new SQLSafeValue(1), SQLWhereSign.Equal, new SQLSafeValue(1));
204
+ }
205
+ return new SQLWhereEqual(sqlExpression, SQLWhereSign.GreaterEqual, convertToExpression(norm(f.$gte)));
206
+ }
207
+
208
+ if ('$lte' in f) {
209
+ guardScalar(f.$lte);
210
+
211
+ if (isJSONObject) {
212
+ throw new Error('Greater than is not supported in this place')
213
+ }
214
+
215
+ if (f.$lte === null) {
216
+ // <= null is same as equal to null
217
+ return new SQLWhereEqual(sqlExpression, SQLWhereSign.Equal, convertToExpression(norm(f.$lte)));
218
+ }
219
+ return new SQLWhereEqual(sqlExpression, SQLWhereSign.LessEqual, convertToExpression(norm(f.$lte)));
220
+ }
221
+
222
+
182
223
  if ('$lt' in f) {
183
224
  guardScalar(f.$lt);
184
225
 
@@ -244,6 +285,15 @@ function compileSQLFilter(filter: StamhoofdFilter, definitions: SQLFilterDefinit
244
285
  if (!f) {
245
286
  continue;
246
287
  }
288
+ if (Object.keys(f).length > 1) {
289
+ // Multiple keys in the same object should always be combined with AND
290
+ const splitted: StamhoofdFilter[] = [];
291
+ for (const key of Object.keys(f)) {
292
+ splitted.push({ [key]: f[key] })
293
+ }
294
+ runners.push(andSQLFilterCompiler(splitted, definitions));
295
+ continue;
296
+ }
247
297
  for (const key of Object.keys(f)) {
248
298
  const filter = definitions[key];
249
299
  if (!filter) {