mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-24 19:44:21 +01:00
Closes #438 **Fixes:** - Return the actual primary key instead of the rowid when the primary key is not a rowid alias sqlite: ``` limbo> create table foo (pk TEXT PRIMARY KEY, value); sqlite> insert into foo values ('one', 'payload'); sqlite> insert into foo values ('two', 'payload'); sqlite> select * from foo; one|payload two|payload ``` limbo now: ``` limbo> create table foo (pk TEXT PRIMARY KEY, value); limbo> insert into foo values ('one', 'payload'); limbo> insert into foo values ('two', 'payload'); limbo> select * from foo; one|payload two|payload ``` limbo before: ``` limbo> select * from foo; 1|payload 2|payload ``` Then, discovered two issues when running the whole TCL test suite against a copy of `testing.db` that does not have rowid aliases in the tables: - Fix trying to convert a Scan into an IndexSearch when the associated Expr refers to a different instance of the same table in a self-join - Fix `scan_loop_body_labels` being pushed to in different parts of the codegen for Scan/Search nodes resulting in incorrect label resolutions **Additions:** - Add a new db `testing/testing_norowidalias.db` that is a carbon copy of `testing/testing.db` except the `id` columns of `users` and `products` are not rowid aliases (i.e. they are `INT PRIMARY KEY` instead of `INTEGER PRIMARY KEY` - Run all TCL tests against both test databases with `do_execsql_test` ``` (testing/testing.db) Running test: coalesce-from-table (testing/testing_norowidalias.db) Running test: coalesce-from-table (testing/testing.db) Running test: coalesce-from-table-column (testing/testing_norowidalias.db) Running test: coalesce-from-table-column (testing/testing.db) Running test: coalesce-from-table-multiple-columns (testing/testing_norowidalias.db) Running test: coalesce-from-table-multiple-columns (testing/testing.db) Running test: glob-fn (testing/testing_norowidalias.db) Running test: glob-fn (testing/testing.db) Running test: where-glob (testing/testing_norowidalias.db) Running test: where-glob (testing/testing.db) Running test: where-glob-question-mark (testing/testing_norowidalias.db) Running test: where-glob-question-mark ``` - Allow running tests against specific db file with `do_execsql_test_on_specific_db $path` - Wondering if I should add a new table with e.g. text primary key and add some db-specific tests on that table...? Closes #449