Jussi Saurio
d52a9a635c
fix: use tempfile as db path in constraint.py
2025-05-29 21:03:10 +03:00
Jussi Saurio
d18ab34193
Fix: dont pollute testing.db in insert tests
2025-05-29 20:51:29 +03:00
Pekka Enberg
1653bfb2b3
Merge 'Fix stress test to ignore unique constraint violation' from krishna sindhur
...
This should ignore unique constraint violation errors during the stress
test.
Closes #1606
2025-05-29 14:59:34 +03:00
krishna sindhur
4b66bcb2a7
fix: stress test will ignore unique constraint violation
2025-05-29 15:11:43 +05:30
Jussi Saurio
3d42f85c98
tests/python/writes: use tempfile instead of permanent file
2025-05-29 11:23:50 +03:00
meteorgan
86249d9c28
add more tests for pragma user_version
2025-05-28 00:47:09 +08:00
Jussi Saurio
b843ad0a58
Add INSERT INTO ... SELECT * FROM generate_series() regression test
2025-05-27 10:54:55 +03:00
pedrocarlo
1410e57112
correct union result_row or yield emission + test
2025-05-26 01:06:26 -03:00
pedrocarlo
ee93316c46
fix num_values detection + emitting correct column for temp_table + tests
2025-05-25 19:15:28 -03:00
pedrocarlo
90e3c8483d
tests with compound select
2025-05-25 19:15:28 -03:00
pedrocarlo
c86e7542ec
simple smoke tests
2025-05-25 19:13:40 -03:00
Jussi Saurio
d893a55c55
UNION
2025-05-25 21:23:04 +03:00
PThorpe92
c5d364064a
Add python tests for xConnect behavior and testing extension
2025-05-24 14:49:59 -04:00
PThorpe92
687edefcdf
Add option to py tests to create temporary db with clone of testing.db
2025-05-24 14:49:59 -04:00
Jussi Saurio
08bda9cc58
UNION ALL
2025-05-24 13:12:41 +03:00
Jussi Saurio
70433e100d
Merge 'btree: fix infinite looping in backwards iteration of btree table' from Jussi Saurio
...
Closes #1562
Existing "fuzz test" (not really fuzz, but kinda) didn't catch this due
to `LIMIT 3` clause
Closes #1563
2025-05-23 21:46:16 +03:00
Jussi Saurio
1a937462b3
Merge 'core/pragma: Add support for update user_version' from Diego Reis
...
It also changes the type from u32 to i32 since
sqlite supports negative values
Closes #1559
2025-05-23 17:00:55 +03:00
Jussi Saurio
517c795f15
Add another test
2025-05-23 14:33:55 +03:00
Jussi Saurio
cbb56a182e
Fix bug: backwards iteration of table btree hangs
2025-05-23 14:23:18 +03:00
meteorgan
01c8a4ca63
simpify values when it's subquery
2025-05-23 17:45:56 +08:00
Diego Reis
bfe4f5acef
pragma/user_version: Add test and update docs
2025-05-22 20:42:08 -03:00
meteorgan
34e05ef974
make values work in subquery
2025-05-23 00:30:04 +08:00
Jussi Saurio
afc94cd3be
Add basic select distinct TCL test
2025-05-22 16:51:03 +03:00
Piotr Rzysko
ad9d044a04
Add CSV extension
2025-05-21 09:22:59 +02:00
PThorpe92
c62d3e464f
Output rust backtrace in python tests
2025-05-20 09:20:59 -04:00
Pekka Enberg
e102cd0be5
Merge 'Add support for DISTINCT aggregate functions' from Jussi Saurio
...
Reviewable commit by commit. CI failures are not related.
Adds support for e.g. `select first_name, sum(distinct age),
count(distinct age), avg(distinct age) from users group by 1`
Implementation details:
- Creates an ephemeral index per distinct aggregate, and jumps over the
accumulation step if a duplicate is found
Closes #1507
2025-05-20 13:58:57 +03:00
pedrocarlo
52533cab40
only pass collations for index in cursor + adhere to order of columns in index
2025-05-19 15:22:55 -03:00
pedrocarlo
819fd0f496
use any error method instead, as limbo and sqlite error message differ slightly
2025-05-19 15:22:55 -03:00
pedrocarlo
5b15d6aa32
Get the table correctly from the connection instead of table_references + test to confirm unique constraint
2025-05-19 15:22:55 -03:00
pedrocarlo
5bd47d7462
post rebase adjustments to accomodate new instructions that were created before the merge conflicts
2025-05-19 15:22:15 -03:00
pedrocarlo
cc86c789d6
Correct Rtrim
2025-05-19 15:22:15 -03:00
pedrocarlo
6d7a73fd60
More tests
2025-05-19 15:22:15 -03:00
pedrocarlo
bf1fe9e0b3
Actually fixed group by and order by collation
2025-05-19 15:22:15 -03:00
pedrocarlo
0df6c87f07
Fixed Group By collation
2025-05-19 15:22:14 -03:00
pedrocarlo
bba9689674
Fixed matching bug for defining collation context to use
2025-05-19 15:22:14 -03:00
pedrocarlo
a818b6924c
Removed repeated binary expression translation. Adjusted the set_collation to capture additional context of whether it was set by a Collate expression or not. Added some tests to prove those modifications were necessary.
2025-05-19 15:22:14 -03:00
pedrocarlo
f8854f180a
Added collation to create table columns
2025-05-19 15:22:14 -03:00
pedrocarlo
d0a63429a6
Naive implementation of collate for queries. Not implemented for column constraints
2025-05-19 15:22:14 -03:00
Jussi Saurio
372850756d
Merge 'Fix updating single value' from Pedro Muniz
...
Closes #1482 . I needed to change the `key_exists_in_index` function
because it zips the values from the records it is comparing, but if one
of the records is empty or not of the same length, the `all` function
could return true incorrectly.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com>
Closes #1514
2025-05-18 22:51:11 +03:00
pedrocarlo
c8b768f1ea
add tests
2025-05-18 12:43:11 -03:00
pedrocarlo
af1f9492ef
fix updating single value
2025-05-17 19:43:24 -03:00
Jussi Saurio
51c75c6014
Support distinct aggregates in GROUP BY
2025-05-17 15:33:55 +03:00
Jussi Saurio
a659c39f97
Add tcl test for non-groupby distinct aggregation
2025-05-17 15:33:55 +03:00
pedrocarlo
758dfff2fe
modified tests as we do not have rollback yet. Also correctly raise a contraint error on primary keys only
2025-05-14 13:30:39 -03:00
pedrocarlo
3aaf4206b7
altered constraint tests to create bad update statements. Tests caught a bug where I was copying the wrong values from the registers
2025-05-14 13:30:39 -03:00
pedrocarlo
c5f004c1d6
added test and adjustments
2025-05-14 11:34:39 -03:00
Jussi Saurio
c02d3f8bcd
Do groupby/orderby sort elimination based on optimizer decision
2025-05-14 09:41:13 +03:00
Jussi Saurio
1e46f1d9de
Feature: join reordering optimizer
2025-05-14 09:40:48 +03:00
Jussi Saurio
a0f973cb34
Merge 'Fix infinite loop when inserting multiple rows' from Jussi Saurio
...
Due to constant instruction reshuffling introduced in #1359 , it is
advisable not to do either of the following:
1. Use raw offsets as jump targets
2. Use `program.resolve_label(my_label, program.offset())` when it is
uncertain what the next instruction will be
Instead, if you want a label to point to "whatever instruction follows
the last one", you should use
`program.preassign_label_to_next_insn(label)`, which will work correctly
even with instruction rerdering
Reviewed-by: Preston Thorpe (@PThorpe92)
Closes #1474
2025-05-14 09:24:47 +03:00
Jussi Saurio
44e282f630
Add multi-row insert regression test
2025-05-13 09:03:01 +03:00