@surrealdb/lezer 1.0.3 → 1.0.4

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 (58) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-run-tests.log +500 -42
  3. package/dist/index.cjs +67 -65
  4. package/dist/index.js +67 -65
  5. package/package.json +1 -1
  6. package/src/parser.js +17 -17
  7. package/src/parser.terms.js +231 -229
  8. package/src/surrealql.grammar +41 -37
  9. package/src/tokens.js +2 -0
  10. package/test/misc/comments.txt +44 -0
  11. package/test/misc/functions.txt +63 -0
  12. package/test/misc/identifiers.txt +22 -0
  13. package/test/misc/javascript.txt +34 -0
  14. package/test/misc/operators.txt +213 -0
  15. package/test/misc/parameters.txt +23 -0
  16. package/test/misc/subqueries.txt +23 -0
  17. package/test/statements/alter.txt +47 -0
  18. package/test/statements/break-continue.txt +15 -0
  19. package/test/statements/create.txt +103 -0
  20. package/test/statements/define.txt +281 -0
  21. package/test/statements/delete.txt +63 -0
  22. package/test/statements/for.txt +19 -0
  23. package/test/statements/if-else.txt +47 -0
  24. package/test/statements/info.txt +63 -0
  25. package/test/statements/insert.txt +63 -0
  26. package/test/statements/let.txt +39 -0
  27. package/test/statements/live.txt +47 -0
  28. package/test/statements/option.txt +23 -0
  29. package/test/statements/rebuild.txt +15 -0
  30. package/test/statements/relate.txt +63 -0
  31. package/test/statements/remove.txt +95 -0
  32. package/test/statements/return.txt +39 -0
  33. package/test/statements/select.txt +231 -0
  34. package/test/statements/show.txt +31 -0
  35. package/test/statements/sleep.txt +23 -0
  36. package/test/statements/throw.txt +23 -0
  37. package/test/statements/transactions.txt +47 -0
  38. package/test/statements/update.txt +87 -0
  39. package/test/statements/upsert.txt +55 -0
  40. package/test/statements/use.txt +39 -0
  41. package/test/test-surrealql.js +81 -9
  42. package/test/values/arrays.txt +47 -0
  43. package/test/values/casting.txt +95 -0
  44. package/test/values/closures.txt +39 -0
  45. package/test/values/durations.txt +41 -0
  46. package/test/values/format-strings.txt +39 -0
  47. package/test/values/geometries.txt +23 -0
  48. package/test/values/idioms.txt +228 -0
  49. package/test/values/literals.txt +46 -0
  50. package/test/values/numbers.txt +75 -0
  51. package/test/values/objects.txt +64 -0
  52. package/test/values/ranges.txt +31 -0
  53. package/test/values/record-ids.txt +71 -0
  54. package/test/values/regex.txt +31 -0
  55. package/test/values/sets.txt +31 -0
  56. package/test/values/strings.txt +69 -0
  57. package/test/statement.txt +0 -132
  58. package/test/value.txt +0 -259
@@ -1,7 +1,7 @@
1
1
  $ lezer-generator src/surrealql.grammar -o src/parser.js && rollup -c
2
- Precedence specified for unknown token "f'" (src/surrealql.grammar 1635:15)
3
- Precedence specified for unknown token "f\"" (src/surrealql.grammar 1635:20)
2
+ Precedence specified for unknown token "f'" (src/surrealql.grammar 1638:15)
3
+ Precedence specified for unknown token "f\"" (src/surrealql.grammar 1638:20)
4
4
  Wrote src/parser.js and src/parser.terms.js
5
5
  
6
6
  ./src/index.js → ./dist/index.cjs, ./dist/index.js...
7
- created ./dist/index.cjs, ./dist/index.js in 93ms
7
+ created ./dist/index.cjs, ./dist/index.js in 91ms
@@ -1,43 +1,501 @@
1
1
  $ bun run test/test-surrealql.js
