@stamhoofd/sql 2.89.1 → 2.90.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.
Files changed (125) hide show
  1. package/dist/index.d.ts +1 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/SQLJsonExpressions.d.ts +2 -0
  6. package/dist/src/SQLJsonExpressions.d.ts.map +1 -1
  7. package/dist/src/SQLJsonExpressions.js +8 -0
  8. package/dist/src/SQLJsonExpressions.js.map +1 -1
  9. package/dist/src/SQLSelect.d.ts.map +1 -1
  10. package/dist/src/SQLSelect.js +7 -0
  11. package/dist/src/SQLSelect.js.map +1 -1
  12. package/dist/src/SQLWhere.d.ts +6 -0
  13. package/dist/src/SQLWhere.d.ts.map +1 -1
  14. package/dist/src/SQLWhere.js +39 -1
  15. package/dist/src/SQLWhere.js.map +1 -1
  16. package/dist/src/filters/SQLFilter.d.ts +61 -25
  17. package/dist/src/filters/SQLFilter.d.ts.map +1 -1
  18. package/dist/src/filters/SQLFilter.js +183 -380
  19. package/dist/src/filters/SQLFilter.js.map +1 -1
  20. package/dist/src/filters/{modern/compilers → compilers}/contains.d.ts +1 -1
  21. package/dist/src/filters/compilers/contains.d.ts.map +1 -0
  22. package/dist/src/filters/{modern/compilers → compilers}/contains.js +6 -6
  23. package/dist/src/filters/compilers/contains.js.map +1 -0
  24. package/dist/src/filters/{modern/compilers → compilers}/equals.d.ts +1 -1
  25. package/dist/src/filters/compilers/equals.d.ts.map +1 -0
  26. package/dist/src/filters/{modern/compilers → compilers}/equals.js +7 -7
  27. package/dist/src/filters/compilers/equals.js.map +1 -0
  28. package/dist/src/filters/{modern/compilers → compilers}/greater.d.ts +1 -1
  29. package/dist/src/filters/compilers/greater.d.ts.map +1 -0
  30. package/dist/src/filters/{modern/compilers → compilers}/greater.js +4 -4
  31. package/dist/src/filters/compilers/greater.js.map +1 -0
  32. package/dist/src/filters/{modern/compilers → compilers}/in.d.ts +1 -1
  33. package/dist/src/filters/compilers/in.d.ts.map +1 -0
  34. package/dist/src/filters/{modern/compilers → compilers}/in.js +7 -7
  35. package/dist/src/filters/compilers/in.js.map +1 -0
  36. package/dist/src/filters/compilers/index.d.ts.map +1 -0
  37. package/dist/src/filters/compilers/index.js.map +1 -0
  38. package/dist/src/filters/{modern/compilers → compilers}/less.d.ts +1 -1
  39. package/dist/src/filters/compilers/less.d.ts.map +1 -0
  40. package/dist/src/filters/{modern/compilers → compilers}/less.js +4 -4
  41. package/dist/src/filters/compilers/less.js.map +1 -0
  42. package/dist/src/filters/helpers/isJSONColumn.d.ts +4 -0
  43. package/dist/src/filters/helpers/isJSONColumn.d.ts.map +1 -0
  44. package/dist/src/filters/helpers/isJSONColumn.js +16 -0
  45. package/dist/src/filters/helpers/isJSONColumn.js.map +1 -0
  46. package/dist/src/filters/{modern/helpers → helpers}/normalizeCompareValue.d.ts +2 -2
  47. package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +1 -0
  48. package/dist/src/filters/{modern/helpers → helpers}/normalizeCompareValue.js +13 -13
  49. package/dist/src/filters/helpers/normalizeCompareValue.js.map +1 -0
  50. package/dist/tests/filters/$and.test.js +49 -18
  51. package/dist/tests/filters/$and.test.js.map +1 -1
  52. package/dist/tests/filters/$contains.test.js +20 -20
  53. package/dist/tests/filters/$contains.test.js.map +1 -1
  54. package/dist/tests/filters/$eq.test.js +59 -53
  55. package/dist/tests/filters/$eq.test.js.map +1 -1
  56. package/dist/tests/filters/$gt.test.js +18 -18
  57. package/dist/tests/filters/$gt.test.js.map +1 -1
  58. package/dist/tests/filters/$gte.test.js +14 -14
  59. package/dist/tests/filters/$gte.test.js.map +1 -1
  60. package/dist/tests/filters/$in.test.js +24 -24
  61. package/dist/tests/filters/$in.test.js.map +1 -1
  62. package/dist/tests/filters/$lt.test.js +14 -14
  63. package/dist/tests/filters/$lt.test.js.map +1 -1
  64. package/dist/tests/filters/$lte.test.js +14 -14
  65. package/dist/tests/filters/$lte.test.js.map +1 -1
  66. package/dist/tests/filters/$neq.test.js +3 -3
  67. package/dist/tests/filters/$neq.test.js.map +1 -1
  68. package/dist/tests/filters/$not.test.js +5 -5
  69. package/dist/tests/filters/$not.test.js.map +1 -1
  70. package/dist/tests/filters/$or.test.js +16 -16
  71. package/dist/tests/filters/$or.test.js.map +1 -1
  72. package/dist/tests/filters/dot-syntax.test.js +10 -10
  73. package/dist/tests/filters/dot-syntax.test.js.map +1 -1
  74. package/dist/tests/filters/exists.test.js +16 -16
  75. package/dist/tests/filters/exists.test.js.map +1 -1
  76. package/dist/tests/filters/joined-relations.test.js +31 -31
  77. package/dist/tests/filters/joined-relations.test.js.map +1 -1
  78. package/dist/tests/filters/special-cases.test.js +11 -11
  79. package/dist/tests/filters/special-cases.test.js.map +1 -1
  80. package/dist/tests/filters/wildcard.test.js +8 -8
  81. package/dist/tests/filters/wildcard.test.js.map +1 -1
  82. package/dist/tests/utils/index.d.ts +7 -7
  83. package/dist/tests/utils/index.d.ts.map +1 -1
  84. package/dist/tests/utils/index.js +6 -6
  85. package/dist/tests/utils/index.js.map +1 -1
  86. package/dist/tsconfig.tsbuildinfo +1 -1
  87. package/package.json +2 -2
  88. package/src/SQLJsonExpressions.ts +10 -0
  89. package/src/SQLSelect.ts +9 -0
  90. package/src/SQLWhere.ts +48 -1
  91. package/src/filters/SQLFilter.ts +203 -485
  92. package/src/filters/{modern/compilers → compilers}/contains.ts +5 -5
  93. package/src/filters/{modern/compilers → compilers}/equals.ts +6 -6
  94. package/src/filters/{modern/compilers → compilers}/greater.ts +3 -3
  95. package/src/filters/{modern/compilers → compilers}/in.ts +6 -6
  96. package/src/filters/{modern/compilers → compilers}/less.ts +3 -3
  97. package/src/filters/helpers/isJSONColumn.ts +13 -0
  98. package/src/filters/{modern/helpers → helpers}/normalizeCompareValue.ts +14 -14
  99. package/dist/src/filters/modern/SQLModernFilter.d.ts +0 -73
  100. package/dist/src/filters/modern/SQLModernFilter.d.ts.map +0 -1
  101. package/dist/src/filters/modern/SQLModernFilter.js +0 -200
  102. package/dist/src/filters/modern/SQLModernFilter.js.map +0 -1
  103. package/dist/src/filters/modern/compilers/contains.d.ts.map +0 -1
  104. package/dist/src/filters/modern/compilers/contains.js.map +0 -1
  105. package/dist/src/filters/modern/compilers/equals.d.ts.map +0 -1
  106. package/dist/src/filters/modern/compilers/equals.js.map +0 -1
  107. package/dist/src/filters/modern/compilers/greater.d.ts.map +0 -1
  108. package/dist/src/filters/modern/compilers/greater.js.map +0 -1
  109. package/dist/src/filters/modern/compilers/in.d.ts.map +0 -1
  110. package/dist/src/filters/modern/compilers/in.js.map +0 -1
  111. package/dist/src/filters/modern/compilers/index.d.ts.map +0 -1
  112. package/dist/src/filters/modern/compilers/index.js.map +0 -1
  113. package/dist/src/filters/modern/compilers/less.d.ts.map +0 -1
  114. package/dist/src/filters/modern/compilers/less.js.map +0 -1
  115. package/dist/src/filters/modern/helpers/isJSONColumn.d.ts +0 -4
  116. package/dist/src/filters/modern/helpers/isJSONColumn.d.ts.map +0 -1
  117. package/dist/src/filters/modern/helpers/isJSONColumn.js +0 -16
  118. package/dist/src/filters/modern/helpers/isJSONColumn.js.map +0 -1
  119. package/dist/src/filters/modern/helpers/normalizeCompareValue.d.ts.map +0 -1
  120. package/dist/src/filters/modern/helpers/normalizeCompareValue.js.map +0 -1
  121. package/src/filters/modern/SQLModernFilter.ts +0 -256
  122. package/src/filters/modern/helpers/isJSONColumn.ts +0 -13
  123. /package/dist/src/filters/{modern/compilers → compilers}/index.d.ts +0 -0
  124. /package/dist/src/filters/{modern/compilers → compilers}/index.js +0 -0
  125. /package/src/filters/{modern/compilers → compilers}/index.ts +0 -0
