Files
turso/testing
Jussi Saurio d5de088abe Merge 'translate: implement Sequence opcode and fix sort order' from Preston Thorpe
This PR implements the `Sequence` and `SequenceTest` opcodes, although
does not yet add plumbing to emit the latter.
SQLite has two distinct mechanisms that determine the final row order
with aggregates:
Traversal order of GROUP BY, and ORDER BY tiebreaking. When ORDER BY
contains only aggregate expressions and/or constants, SQLite has no
extra tiebreak key, but when ORDER BY mixes aggregate and non-aggregate
terms, SQLite adds an implicit, stable row `sequence` so “ties” respect
the input order.
This PR also fixes an issue with a query like the following:
```sql
SELECT u.first_name, COUNT(*) AS c
FROM users u
JOIN orders o ON o.user_id = u.id
GROUP BY u.first_name
ORDER BY c DESC;
```
Because ORDER BY has only an aggregate (COUNT(*) DESC) and no non-
aggregate terms, SQLite traverses the group key (u.first_name) in DESC
order in this case, so ties on c naturally appear with group keys in
descending order.
Previously tursodb would return the group key sorted in ASC order,
because it was used in all cases as the default

Closes #3287
2025-09-24 08:38:08 +03:00
..
2025-08-02 13:00:18 +03:00
2025-07-15 16:44:11 +03:00
2024-08-03 12:16:34 +03:00
2025-09-20 14:38:48 -04:00
2025-07-24 19:19:48 -05:00
2025-02-09 22:01:33 +04:00
2025-01-21 00:29:23 +05:30
2025-08-01 15:44:56 +03:00
2025-08-05 21:18:52 -07:00
2025-06-20 15:59:03 -03:00
2025-06-11 18:39:06 +02:00
2025-05-08 22:22:55 +08:00
2025-09-17 14:50:15 +07:00
2025-09-01 11:39:43 -04:00
2025-08-28 09:49:55 +02:00
2025-08-11 12:13:47 -04:00
2025-08-01 15:44:56 +03:00
2025-02-04 21:02:51 +05:30
2025-08-01 15:44:56 +03:00
2025-08-11 08:42:08 -03:00
2025-06-07 17:37:36 +09:00
2025-08-21 16:31:12 +03:00
2025-07-18 10:39:02 -05:00
2025-08-13 14:14:03 -05:00
2025-08-15 21:06:30 +02:00
2025-08-01 15:44:56 +03:00
2025-09-13 11:12:44 +02:00

Turso Testing

Testing Extensions

When adding tests for extensions, please follow these guidelines:

  • Tests that verify the internal logic or behavior of a particular extension should go into cli_tests/extensions.py.
  • Tests that verify how extensions interact with the database engine, such as virtual table handling, should be written in TCL (see vtab.test as an example).

To check which extensions are available in TCL, or to add a new one, refer to the tester.tcl file and look at the extension_map.