@nymphjs/driver-sqlite3 1.0.0-beta.70 → 1.0.0-beta.72

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/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.72](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.71...v1.0.0-beta.72) (2024-09-20)
7
+
8
+ ### Bug Fixes
9
+
10
+ - optimize qref queries the same way ([6fcd92f](https://github.com/sciactive/nymphjs/commit/6fcd92f3289b2762fdf4549a88e80e4918cf8e19))
11
+
12
+ # [1.0.0-beta.71](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.70...v1.0.0-beta.71) (2024-09-20)
13
+
14
+ ### Bug Fixes
15
+
16
+ - optimize mysql and sqlite queries the same way ([91d0abd](https://github.com/sciactive/nymphjs/commit/91d0abd3bbaeeb673a1bd0181eceb7cfb77da4d8))
17
+
6
18
  # [1.0.0-beta.70](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.69...v1.0.0-beta.70) (2024-09-20)
7
19
 
8
20
  **Note:** Version bump only for package @nymphjs/driver-sqlite3
@@ -453,7 +453,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
453
453
  * @param subquery Whether only a subquery should be returned.
454
454
  * @returns The SQL query.
455
455
  */
456
- makeEntityQuery(options, formattedSelectors, etype, count = { i: 0 }, params = {}, subquery = false, tableSuffix = '', etypes = []) {
456
+ makeEntityQuery(options, formattedSelectors, etype, count = { i: 0 }, params = {}, subquery = false, tableSuffix = '', etypes = [], guidSelector = undefined) {
457
457
  if (typeof options.class?.alterOptions === 'function') {
458
458
  options = options.class.alterOptions(options);
459
459
  }
@@ -551,10 +551,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
551
551
  const name = `param${++count.i}`;
552
552
  curQuery +=
553
553
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
554
- ieTable +
555
- '."guid" IN (SELECT "guid" FROM ' +
554
+ 'EXISTS (SELECT "guid" FROM ' +
556
555
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
557
- ' WHERE "name"=@' +
556
+ ' WHERE "guid"=' +
557
+ ieTable +
558
+ '."guid" AND "name"=@' +
558
559
  name +
559
560
  ' AND "truthy"=1)';
560
561
  params[name] = curVar;
@@ -597,10 +598,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
597
598
  const value = `param${++count.i}`;
598
599
  curQuery +=
599
600
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
600
- ieTable +
601
- '."guid" IN (SELECT "guid" FROM ' +
601
+ 'EXISTS (SELECT "guid" FROM ' +
602
602
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
603
- ' WHERE "name"=@' +
603
+ ' WHERE "guid"=' +
604
+ ieTable +
605
+ '."guid" AND "name"=@' +
604
606
  name +
605
607
  ' AND "number"=@' +
606
608
  value +
@@ -616,10 +618,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
616
618
  const value = `param${++count.i}`;
617
619
  curQuery +=
618
620
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
619
- ieTable +
620
- '."guid" IN (SELECT "guid" FROM ' +
621
+ 'EXISTS (SELECT "guid" FROM ' +
621
622
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
622
- ' WHERE "name"=@' +
623
+ ' WHERE "guid"=' +
624
+ ieTable +
625
+ '."guid" AND "name"=@' +
623
626
  name +
624
627
  ' AND "string"=@' +
625
628
  value +
@@ -643,10 +646,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
643
646
  const value = `param${++count.i}`;
644
647
  curQuery +=
645
648
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
646
- ieTable +
647
- '."guid" IN (SELECT "guid" FROM ' +
649
+ 'EXISTS (SELECT "guid" FROM ' +
648
650
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
649
- ' WHERE "name"=@' +
651
+ ' WHERE "guid"=' +
652
+ ieTable +
653
+ '."guid" AND "name"=@' +
650
654
  name +
651
655
  ' AND "value"=@' +
652
656
  value +
@@ -704,19 +708,19 @@ class SQLite3Driver extends nymph_1.NymphDriver {
704
708
  const stringParam = `param${++count.i}`;
705
709
  curQuery +=
706
710
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
707
- '(' +
708
- ieTable +
709
- '."guid" IN (SELECT "guid" FROM ' +
711
+ '(EXISTS (SELECT "guid" FROM ' +
710
712
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
711
- ' WHERE "name"=@' +
713
+ ' WHERE "guid"=' +
714
+ ieTable +
715
+ '."guid" AND "name"=@' +
712
716
  name +
713
717
  ' AND instr("value", @' +
714
718
  value +
715
- ')) OR ' +
716
- ieTable +
717
- '."guid" IN (SELECT "guid" FROM ' +
719
+ ')) OR EXISTS (SELECT "guid" FROM ' +
718
720
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
719
- ' WHERE "name"=@' +
721
+ ' WHERE "guid"=' +
722
+ ieTable +
723
+ '."guid" AND "name"=@' +
720
724
  name +
721
725
  ' AND "string"=@' +
722
726
  stringParam +
@@ -726,10 +730,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
726
730
  else {
727
731
  curQuery +=
728
732
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
729
- ieTable +
730
- '."guid" IN (SELECT "guid" FROM ' +
733
+ 'EXISTS (SELECT "guid" FROM ' +
731
734
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
732
- ' WHERE "name"=@' +
735
+ ' WHERE "guid"=' +
736
+ ieTable +
737
+ '."guid" AND "name"=@' +
733
738
  name +
734
739
  ' AND instr("value", @' +
735
740
  value +
@@ -779,10 +784,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
779
784
  const value = `param${++count.i}`;
780
785
  curQuery +=
781
786
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
782
- ieTable +
783
- '."guid" IN (SELECT "guid" FROM ' +
787
+ 'EXISTS (SELECT "guid" FROM ' +
784
788
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
785
- ' WHERE "name"=@' +
789
+ ' WHERE "guid"=' +
790
+ ieTable +
791
+ '."guid" AND "name"=@' +
786
792
  name +
787
793
  ' AND "string" REGEXP @' +
788
794
  value +
@@ -831,10 +837,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
831
837
  const value = `param${++count.i}`;
832
838
  curQuery +=
833
839
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
834
- ieTable +
835
- '."guid" IN (SELECT "guid" FROM ' +
840
+ 'EXISTS (SELECT "guid" FROM ' +
836
841
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
837
- ' WHERE "name"=@' +
842
+ ' WHERE "guid"=' +
843
+ ieTable +
844
+ '."guid" AND "name"=@' +
838
845
  name +
839
846
  ' AND lower("string") REGEXP lower(@' +
840
847
  value +
@@ -883,10 +890,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
883
890
  const value = `param${++count.i}`;
884
891
  curQuery +=
885
892
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
886
- ieTable +
887
- '."guid" IN (SELECT "guid" FROM ' +
893
+ 'EXISTS (SELECT "guid" FROM ' +
888
894
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
889
- ' WHERE "name"=@' +
895
+ ' WHERE "guid"=' +
896
+ ieTable +
897
+ '."guid" AND "name"=@' +
890
898
  name +
891
899
  ' AND "string" LIKE @' +
892
900
  value +
@@ -935,10 +943,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
935
943
  const value = `param${++count.i}`;
936
944
  curQuery +=
937
945
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
938
- ieTable +
939
- '."guid" IN (SELECT "guid" FROM ' +
946
+ 'EXISTS (SELECT "guid" FROM ' +
940
947
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
941
- ' WHERE "name"=@' +
948
+ ' WHERE "guid"=' +
949
+ ieTable +
950
+ '."guid" AND "name"=@' +
942
951
  name +
943
952
  ' AND lower("string") LIKE lower(@' +
944
953
  value +
@@ -983,10 +992,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
983
992
  const value = `param${++count.i}`;
984
993
  curQuery +=
985
994
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
986
- ieTable +
987
- '."guid" IN (SELECT "guid" FROM ' +
995
+ 'EXISTS (SELECT "guid" FROM ' +
988
996
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
989
- ' WHERE "name"=@' +
997
+ ' WHERE "guid"=' +
998
+ ieTable +
999
+ '."guid" AND "name"=@' +
990
1000
  name +
991
1001
  ' AND "number">@' +
992
1002
  value +
@@ -1031,10 +1041,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1031
1041
  const value = `param${++count.i}`;
1032
1042
  curQuery +=
1033
1043
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
1034
- ieTable +
1035
- '."guid" IN (SELECT "guid" FROM ' +
1044
+ 'EXISTS (SELECT "guid" FROM ' +
1036
1045
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1037
- ' WHERE "name"=@' +
1046
+ ' WHERE "guid"=' +
1047
+ ieTable +
1048
+ '."guid" AND "name"=@' +
1038
1049
  name +
1039
1050
  ' AND "number">=@' +
1040
1051
  value +
@@ -1079,10 +1090,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1079
1090
  const value = `param${++count.i}`;
1080
1091
  curQuery +=
1081
1092
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
1082
- ieTable +
1083
- '."guid" IN (SELECT "guid" FROM ' +
1093
+ 'EXISTS (SELECT "guid" FROM ' +
1084
1094
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1085
- ' WHERE "name"=@' +
1095
+ ' WHERE "guid"=' +
1096
+ ieTable +
1097
+ '."guid" AND "name"=@' +
1086
1098
  name +
1087
1099
  ' AND "number"<@' +
1088
1100
  value +
@@ -1127,10 +1139,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1127
1139
  const value = `param${++count.i}`;
1128
1140
  curQuery +=
1129
1141
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
1130
- ieTable +
1131
- '."guid" IN (SELECT "guid" FROM ' +
1142
+ 'EXISTS (SELECT "guid" FROM ' +
1132
1143
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1133
- ' WHERE "name"=@' +
1144
+ ' WHERE "guid"=' +
1145
+ ieTable +
1146
+ '."guid" AND "name"=@' +
1134
1147
  name +
1135
1148
  ' AND "number"<=@' +
1136
1149
  value +
@@ -1158,10 +1171,11 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1158
1171
  const guid = `param${++count.i}`;
1159
1172
  curQuery +=
1160
1173
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
1161
- ieTable +
1162
- '."guid" IN (SELECT "guid" FROM ' +
1174
+ 'EXISTS (SELECT "guid" FROM ' +
1163
1175
  SQLite3Driver.escape(this.prefix + 'references_' + etype) +
1164
- ' WHERE "name"=@' +
1176
+ ' WHERE "guid"=' +
1177
+ ieTable +
1178
+ '."guid" AND "name"=@' +
1165
1179
  name +
1166
1180
  ' AND "reference"=@' +
1167
1181
  guid +
@@ -1183,22 +1197,30 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1183
1197
  break;
1184
1198
  case 'qref':
1185
1199
  case '!qref':
1200
+ const referenceTableSuffix = (0, guid_1.makeTableSuffix)();
1186
1201
  const [qrefOptions, ...qrefSelectors] = curValue[1];
1187
1202
  const QrefEntityClass = qrefOptions.class;
1188
1203
  etypes.push(QrefEntityClass.ETYPE);
1189
- const qrefQuery = this.makeEntityQuery({ ...qrefOptions, return: 'guid', class: QrefEntityClass }, qrefSelectors, QrefEntityClass.ETYPE, count, params, false, (0, guid_1.makeTableSuffix)(), etypes);
1204
+ const qrefQuery = this.makeEntityQuery({ ...qrefOptions, return: 'guid', class: QrefEntityClass }, qrefSelectors, QrefEntityClass.ETYPE, count, params, false, (0, guid_1.makeTableSuffix)(), etypes, 'r' + referenceTableSuffix + '."reference"');
1190
1205
  if (curQuery) {
1191
1206
  curQuery += typeIsOr ? ' OR ' : ' AND ';
1192
1207
  }
1193
1208
  const qrefName = `param${++count.i}`;
1194
1209
  curQuery +=
1195
1210
  ((0, nymph_1.xor)(typeIsNot, clauseNot) ? 'NOT ' : '') +
1196
- ieTable +
1197
- '."guid" IN (SELECT "guid" FROM ' +
1211
+ 'EXISTS (SELECT "guid" FROM ' +
1198
1212
  SQLite3Driver.escape(this.prefix + 'references_' + etype) +
1199
- ' WHERE "name"=@' +
1213
+ ' r' +
1214
+ referenceTableSuffix +
1215
+ ' WHERE r' +
1216
+ referenceTableSuffix +
1217
+ '."guid"=' +
1218
+ ieTable +
1219
+ '."guid" AND r' +
1220
+ referenceTableSuffix +
1221
+ '."name"=@' +
1200
1222
  qrefName +
1201
- ' AND "reference" IN (' +
1223
+ ' AND EXISTS (' +
1202
1224
  qrefQuery.query +
1203
1225
  '))';
1204
1226
  params[qrefName] = curValue[0];
@@ -1248,25 +1270,28 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1248
1270
  offset = ` OFFSET ${Math.floor(Number(options.offset))}`;
1249
1271
  }
1250
1272
  const whereClause = queryParts.join(') AND (');
1273
+ const guidClause = guidSelector
1274
+ ? `${ieTable}."guid"=${guidSelector} AND `
1275
+ : '';
1251
1276
  if (options.return === 'count') {
1252
1277
  if (limit || offset) {
1253
1278
  query = `SELECT COUNT("guid") AS "count" FROM (
1254
1279
  SELECT "guid"
1255
1280
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1256
- WHERE (${whereClause})${limit}${offset}
1281
+ WHERE ${guidClause}(${whereClause})${limit}${offset}
1257
1282
  )`;
1258
1283
  }
1259
1284
  else {
1260
1285
  query = `SELECT COUNT("guid") AS "count"
1261
1286
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1262
- WHERE (${whereClause})`;
1287
+ WHERE ${guidClause}(${whereClause})`;
1263
1288
  }
1264
1289
  }
1265
1290
  else if (options.return === 'guid') {
1266
1291
  query = `SELECT "guid"
1267
1292
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1268
1293
  ${sortJoin}
1269
- WHERE (${whereClause})
1294
+ WHERE ${guidClause}(${whereClause})
1270
1295
  ORDER BY ${sortByInner}, "guid"${limit}${offset}`;
1271
1296
  }
1272
1297
  else {
@@ -1287,7 +1312,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1287
1312
  SELECT "guid"
1288
1313
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1289
1314
  ${sortJoin}
1290
- WHERE (${whereClause})
1315
+ WHERE ${guidClause}(${whereClause})
1291
1316
  ORDER BY ${sortByInner}${limit}${offset}
1292
1317
  ) ${fTable} USING ("guid")
1293
1318
  ORDER BY ${sortBy}, ${eTable}."guid"`;
@@ -1307,22 +1332,26 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1307
1332
  if ('offset' in options) {
1308
1333
  offset = ` OFFSET ${Math.floor(Number(options.offset))}`;
1309
1334
  }
1335
+ const guidClause = guidSelector
1336
+ ? ` WHERE ${ieTable}."guid"=${guidSelector}`
1337
+ : '';
1310
1338
  if (options.return === 'count') {
1311
1339
  if (limit || offset) {
1312
1340
  query = `SELECT COUNT("guid") AS "count" FROM (
1313
1341
  SELECT "guid"
1314
- FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}${limit}${offset}
1342
+ FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}${guidClause}${limit}${offset}
1315
1343
  )`;
1316
1344
  }
1317
1345
  else {
1318
1346
  query = `SELECT COUNT("guid") AS "count"
1319
- FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}`;
1347
+ FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}${guidClause}`;
1320
1348
  }
1321
1349
  }
1322
1350
  else if (options.return === 'guid') {
1323
1351
  query = `SELECT "guid"
1324
1352
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1325
1353
  ${sortJoin}
1354
+ ${guidClause}
1326
1355
  ORDER BY ${sortByInner}, "guid"${limit}${offset}`;
1327
1356
  }
1328
1357
  else {
@@ -1344,6 +1373,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1344
1373
  SELECT "guid"
1345
1374
  FROM ${SQLite3Driver.escape(this.prefix + 'entities_' + etype)} ${ieTable}
1346
1375
  ${sortJoin}
1376
+ ${guidClause}
1347
1377
  ORDER BY ${sortByInner}${limit}${offset}
1348
1378
  ) ${fTable} USING ("guid")
1349
1379
  ORDER BY ${sortBy}, ${eTable}."guid"`;
@@ -1362,6 +1392,7 @@ class SQLite3Driver extends nymph_1.NymphDriver {
1362
1392
  LEFT JOIN ${SQLite3Driver.escape(this.prefix + 'data_' + etype)} ${dTable} USING ("guid")
1363
1393
  INNER JOIN ${SQLite3Driver.escape(this.prefix + 'comparisons_' + etype)} ${cTable} USING ("guid", "name")
1364
1394
  ${sortJoin}
1395
+ ${guidSelector ? `WHERE ${eTable}."guid"=${guidSelector}` : ''}
1365
1396
  ORDER BY ${sortBy}, ${eTable}."guid"`;
1366
1397
  }
1367
1398
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLite3Driver.js","sourceRoot":"","sources":["../src/SQLite3Driver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/driver-sqlite3",
3
- "version": "1.0.0-beta.70",
3
+ "version": "1.0.0-beta.72",
4
4
  "description": "Nymph.js - SQLite3 DB Driver",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -31,8 +31,8 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@nymphjs/guid": "^1.0.0-beta.70",
35
- "@nymphjs/nymph": "^1.0.0-beta.70",
34
+ "@nymphjs/guid": "^1.0.0-beta.72",
35
+ "@nymphjs/nymph": "^1.0.0-beta.72",
36
36
  "better-sqlite3": "^9.4.3"
37
37
  },
38
38
  "devDependencies": {
@@ -43,5 +43,5 @@
43
43
  "ts-jest": "^29.1.2",
44
44
  "typescript": "^5.3.3"
45
45
  },
46
- "gitHead": "f9462cc4f589e8b2d8bdaf7bf7b985c7dc34321a"
46
+ "gitHead": "8931162ff2eeaa56912fe819a52f178787f6ea1b"
47
47
  }
@@ -761,6 +761,7 @@ export default class SQLite3Driver extends NymphDriver {
761
761
  subquery = false,
762
762
  tableSuffix = '',
763
763
  etypes: string[] = [],
764
+ guidSelector: string | undefined = undefined,
764
765
  ) {
765
766
  if (typeof options.class?.alterOptions === 'function') {
766
767
  options = options.class.alterOptions(options);
@@ -859,10 +860,11 @@ export default class SQLite3Driver extends NymphDriver {
859
860
  const name = `param${++count.i}`;
860
861
  curQuery +=
861
862
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
862
- ieTable +
863
- '."guid" IN (SELECT "guid" FROM ' +
863
+ 'EXISTS (SELECT "guid" FROM ' +
864
864
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
865
- ' WHERE "name"=@' +
865
+ ' WHERE "guid"=' +
866
+ ieTable +
867
+ '."guid" AND "name"=@' +
866
868
  name +
867
869
  ' AND "truthy"=1)';
868
870
  params[name] = curVar;
@@ -903,10 +905,11 @@ export default class SQLite3Driver extends NymphDriver {
903
905
  const value = `param${++count.i}`;
904
906
  curQuery +=
905
907
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
906
- ieTable +
907
- '."guid" IN (SELECT "guid" FROM ' +
908
+ 'EXISTS (SELECT "guid" FROM ' +
908
909
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
909
- ' WHERE "name"=@' +
910
+ ' WHERE "guid"=' +
911
+ ieTable +
912
+ '."guid" AND "name"=@' +
910
913
  name +
911
914
  ' AND "number"=@' +
912
915
  value +
@@ -921,10 +924,11 @@ export default class SQLite3Driver extends NymphDriver {
921
924
  const value = `param${++count.i}`;
922
925
  curQuery +=
923
926
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
924
- ieTable +
925
- '."guid" IN (SELECT "guid" FROM ' +
927
+ 'EXISTS (SELECT "guid" FROM ' +
926
928
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
927
- ' WHERE "name"=@' +
929
+ ' WHERE "guid"=' +
930
+ ieTable +
931
+ '."guid" AND "name"=@' +
928
932
  name +
929
933
  ' AND "string"=@' +
930
934
  value +
@@ -948,10 +952,11 @@ export default class SQLite3Driver extends NymphDriver {
948
952
  const value = `param${++count.i}`;
949
953
  curQuery +=
950
954
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
951
- ieTable +
952
- '."guid" IN (SELECT "guid" FROM ' +
955
+ 'EXISTS (SELECT "guid" FROM ' +
953
956
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
954
- ' WHERE "name"=@' +
957
+ ' WHERE "guid"=' +
958
+ ieTable +
959
+ '."guid" AND "name"=@' +
955
960
  name +
956
961
  ' AND "value"=@' +
957
962
  value +
@@ -1008,19 +1013,19 @@ export default class SQLite3Driver extends NymphDriver {
1008
1013
  const stringParam = `param${++count.i}`;
1009
1014
  curQuery +=
1010
1015
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1011
- '(' +
1012
- ieTable +
1013
- '."guid" IN (SELECT "guid" FROM ' +
1016
+ '(EXISTS (SELECT "guid" FROM ' +
1014
1017
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
1015
- ' WHERE "name"=@' +
1018
+ ' WHERE "guid"=' +
1019
+ ieTable +
1020
+ '."guid" AND "name"=@' +
1016
1021
  name +
1017
1022
  ' AND instr("value", @' +
1018
1023
  value +
1019
- ')) OR ' +
1020
- ieTable +
1021
- '."guid" IN (SELECT "guid" FROM ' +
1024
+ ')) OR EXISTS (SELECT "guid" FROM ' +
1022
1025
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1023
- ' WHERE "name"=@' +
1026
+ ' WHERE "guid"=' +
1027
+ ieTable +
1028
+ '."guid" AND "name"=@' +
1024
1029
  name +
1025
1030
  ' AND "string"=@' +
1026
1031
  stringParam +
@@ -1029,10 +1034,11 @@ export default class SQLite3Driver extends NymphDriver {
1029
1034
  } else {
1030
1035
  curQuery +=
1031
1036
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1032
- ieTable +
1033
- '."guid" IN (SELECT "guid" FROM ' +
1037
+ 'EXISTS (SELECT "guid" FROM ' +
1034
1038
  SQLite3Driver.escape(this.prefix + 'data_' + etype) +
1035
- ' WHERE "name"=@' +
1039
+ ' WHERE "guid"=' +
1040
+ ieTable +
1041
+ '."guid" AND "name"=@' +
1036
1042
  name +
1037
1043
  ' AND instr("value", @' +
1038
1044
  value +
@@ -1080,10 +1086,11 @@ export default class SQLite3Driver extends NymphDriver {
1080
1086
  const value = `param${++count.i}`;
1081
1087
  curQuery +=
1082
1088
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1083
- ieTable +
1084
- '."guid" IN (SELECT "guid" FROM ' +
1089
+ 'EXISTS (SELECT "guid" FROM ' +
1085
1090
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1086
- ' WHERE "name"=@' +
1091
+ ' WHERE "guid"=' +
1092
+ ieTable +
1093
+ '."guid" AND "name"=@' +
1087
1094
  name +
1088
1095
  ' AND "string" REGEXP @' +
1089
1096
  value +
@@ -1130,10 +1137,11 @@ export default class SQLite3Driver extends NymphDriver {
1130
1137
  const value = `param${++count.i}`;
1131
1138
  curQuery +=
1132
1139
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1133
- ieTable +
1134
- '."guid" IN (SELECT "guid" FROM ' +
1140
+ 'EXISTS (SELECT "guid" FROM ' +
1135
1141
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1136
- ' WHERE "name"=@' +
1142
+ ' WHERE "guid"=' +
1143
+ ieTable +
1144
+ '."guid" AND "name"=@' +
1137
1145
  name +
1138
1146
  ' AND lower("string") REGEXP lower(@' +
1139
1147
  value +
@@ -1180,10 +1188,11 @@ export default class SQLite3Driver extends NymphDriver {
1180
1188
  const value = `param${++count.i}`;
1181
1189
  curQuery +=
1182
1190
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1183
- ieTable +
1184
- '."guid" IN (SELECT "guid" FROM ' +
1191
+ 'EXISTS (SELECT "guid" FROM ' +
1185
1192
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1186
- ' WHERE "name"=@' +
1193
+ ' WHERE "guid"=' +
1194
+ ieTable +
1195
+ '."guid" AND "name"=@' +
1187
1196
  name +
1188
1197
  ' AND "string" LIKE @' +
1189
1198
  value +
@@ -1230,10 +1239,11 @@ export default class SQLite3Driver extends NymphDriver {
1230
1239
  const value = `param${++count.i}`;
1231
1240
  curQuery +=
1232
1241
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1233
- ieTable +
1234
- '."guid" IN (SELECT "guid" FROM ' +
1242
+ 'EXISTS (SELECT "guid" FROM ' +
1235
1243
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1236
- ' WHERE "name"=@' +
1244
+ ' WHERE "guid"=' +
1245
+ ieTable +
1246
+ '."guid" AND "name"=@' +
1237
1247
  name +
1238
1248
  ' AND lower("string") LIKE lower(@' +
1239
1249
  value +
@@ -1276,10 +1286,11 @@ export default class SQLite3Driver extends NymphDriver {
1276
1286
  const value = `param${++count.i}`;
1277
1287
  curQuery +=
1278
1288
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1279
- ieTable +
1280
- '."guid" IN (SELECT "guid" FROM ' +
1289
+ 'EXISTS (SELECT "guid" FROM ' +
1281
1290
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1282
- ' WHERE "name"=@' +
1291
+ ' WHERE "guid"=' +
1292
+ ieTable +
1293
+ '."guid" AND "name"=@' +
1283
1294
  name +
1284
1295
  ' AND "number">@' +
1285
1296
  value +
@@ -1322,10 +1333,11 @@ export default class SQLite3Driver extends NymphDriver {
1322
1333
  const value = `param${++count.i}`;
1323
1334
  curQuery +=
1324
1335
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1325
- ieTable +
1326
- '."guid" IN (SELECT "guid" FROM ' +
1336
+ 'EXISTS (SELECT "guid" FROM ' +
1327
1337
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1328
- ' WHERE "name"=@' +
1338
+ ' WHERE "guid"=' +
1339
+ ieTable +
1340
+ '."guid" AND "name"=@' +
1329
1341
  name +
1330
1342
  ' AND "number">=@' +
1331
1343
  value +
@@ -1368,10 +1380,11 @@ export default class SQLite3Driver extends NymphDriver {
1368
1380
  const value = `param${++count.i}`;
1369
1381
  curQuery +=
1370
1382
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1371
- ieTable +
1372
- '."guid" IN (SELECT "guid" FROM ' +
1383
+ 'EXISTS (SELECT "guid" FROM ' +
1373
1384
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1374
- ' WHERE "name"=@' +
1385
+ ' WHERE "guid"=' +
1386
+ ieTable +
1387
+ '."guid" AND "name"=@' +
1375
1388
  name +
1376
1389
  ' AND "number"<@' +
1377
1390
  value +
@@ -1414,10 +1427,11 @@ export default class SQLite3Driver extends NymphDriver {
1414
1427
  const value = `param${++count.i}`;
1415
1428
  curQuery +=
1416
1429
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1417
- ieTable +
1418
- '."guid" IN (SELECT "guid" FROM ' +
1430
+ 'EXISTS (SELECT "guid" FROM ' +
1419
1431
  SQLite3Driver.escape(this.prefix + 'comparisons_' + etype) +
1420
- ' WHERE "name"=@' +
1432
+ ' WHERE "guid"=' +
1433
+ ieTable +
1434
+ '."guid" AND "name"=@' +
1421
1435
  name +
1422
1436
  ' AND "number"<=@' +
1423
1437
  value +
@@ -1443,10 +1457,11 @@ export default class SQLite3Driver extends NymphDriver {
1443
1457
  const guid = `param${++count.i}`;
1444
1458
  curQuery +=
1445
1459
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1446
- ieTable +
1447
- '."guid" IN (SELECT "guid" FROM ' +
1460
+ 'EXISTS (SELECT "guid" FROM ' +
1448
1461
  SQLite3Driver.escape(this.prefix + 'references_' + etype) +
1449
- ' WHERE "name"=@' +
1462
+ ' WHERE "guid"=' +
1463
+ ieTable +
1464
+ '."guid" AND "name"=@' +
1450
1465
  name +
1451
1466
  ' AND "reference"=@' +
1452
1467
  guid +
@@ -1477,6 +1492,7 @@ export default class SQLite3Driver extends NymphDriver {
1477
1492
  break;
1478
1493
  case 'qref':
1479
1494
  case '!qref':
1495
+ const referenceTableSuffix = makeTableSuffix();
1480
1496
  const [qrefOptions, ...qrefSelectors] = curValue[1] as [
1481
1497
  Options,
1482
1498
  ...FormattedSelector[],
@@ -1492,6 +1508,7 @@ export default class SQLite3Driver extends NymphDriver {
1492
1508
  false,
1493
1509
  makeTableSuffix(),
1494
1510
  etypes,
1511
+ 'r' + referenceTableSuffix + '."reference"',
1495
1512
  );
1496
1513
  if (curQuery) {
1497
1514
  curQuery += typeIsOr ? ' OR ' : ' AND ';
@@ -1499,12 +1516,19 @@ export default class SQLite3Driver extends NymphDriver {
1499
1516
  const qrefName = `param${++count.i}`;
1500
1517
  curQuery +=
1501
1518
  (xor(typeIsNot, clauseNot) ? 'NOT ' : '') +
1502
- ieTable +
1503
- '."guid" IN (SELECT "guid" FROM ' +
1519
+ 'EXISTS (SELECT "guid" FROM ' +
1504
1520
  SQLite3Driver.escape(this.prefix + 'references_' + etype) +
1505
- ' WHERE "name"=@' +
1521
+ ' r' +
1522
+ referenceTableSuffix +
1523
+ ' WHERE r' +
1524
+ referenceTableSuffix +
1525
+ '."guid"=' +
1526
+ ieTable +
1527
+ '."guid" AND r' +
1528
+ referenceTableSuffix +
1529
+ '."name"=@' +
1506
1530
  qrefName +
1507
- ' AND "reference" IN (' +
1531
+ ' AND EXISTS (' +
1508
1532
  qrefQuery.query +
1509
1533
  '))';
1510
1534
  params[qrefName] = curValue[0];
@@ -1556,6 +1580,9 @@ export default class SQLite3Driver extends NymphDriver {
1556
1580
  offset = ` OFFSET ${Math.floor(Number(options.offset))}`;
1557
1581
  }
1558
1582
  const whereClause = queryParts.join(') AND (');
1583
+ const guidClause = guidSelector
1584
+ ? `${ieTable}."guid"=${guidSelector} AND `
1585
+ : '';
1559
1586
  if (options.return === 'count') {
1560
1587
  if (limit || offset) {
1561
1588
  query = `SELECT COUNT("guid") AS "count" FROM (
@@ -1563,14 +1590,14 @@ export default class SQLite3Driver extends NymphDriver {
1563
1590
  FROM ${SQLite3Driver.escape(
1564
1591
  this.prefix + 'entities_' + etype,
1565
1592
  )} ${ieTable}
1566
- WHERE (${whereClause})${limit}${offset}
1593
+ WHERE ${guidClause}(${whereClause})${limit}${offset}
1567
1594
  )`;
1568
1595
  } else {
1569
1596
  query = `SELECT COUNT("guid") AS "count"
1570
1597
  FROM ${SQLite3Driver.escape(
1571
1598
  this.prefix + 'entities_' + etype,
1572
1599
  )} ${ieTable}
1573
- WHERE (${whereClause})`;
1600
+ WHERE ${guidClause}(${whereClause})`;
1574
1601
  }
1575
1602
  } else if (options.return === 'guid') {
1576
1603
  query = `SELECT "guid"
@@ -1578,7 +1605,7 @@ export default class SQLite3Driver extends NymphDriver {
1578
1605
  this.prefix + 'entities_' + etype,
1579
1606
  )} ${ieTable}
1580
1607
  ${sortJoin}
1581
- WHERE (${whereClause})
1608
+ WHERE ${guidClause}(${whereClause})
1582
1609
  ORDER BY ${sortByInner}, "guid"${limit}${offset}`;
1583
1610
  } else {
1584
1611
  query = `SELECT
@@ -1606,7 +1633,7 @@ export default class SQLite3Driver extends NymphDriver {
1606
1633
  this.prefix + 'entities_' + etype,
1607
1634
  )} ${ieTable}
1608
1635
  ${sortJoin}
1609
- WHERE (${whereClause})
1636
+ WHERE ${guidClause}(${whereClause})
1610
1637
  ORDER BY ${sortByInner}${limit}${offset}
1611
1638
  ) ${fTable} USING ("guid")
1612
1639
  ORDER BY ${sortBy}, ${eTable}."guid"`;
@@ -1624,19 +1651,22 @@ export default class SQLite3Driver extends NymphDriver {
1624
1651
  if ('offset' in options) {
1625
1652
  offset = ` OFFSET ${Math.floor(Number(options.offset))}`;
1626
1653
  }
1654
+ const guidClause = guidSelector
1655
+ ? ` WHERE ${ieTable}."guid"=${guidSelector}`
1656
+ : '';
1627
1657
  if (options.return === 'count') {
1628
1658
  if (limit || offset) {
1629
1659
  query = `SELECT COUNT("guid") AS "count" FROM (
1630
1660
  SELECT "guid"
1631
1661
  FROM ${SQLite3Driver.escape(
1632
1662
  this.prefix + 'entities_' + etype,
1633
- )} ${ieTable}${limit}${offset}
1663
+ )} ${ieTable}${guidClause}${limit}${offset}
1634
1664
  )`;
1635
1665
  } else {
1636
1666
  query = `SELECT COUNT("guid") AS "count"
1637
1667
  FROM ${SQLite3Driver.escape(
1638
1668
  this.prefix + 'entities_' + etype,
1639
- )} ${ieTable}`;
1669
+ )} ${ieTable}${guidClause}`;
1640
1670
  }
1641
1671
  } else if (options.return === 'guid') {
1642
1672
  query = `SELECT "guid"
@@ -1644,6 +1674,7 @@ export default class SQLite3Driver extends NymphDriver {
1644
1674
  this.prefix + 'entities_' + etype,
1645
1675
  )} ${ieTable}
1646
1676
  ${sortJoin}
1677
+ ${guidClause}
1647
1678
  ORDER BY ${sortByInner}, "guid"${limit}${offset}`;
1648
1679
  } else {
1649
1680
  if (limit || offset) {
@@ -1672,6 +1703,7 @@ export default class SQLite3Driver extends NymphDriver {
1672
1703
  this.prefix + 'entities_' + etype,
1673
1704
  )} ${ieTable}
1674
1705
  ${sortJoin}
1706
+ ${guidClause}
1675
1707
  ORDER BY ${sortByInner}${limit}${offset}
1676
1708
  ) ${fTable} USING ("guid")
1677
1709
  ORDER BY ${sortBy}, ${eTable}."guid"`;
@@ -1695,6 +1727,7 @@ export default class SQLite3Driver extends NymphDriver {
1695
1727
  this.prefix + 'comparisons_' + etype,
1696
1728
  )} ${cTable} USING ("guid", "name")
1697
1729
  ${sortJoin}
1730
+ ${guidSelector ? `WHERE ${eTable}."guid"=${guidSelector}` : ''}
1698
1731
  ORDER BY ${sortBy}, ${eTable}."guid"`;
1699
1732
  }
1700
1733
  }