@@ -10,17 +10,17 @@ exports.createTableDefinition = createTableDefinition;
10
10
  exports.testMatch = testMatch;
11
11
  const simple_database_1 = require("@simonbackx/simple-database");
12
12
  const test_utils_1 = require("@stamhoofd/test-utils");
13
- const SQLModernFilter_1 = require("../../src/filters/modern/SQLModernFilter");
13
+ const SQLFilter_1 = require("../../src/filters/SQLFilter");
14
14
  const SQL_1 = require("../../src/SQL");
15
15
  const SQLWhere_1 = require("../../src/SQLWhere");
16
16
  async function testError({ filter, filters, error }) {
17
- await expect((0, SQLModernFilter_1.compileToModernSQLFilter)(filter, filters)).rejects.toThrow(error);
17
+ await expect((0, SQLFilter_1.compileToSQLFilter)(filter, filters)).rejects.toThrow(error);
18
18
  }
19
19
  /**
20
20
  * Only compares the WHERE clause of the query.
21
21
  */
22
22
  async function test({ filter, filters, query }) {
23
- const where = await (0, SQLModernFilter_1.compileToModernSQLFilter)(filter, filters);
23
+ const where = await (0, SQLFilter_1.compileToSQLFilter)(filter, filters);
24
24
  if (where.isAlways === false) {
25
25
  doesQueryMatch('', query);
26
26
  return;
@@ -39,7 +39,7 @@ async function test({ filter, filters, query }) {
39
39
  * Use to also test joins. This will use `test_table` as the table name in your query.
40
40
  */
41
41
  async function testSelect({ filter, filters, query }) {
42
- const where = await (0, SQLModernFilter_1.compileToModernSQLFilter)(filter, filters);
42
+ const where = await (0, SQLFilter_1.compileToSQLFilter)(filter, filters);
43
43
  if (where.isAlways === false) {
44
44
  doesQueryMatch('', query);
45
45
  return;
@@ -147,7 +147,7 @@ async function testMatch({ tableDefinition, rows, doMatch, doNotMatch, filters }
147
147
  // Run queries
148
148
  try {
149
149
  for (const filter of doMatch ?? []) {
150
- const where = await (0, SQLModernFilter_1.compileToModernSQLFilter)(filter, filters);
150
+ const where = await (0, SQLFilter_1.compileToSQLFilter)(filter, filters);
151
151
  const select = SQL_1.SQL.select().from(tableName).where(where);
152
152
  let results;
153
153
  try {
@@ -168,7 +168,7 @@ async function testMatch({ tableDefinition, rows, doMatch, doNotMatch, filters }
168
168
  }).toMatchSnapshot('SQL Query for filter: ' + JSON.stringify(filter));
169
169
  }
170
170
  for (const filter of doNotMatch ?? []) {
171
- const where = await (0, SQLModernFilter_1.compileToModernSQLFilter)(filter, filters);
171
+ const where = await (0, SQLFilter_1.compileToSQLFilter)(filter, filters);
172
172
  const select = SQL_1.SQL.select().from(tableName).where(where);
173
173
  let results;
174
174
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tests/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tests/utils/index.ts"],"names":[],"mappings":";;AAUA,8BAIC;AAKD,oBAiBC;AAKD,gCAqBC;AAED,oCAQC;AAED,gDAQC;AAED,wCASC;AAID,sDAMC;AA0BD,8BAoGC;AArOD,iEAA+E;AAG/E,sDAAkD;AAClD,2DAAuF;AACvF,uCAAoC;AAGpC,iDAAiD;AAE1C,KAAK,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAA6E;IACjI,MAAM,MAAM,CACR,IAAA,8BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CACtC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAA+E;IAC9H,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC3B,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1B,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO;IACX,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QACrB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,QAAQ;KAC5B,CAAC,CAAC;IACH,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAA+E;IACpI,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC3B,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE5D,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,sBAAW,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpG,MAAM,CAAC,CAAC;IACZ,CAAC;IACD,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAsF;IAClJ,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC;YACP,MAAM;YACN,OAAO;YACP,KAAK;SACR,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAoF;IACtJ,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,SAAS,CAAC;YACZ,MAAM;YACN,OAAO;YACP,KAAK;SACR,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,KAAe,EAAE,SAAmB;IAC/D,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;IAEzE,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IAEtE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAID,SAAgB,qBAAqB,CAAC,SAAiB,EAAE,UAA2B;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/G,OAAO,KAAK,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,kBAAkB,SAAS,SAAS,OAAO,uEAAuE,CAAC;AAC9H,CAAC;AAED,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,SAAS,uBAAuB;IAC5B,IAAI,MAAM,EAAE,CAAC;QACT,OAAO;IACX,CAAC;IACD,MAAM,GAAG,IAAI,CAAC;IAEd,sBAAS,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACD,MAAM,0BAAQ,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAiM;IAClR,MAAM,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEzE,uBAAuB,EAAE,CAAC;IAE1B,IAAI,CAAC;QACD,MAAM,0BAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC;IAChB,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC7B,CAAC;iBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;iBACI,CAAC;gBACF,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,0BAAQ,CAAC,MAAM,CAAC,eAAe,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,WAAW,CAAC;QACtB,CAAC;IACL,CAAC;IAED,cAAc;IACd,IAAI,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,OAAiC,CAAC;YACtC,IAAI,CAAC;gBACD,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1G,MAAM,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7H,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAwB,CAAC;YACpD,MAAM,CAAC;gBACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,EAAE,cAAc,CAAC;gBACpE,MAAM,EAAE,KAAK,CAAC,MAAM;aACvB,CAAC,CAAC,eAAe,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,SAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,OAAiC,CAAC;YACtC,IAAI,CAAC;gBACD,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1G,MAAM,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7H,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAwB,CAAC;gBACpD,MAAM,CAAC;oBACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,EAAE,cAAc,CAAC;oBACpE,MAAM,EAAE,KAAK,CAAC,MAAM;iBACvB,CAAC,CAAC,eAAe,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,CAAC;iBACI,CAAC;gBACF,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;IACL,CAAC;YACO,CAAC;QACL,IAAI,CAAC;YACD,MAAM,0BAAQ,CAAC,SAAS,CAAC,0BAA0B,SAAS,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"root":["../src/queryablemodel.ts","../src/sql.ts","../src/sqldelete.ts","../src/sqlexpression.ts","../src/sqlexpressions.ts","../src/sqlinsert.ts","../src/sqljoin.ts","../src/sqljsonexpressions.ts","../src/sqlorderby.ts","../src/sqlselect.ts","../src/sqlupdate.ts","../src/sqlwhere.ts","../src/filters/sqlfilter.ts","../src/filters/sqlsorter.ts","../src/filters/modern/sqlmodernfilter.ts","../src/filters/modern/compilers/contains.ts","../src/filters/modern/compilers/equals.ts","../src/filters/modern/compilers/greater.ts","../src/filters/modern/compilers/in.ts","../src/filters/modern/compilers/index.ts","../src/filters/modern/compilers/less.ts","../src/filters/modern/helpers/isjsoncolumn.ts","../src/filters/modern/helpers/normalizecomparevalue.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../tests/filters/$and.test.ts","../tests/filters/$contains.test.ts","../tests/filters/$eq.test.ts","../tests/filters/$gt.test.ts","../tests/filters/$gte.test.ts","../tests/filters/$in.test.ts","../tests/filters/$lt.test.ts","../tests/filters/$lte.test.ts","../tests/filters/$neq.test.ts","../tests/filters/$not.test.ts","../tests/filters/$or.test.ts","../tests/filters/dot-syntax.test.ts","../tests/filters/exists.test.ts","../tests/filters/joined-relations.test.ts","../tests/filters/special-cases.test.ts","../tests/filters/wildcard.test.ts","../tests/utils/index.ts","../index.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
1
+ {"root":["../src/queryablemodel.ts","../src/sql.ts","../src/sqldelete.ts","../src/sqlexpression.ts","../src/sqlexpressions.ts","../src/sqlinsert.ts","../src/sqljoin.ts","../src/sqljsonexpressions.ts","../src/sqlorderby.ts","../src/sqlselect.ts","../src/sqlupdate.ts","../src/sqlwhere.ts","../src/filters/sqlfilter.ts","../src/filters/sqlsorter.ts","../src/filters/compilers/contains.ts","../src/filters/compilers/equals.ts","../src/filters/compilers/greater.ts","../src/filters/compilers/in.ts","../src/filters/compilers/index.ts","../src/filters/compilers/less.ts","../src/filters/helpers/isjsoncolumn.ts","../src/filters/helpers/normalizecomparevalue.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../tests/filters/$and.test.ts","../tests/filters/$contains.test.ts","../tests/filters/$eq.test.ts","../tests/filters/$gt.test.ts","../tests/filters/$gte.test.ts","../tests/filters/$in.test.ts","../tests/filters/$lt.test.ts","../tests/filters/$lte.test.ts","../tests/filters/$neq.test.ts","../tests/filters/$not.test.ts","../tests/filters/$or.test.ts","../tests/filters/dot-syntax.test.ts","../tests/filters/exists.test.ts","../tests/filters/joined-relations.test.ts","../tests/filters/special-cases.test.ts","../tests/filters/wildcard.test.ts","../tests/utils/index.ts","../index.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/sql",
3
- "version": "2.89.1",
3
+ "version": "2.90.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -16,5 +16,5 @@
16
16
  "publishConfig": {
17
17
  "access": "public"
18
18
  },
19
- "gitHead": "538a0e198d2db14c1e7650c75a645113b4394e71"
19
+ "gitHead": "d360b2ce795e378363765863457cd595f4841b73"
20
20
  }
@@ -206,6 +206,11 @@ export class SQLJsonContains extends SQLWhere {
206
206
  ')',
207
207
  ]);
208
208
  }
209
+
210
+ clone(): this {
211
+ const c = (new (this.constructor as any)(this.target, this.candidate, this.path)) as this;
212
+ return c;
213
+ }
209
214
  }
210
215
 
211
216
  /**
@@ -230,6 +235,11 @@ export class SQLJsonOverlaps extends SQLWhere {
230
235
  ')',
231
236
  ]);
232
237
  }
238
+
239
+ clone(): this {
240
+ const c = (new (this.constructor as any)(this.jsonDoc1, this.jsonDoc2)) as this;
241
+ return c;
242
+ }
233
243
  }
234
244
 
235
245
  export class SQLLpad implements SQLExpression {
package/src/SQLSelect.ts CHANGED
@@ -55,6 +55,7 @@ export class SQLSelect<T extends object = SQLResultNamespacedRow> extends Wherea
55
55
  clone(): this {
56
56
  const c = new SQLSelect(...this._columns);
57
57
  Object.assign(c, this);
58
+ this._where = this._where ? this._where.clone() : null;
58
59
  return c as any;
59
60
  }
60
61
 
@@ -232,6 +233,10 @@ export class SQLSelect<T extends object = SQLResultNamespacedRow> extends Wherea
232
233
  }
233
234
 
234
235
  async count(): Promise<number> {
236
+ if (this._where && this._where.isAlways === false) {
237
+ return 0;
238
+ }
239
+
235
240
  this._columns = [
236
241
  new SQLSelectAs(
237
242
  new SQLCount(),
@@ -263,6 +268,10 @@ export class SQLSelect<T extends object = SQLResultNamespacedRow> extends Wherea
263
268
  }
264
269
 
265
270
  async sum(expression: SQLExpression): Promise<number> {
271
+ if (this._where && this._where.isAlways === false) {
272
+ return 0;
273
+ }
274
+
266
275
  this._columns = [
267
276
  new SQLSelectAs(
268
277
  new SQLSum(expression),
package/src/SQLWhere.ts CHANGED
@@ -138,6 +138,8 @@ export abstract class SQLWhere implements SQLExpression {
138
138
  getJoins(): SQLJoin[] {
139
139
  return [];
140
140
  }
141
+
142
+ abstract clone(): this;
141
143
  }
142
144
 
143
145
  export class SQLEmptyWhere extends SQLWhere {
@@ -168,6 +170,10 @@ export class SQLEmptyWhere extends SQLWhere {
168
170
  get isAlways() {
169
171
  return true;
170
172
  }
173
+
174
+ clone(): this {
175
+ return new SQLEmptyWhere() as this;
176
+ }
171
177
  }
172
178
 
173
179
  export class SQLWhereEqual extends SQLWhere {
@@ -325,9 +331,25 @@ export class SQLWhereEqual extends SQLWhere {
325
331
  ]);
326
332
  }
327
333
 
334
+ let sign = this.sign as string;
335
+ if (this.sign === SQLWhereSign.Equal && this.nullable) {
336
+ // Swap with null-safe equal
337
+ sign = '<=>';
338
+ }
339
+ else if (this.sign === SQLWhereSign.NotEqual && this.nullable) {
340
+ // Swap with null-safe not equal
341
+ return joinSQLQuery([
342
+ 'NOT (',
343
+ this.column.getSQL(options),
344
+ ` <=> `,
345
+ this.value.getSQL(options),
346
+ ')',
347
+ ]);
348
+ }
349
+
328
350
  return joinSQLQuery([
329
351
  this.column.getSQL(options),
330
- ` ${this.sign} `,
352
+ ` ${sign} `,
331
353
  this.value.getSQL(options),
332
354
  ]);
333
355
  }
@@ -529,6 +551,12 @@ export class SQLWhereJoin extends SQLWhere {
529
551
  }
530
552
  return [this.join, ...this.where.getJoins()];
531
553
  }
554
+
555
+ clone(): this {
556
+ const c = (new (this.constructor as any)(this.join, this.where.clone())) as this;
557
+ c.doesRelationAlwaysExist = this.doesRelationAlwaysExist;
558
+ return c;
559
+ }
532
560
  }
533
561
 
534
562
  export class SQLWhereAnd extends SQLWhere {
@@ -588,6 +616,11 @@ export class SQLWhereAnd extends SQLWhere {
588
616
  // NOT (A AND B) is the same as (NOT A OR NOT B)
589
617
  return new SQLWhereOr(this.children.map(c => new SQLWhereNot(c)));
590
618
  }
619
+
620
+ clone(): this {
621
+ const c = (new (this.constructor as any)(this.children.map(child => child.clone()))) as this;
622
+ return c;
623
+ }
591
624
  }
592
625
 
593
626
  export class SQLWhereOr extends SQLWhere {
@@ -648,6 +681,11 @@ export class SQLWhereOr extends SQLWhere {
648
681
  // NOT (A OR B) is the same as (NOT A AND NOT B)
649
682
  return new SQLWhereAnd(this.children.map(c => new SQLWhereNot(c)));
650
683
  }
684
+
685
+ clone(): this {
686
+ const c = (new (this.constructor as any)(this.children.map(child => child.clone()))) as this;
687
+ return c;
688
+ }
651
689
  }
652
690
 
653
691
  export class SQLWhereNot extends SQLWhere {
@@ -659,6 +697,10 @@ export class SQLWhereNot extends SQLWhere {
659
697
  }
660
698
 
661
699
  get isSingle(): boolean {
700
+ if (this.a instanceof SQLWhereEqual || this.a instanceof SQLWhereAnd || this.a instanceof SQLWhereOr || this.a instanceof SQLWhereNot) {
701
+ return this.a.inverted().isSingle;
702
+ }
703
+
662
704
  return this.a.isSingle;
663
705
  }
664
706
 
@@ -694,4 +736,9 @@ export class SQLWhereNot extends SQLWhere {
694
736
  inverted(): SQLWhere {
695
737
  return this.a; // NOT NOT A is just A
696
738
  }
739
+
740
+ clone(): this {
741
+ const c = (new (this.constructor as any)(this.a.clone())) as this;
742
+ return c;
743
+ }
697
744
  }