2
- File statement.txt:
3
- ✘ Simple Select
4
- Expected Any in SelectStatement, got Fields at 8
5
- SurrealQL(SelectStatement(Keyword,Fields(Any),Keyword,Ident))
6
- ✘ Define Function
7
- Expected ParamList in DefineStatement, got ParamDefinition at 39
8
- SurrealQL(DefineStatement(Keyword,Keyword,FunctionName,ParamDefinition(VariableName,Colon,Type(TypeName)),Block(BraceOpen,ReturnStatement(Keyword,BinaryExpression(BinaryExpression(String,Operator,VariableName),Operator,String)),BraceClose)),Comment,ReturnStatement(Keyword,FunctionCall(FunctionName,ArgumentList(String))))
9
- ✔ Remove Function
10
- ✔ Live Select targets
11
- ✘ Let Substatements
12
- Expected VariableName in LetStatement, got ParamDefinition at 8
13
- SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName),SubQuery(SelectStatement(Keyword,Fields(Any),Keyword,Int))),LetStatement(Keyword,ParamDefinition(VariableName),SelectStatement(Keyword,Fields(Any),Keyword,Int)))
14
- ✔ Block Comments
15
- ✘ Version Clause
16
- Expected Any in SelectStatement, got Fields at 8
17
- SurrealQL(SelectStatement(Keyword,Fields(Any),Keyword,Ident,VersionClause(Keyword,String)))
18
- ✘ Recurse part
19
- Expected BraceClose in Recurse, got RecurseOptions at 16
20
- SurrealQL(Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(RangeOp),RecurseOptions,BraceClose)),Lookup(LookupRight,Ident),Lookup(LookupRight,Ident)),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(RangeOp),RecurseOptions,BraceClose,Lookup(LookupRight,Ident),Lookup(LookupRight,Ident))),Subscript(Ident)),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(RangeOp),RecurseOptions,BraceClose)),Subscript(Destructure(BraceOpen,Ident,Ident,Ident,Colon,Lookup(LookupRight,Ident),Lookup(LookupRight,Ident),Subscript(At),BraceClose))),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(Int),RecurseOptions,BraceClose))),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(Int,RangeOp),RecurseOptions,BraceClose))),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(Int,RangeOp,Int),RecurseOptions,BraceClose))),Path(RecordId(RecordTbIdent,Colon,RecordIdIdent),Subscript(Recurse(BraceOpen,RecurseRange(RangeOp,Int),RecurseOptions,BraceClose))),Path(At,Subscript(Ident)),Path(At,Ident))
21
- File value.txt:
22
- ✔ Numbers
23
- ✔ Strings
24
- ✔ Identifiers
25
- ✔ Binary operators
26
- ✔ Objects
27
- ✔ Points
28
- ✔ Function Calls
29
- ✔ Durations
30
- ✔ JavaScript functions
31
- ✔ Literals
32
- ✔ Keyword names in ident position
33
- ✘ Idiom paths
34
- No parse at 107
35
- ✘ Record ID number(ident)
36
- Expected Int in RecordId, got RecordIdIdent at 8
37
- SurrealQL(RecordId(RecordTbIdent,Colon,RecordIdIdent),RecordId(RecordTbIdent,Colon,RecordIdIdent))
38
- ✔ Casting
39
- ✔ Ranges
40
- ✔ Record ID Call
41
- ✘ Format Strings
42
- Expected FormatString in SurrealQL, got String at 51
43
- SurrealQL(String,String)
2
+
3
+ === STATEMENTS ===
4
+
5
+ statements/alter.txt
6
+ ✔ Alter table basic
7
+ ✔ Alter table drop
8
+ ✔ Alter table schemafull
9
+ ✔ Alter table schemaless
10
+ ✔ Alter table with comment
11
+ ✔ Alter table with permissions none
12
+  6 tests: 6 passed
13
+
14
+ statements/break-continue.txt
15
+ ✔ Break statement
16
+ ✔ Continue statement
17
+  2 tests: 2 passed
18
+
19
+ statements/create.txt
20
+ ✔ Simple create
21
+ ✔ Create ONLY
22
+ ✔ Create with SET
23
+ ✔ Create with CONTENT
24
+ ✔ Create with RETURN fields
25
+ ✔ Create with RETURN AFTER
26
+ ✔ Create with RETURN BEFORE
27
+ ✔ Create with RETURN DIFF
28
+ ✔ Create with TIMEOUT
29
+ ✔ Create with PARALLEL
30
+ ✔ Create with record ID target
31
+ ✔ Create with variable target
32
+ ✔ Create multiple targets
33
+  13 tests: 13 passed
34
+
35
+ statements/define.txt
36
+ ✔ Define namespace
37
+ ✔ Define namespace if not exists
38
+ ✔ Define namespace overwrite
39
+ ✔ Define database
40
+ ✔ Define user
41
+ ✔ Define event
42
+ ✔ Define field
43
+ ✔ Define field with default
44
+ ✔ Define field with assert
45
+ ✔ Define field readonly
46
+ ✔ Define field flexible type
47
+ ✔ Define field with permissions
48
+ ✔ Define field with reference
49
+ ✔ Define field with computed
50
+ ✔ Define index unique
51
+ ✔ Define index search analyzer
52
+ ✔ Define index mtree
53
+ ✔ Define index hnsw
54
+ ✔ Define function
55
+ ✔ Define param
56
+ ✔ Define table
57
+ ✔ Define table schemafull
58
+ ✔ Define table schemaless
59
+ ✔ Define table drop
60
+ ✔ Define table type relation
61
+ ✔ Define table type normal
62
+ ✔ Define table type any
63
+ ✔ Define table as view
64
+ ✔ Define table with changefeed
65
+ ✔ Define table with permissions none
66
+ ✔ Define table with comment
67
+ ✔ Define access on database
68
+ ✔ Define config graphql
69
+ ✔ Define bucket
70
+ ✔ Define scope
71
+  35 tests: 35 passed
72
+
73
+ statements/delete.txt
74
+ ✔ Simple delete
75
+ ✔ Delete ONLY
76
+ ✔ Delete with WHERE
77
+ ✔ Delete with RETURN BEFORE
78
+ ✔ Delete with TIMEOUT
79
+ ✔ Delete with PARALLEL
80
+ ✔ Delete record ID
81
+ ✔ Delete with WHERE and RETURN
82
+  8 tests: 8 passed
83
+
84
+ statements/for.txt
85
+ ✔ For loop with array
86
+ ✔ For loop with variable
87
+  2 tests: 2 passed
88
+
89
+ statements/if-else.txt
90
+ ✔ Modern if
91
+ ✔ Modern if else
92
+ ✔ Modern if else if else
93
+ ✔ Legacy if then end
94
+ ✔ Legacy if then else end
95
+ ✔ Legacy if then else if then else end
96
+  6 tests: 6 passed
97
+
98
+ statements/info.txt
99
+ ✔ Info for root
100
+ ✔ Info for namespace
101
+ ✔ Info for namespace long form
102
+ ✔ Info for database
103
+ ✔ Info for database long form
104
+ ✔ Info for scope
105
+ ✔ Info for table
106
+ ✔ Info for table with structure
107
+  8 tests: 8 passed
108
+
109
+ statements/insert.txt
110
+ ✔ Insert with object
111
+ ✔ Insert with VALUES syntax
112
+ ✔ Insert with IGNORE
113
+ ✔ Insert RELATION
114
+ ✔ Insert bulk array
115
+ ✔ Insert with ON DUPLICATE KEY UPDATE
116
+ ✔ Insert with RETURN
117
+ ✔ Insert with variable
118
+  8 tests: 8 passed
119
+
120
+ statements/let.txt
121
+ ✔ Let with value
122
+ ✔ Let with number
123
+ ✔ Let with subquery in parens
124
+ ✔ Let with subquery statement
125
+ ✔ Let with typed parameter
126
+  5 tests: 5 passed
127
+
128
+ statements/live.txt
129
+ ✔ Live select all
130
+ ✔ Live select from record ID
131
+ ✔ Live select DIFF
132
+ ✔ Live select specific fields
133
+ ✔ Live select with WHERE
134
+ ✔ Kill statement
135
+  6 tests: 6 passed
136
+
137
+ statements/option.txt
138
+ ✔ Option without value
139
+ ✔ Option with true
140
+ ✔ Option with false
141
+  3 tests: 3 passed
142
+
143
+ statements/rebuild.txt
144
+ ✔ Rebuild index
145
+ ✔ Rebuild index if exists
146
+  2 tests: 2 passed
147
+
148
+ statements/relate.txt
149
+ ✔ Simple relate
150
+ ✔ Relate ONLY
151
+ ✔ Relate with SET
152
+ ✔ Relate with CONTENT
153
+ ✔ Relate with RETURN
154
+ ✔ Relate with ident subjects
155
+ ✔ Relate with variable subject
156
+ ✔ Relate with array subject
157
+  8 tests: 8 passed
158
+
159
+ statements/remove.txt
160
+ ✔ Remove namespace
161
+ ✔ Remove database
162
+ ✔ Remove user
163
+ ✔ Remove token
164
+ ✔ Remove event
165
+ ✔ Remove field
166
+ ✔ Remove index
167
+ ✔ Remove analyzer
168
+ ✔ Remove function
169
+ ✔ Remove param
170
+ ✔ Remove scope
171
+ ✔ Remove bucket
172
+  12 tests: 12 passed
173
+
174
+ statements/return.txt
175
+ ✔ Return value
176
+ ✔ Return string
177
+ ✔ Return expression
178
+ ✔ Return variable
179
+ ✔ Return function call
180
+  5 tests: 5 passed
181
+
182
+ statements/select.txt
183
+ ✔ Simple select all
184
+ ✔ Select specific fields
185
+ ✔ Select with alias
186
+ ✔ Select VALUE
187
+ ✔ Select ONLY
188
+ ✔ Select with WHERE
189
+ ✔ Select with ORDER BY
190
+ ✔ Select with ORDER BY DESC
191
+ ✔ Select with GROUP BY
192
+ ✔ Select with GROUP ALL
193
+ ✔ Select with LIMIT
194
+ ✔ Select with LIMIT BY
195
+ ✔ Select with START
196
+ ✔ Select with START AT
197
+ ✔ Select with LIMIT and START
198
+ ✔ Select with FETCH
199
+ ✔ Select with SPLIT
200
+ ✔ Select with OMIT
201
+ ✔ Select with WITH INDEX
202
+ ✔ Select with WITH NOINDEX
203
+ ✔ Select with EXPLAIN
204
+ ✔ Select with EXPLAIN FULL
205
+ ✔ Select with PARALLEL
206
+ ✔ Select with TEMPFILES
207
+ ✔ Select with TIMEOUT
208
+ ✔ Select with VERSION
209
+ ✔ Select with multiple clauses
210
+ ✔ Select from multiple targets
211
+ ✔ Select from subquery
212
+  29 tests: 29 passed
213
+
214
+ statements/show.txt
215
+ ✔ Show changes for table
216
+ ✔ Show changes with since
217
+ ✔ Show changes with limit
218
+ ✔ Show changes with since and limit
219
+  4 tests: 4 passed
220
+
221
+ statements/sleep.txt
222
+ ✔ Sleep with seconds
223
+ ✔ Sleep with milliseconds
224
+ ✔ Sleep with multi-part duration
225
+  3 tests: 3 passed
226
+
227
+ statements/throw.txt
228
+ ✔ Throw string
229
+ ✔ Throw variable
230
+ ✔ Throw expression
231
+  3 tests: 3 passed
232
+
233
+ statements/transactions.txt
234
+ ✔ Begin
235
+ ✔ Begin transaction
236
+ ✔ Cancel
237
+ ✔ Cancel transaction
238
+ ✔ Commit
239
+ ✔ Commit transaction
240
+  6 tests: 6 passed
241
+
242
+ statements/update.txt
243
+ ✔ Simple update
244
+ ✔ Update ONLY
245
+ ✔ Update with SET
246
+ ✔ Update with CONTENT
247
+ ✔ Update with MERGE
248
+ ✔ Update with REPLACE
249
+ ✔ Update with UNSET
250
+ ✔ Update with WHERE
251
+ ✔ Update with RETURN
252
+ ✔ Update with TIMEOUT
253
+ ✔ Update with PARALLEL
254
+  11 tests: 11 passed
255
+
256
+ statements/upsert.txt
257
+ ✔ Simple upsert
258
+ ✔ Upsert ONLY
259
+ ✔ Upsert with SET
260
+ ✔ Upsert with CONTENT
261
+ ✔ Upsert with MERGE
262
+ ✔ Upsert with WHERE
263
+ ✔ Upsert with RETURN
264
+  7 tests: 7 passed
265
+
266
+ statements/use.txt
267
+ ✔ Use namespace short
268
+ ✔ Use namespace long
269
+ ✔ Use database short
270
+ ✔ Use database long
271
+ ✔ Use namespace and database
272
+  5 tests: 5 passed
273
+
274
+ === VALUES ===
275
+
276
+ values/arrays.txt
277
+ ✔ Empty array
278
+ ✔ Single element
279
+ ✔ Multiple elements
280
+ ✔ Trailing comma
281
+ ✔ Nested arrays
282
+ ✔ Mixed types
283
+  6 tests: 6 passed
284
+
285
+ values/casting.txt
286
+ ✔ Simple type cast
287
+ ✔ Union type cast
288
+ ✔ Literal string type cast
289
+ ✔ Literal union type cast
290
+ ✔ Literal string union
291
+ ✔ Array literal type cast
292
+ ✔ Array union literal type cast
293
+ ✔ Object type cast
294
+ ✔ Object union type cast
295
+ ✔ Complex nested type cast
296
+ ✔ Parameterized type cast
297
+ ✔ Complex union object type cast
298
+  12 tests: 12 passed
299
+
300
+ values/closures.txt
301
+ ✔ Empty closure
302
+ ✔ Closure with param
303
+ ✔ Closure with typed param
304
+ ✔ Closure with multiple params
305
+ ✔ Closure with return type
306
+  5 tests: 5 passed
307
+
308
+ values/durations.txt
309
+ ✔ Single duration parts
310
+ ✔ Multi-part duration
311
+ ✔ Complex duration
312
+  3 tests: 3 passed
313
+
314
+ values/format-strings.txt
315
+ ✔ Basic format string
316
+ ✔ Format string with expression
317
+ ✔ Escaped quote in format string
318
+ ✔ Nested format strings
319
+ ✔ Single quoted format string
320
+  5 tests: 5 passed
321
+
322
+ values/geometries.txt
323
+ ✔ Point with decimals
324
+ ✔ Point with integers
325
+ ✔ Point with floats
326
+  3 tests: 3 passed
327
+
328
+ values/idioms.txt
329
+ ✔ Dot notation path
330
+ ✔ Wildcard on record ID
331
+ ✔ Lookup arrow right with any
332
+ ✔ Lookup arrow right
333
+ ✔ Multiple lookups
334
+ ✔ Record ID lookup
335
+ ✔ SELECT with lookup path
336
+ ✔ Method call on number
337
+ ✔ Filter with variable key
338
+ ✔ Filter with ident key
339
+ ✔ Filter with string key
340
+ ✔ Record ID filter
341
+ ✔ Array index access
342
+ ✔ Array variable access
343
+ ✔ Array WHERE filter
344
+ ✔ Array question mark filter
345
+ ✔ Recurse unbounded
346
+ ✔ Recurse with path expression
347
+ ✔ Recurse with destructure
348
+ ✔ Recurse with fixed depth
349
+ ✔ Recurse with min range
350
+ ✔ Recurse with full range
351
+ ✔ Recurse with max range
352
+ ✔ At reference with subscript
353
+ ✔ At reference with ident
354
+  25 tests: 25 passed
355
+
356
+ values/literals.txt
357
+ ✔ Boolean true
358
+ ✔ Boolean false
359
+ ✔ Null
360
+ ✔ None
361
+ ✔ Mixed literals
362
+  5 tests: 5 passed
363
+
364
+ values/numbers.txt
365
+ ✔ Integer
366
+ ✔ Float
367
+ ✔ Float with exponent
368
+ ✔ Float with f suffix
369
+ ✔ Float special values
370
+ ✔ Decimal
371
+ ✔ Negative numbers
372
+ ✔ Positive explicit sign
373
+  8 tests: 8 passed
374
+
375
+ values/objects.txt
376
+ ✔ Simple object
377
+ ✔ Object with string keys
378
+ ✔ Empty object
379
+ ✔ Empty object with space
380
+ ✔ Block vs Object
381
+ ✔ Object followed by value
382
+ ✔ Nested objects
383
+  7 tests: 7 passed
384
+
385
+ values/ranges.txt
386
+ ✔ Exclusive range
387
+ ✔ Right-open range
388
+ ✔ Left-open inclusive range
389
+ ✔ Simple range
390
+  4 tests: 4 passed
391
+
392
+ values/record-ids.txt
393
+ ✔ Simple record ID
394
+ ✔ Record ID with ident value
395
+ ✔ Number followed by ident in record ID
396
+ ✔ Record ID function call
397
+ ✔ Record ID with tick-quoted table
398
+ ✔ Record ID with tick-quoted value
399
+ ✔ Record ID with object value
400
+ ✔ Record ID with array value
401
+ ✔ Record ID with prefixed string value
402
+  9 tests: 9 passed
403
+
404
+ values/regex.txt
405
+ ✔ Basic regex
406
+ ✔ Regex with flags
407
+ ✔ Regex with character class
408
+ ✔ Regex with escape
409
+  4 tests: 4 passed
410
+
411
+ values/sets.txt
412
+ ✔ Set with single trailing comma
413
+ ✔ Set with lone comma
414
+ ✔ Set with two elements
415
+ ✔ Set with three elements
416
+  4 tests: 4 passed
417
+
418
+ values/strings.txt
419
+ ✔ Double quoted string
420
+ ✔ Single quoted string
421
+ ✔ Escaped double quotes
422
+ ✔ Escaped single quotes
423
+ ✔ Mixed quotes
424
+ ✔ Multiline string
425
+ ✔ Empty strings
426
+ ✔ Prefixed strings
427
+  8 tests: 8 passed
428
+
429
+ === MISC ===
430
+
431
+ misc/comments.txt
432
+ ✔ Hash comment
433
+ ✔ Dash comment
434
+ ✔ Slash comment
435
+ ✔ Block comment
436
+ ✔ Block comment standalone
437
+  5 tests: 5 passed
438
+
439
+ misc/functions.txt
440
+ ✔ Namespaced function call
441
+ ✔ Custom function call
442
+ ✔ Rand function
443
+ ✔ Count function
444
+ ✔ Versioned function call
445
+ ✔ No-argument function call
446
+ ✔ Multiple argument function call
447
+ ✔ Variable function call
448
+  8 tests: 8 passed
449
+
450
+ misc/identifiers.txt
451
+ ✔ Raw identifiers
452
+ ✔ Keywords used as identifiers in field position
453
+  2 tests: 2 passed
454
+
455
+ misc/javascript.txt
456
+ ✔ JavaScript function with args
457
+ ✔ Simple JavaScript function
458
+  2 tests: 2 passed
459
+
460
+ misc/operators.txt
461
+ ✔ Addition
462
+ ✔ Subtraction
463
+ ✔ Multiplication
464
+ ✔ Division
465
+ ✔ Power
466
+ ✔ Equality
467
+ ✔ Inequality
468
+ ✔ Less than
469
+ ✔ Greater than
470
+ ✔ Less than or equal
471
+ ✔ Greater than or equal
472
+ ✔ Logical AND
473
+ ✔ Logical OR
474
+ ✔ Null coalescing
475
+ ✔ Elvis operator
476
+ ✔ Unicode containment operators
477
+ ✔ Keyword operator containsnot
478
+ ✔ IS operator
479
+ ✔ IN keyword operator
480
+ ✔ Fuzzy match
481
+ ✔ All match
482
+ ✔ Unicode multiplication
483
+ ✔ Unicode division
484
+ ✔ Matches operator with distance
485
+ ✔ Addition assignment in expression
486
+ ✔ Subtraction assignment in expression
487
+  26 tests: 26 passed
488
+
489
+ misc/parameters.txt
490
+ ✔ Simple variable
491
+ ✔ Variable with underscore
492
+ ✔ Variable with numbers
493
+  3 tests: 3 passed
494
+
495
+ misc/subqueries.txt
496
+ ✔ Subquery with select
497
+ ✔ Subquery with value
498
+ ✔ Subquery with create
499
+  3 tests: 3 passed
500
+
501
+ Total: 354 | Passed: 354 | Failed: 0