Commit Graph

5233 Commits

Author SHA1 Message Date
Pekka Enberg
28a85edbc8 Merge 'Fix incorrect CAST text->numeric if valid prefix is 1 char long' from Jussi Saurio
Closes #1031
2025-02-18 17:44:01 +02:00
Pekka Enberg
48e705fb53 Merge 'Fix invalid text columns generated by dump' from Kingsley Yung
Fix #1012
In the INSERT statement generated by dump function, if the type affinity
of the value is TEXT, replace each single quotation mark with two single
quotation marks, and wrap it with single quotation marks.
Example:
```plaintext
limbo> CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100));
INSERT INTO users (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Char''lie');
SELECT * FROM users;

1|Alice
2|Bob
3|Char'lie
limbo> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR (100));
INSERT INTO users VALUES(1,'Alice');
INSERT INTO users VALUES(2,'Bob');
INSERT INTO users VALUES(3,'Char''lie');
COMMIT;
```

Closes #1034
2025-02-18 17:43:25 +02:00
Kingsley Yung
67ff5c4ae1 Fix invalid text columns generated by dump
In the INSERT statement generated by dump function, if the type affinity
of the value is TEXT, replace each single quotation mark with two single
quotation marks, and wrap it with single quotation marks.
2025-02-18 23:26:56 +08:00
Jussi Saurio
baf2aec3e9 Fix incorrect CAST text->numeric if valid prefix is 1 char long 2025-02-18 15:07:36 +02:00
Jussi Saurio
89e48a16db Add affinity() function to Column 2025-02-18 10:56:30 +02:00
Pekka Enberg
899ba8367e Merge 'Fix remainder panic on zero right-hand-side' from Jussi Saurio
Closes #1025
2025-02-18 10:08:23 +02:00
Pekka Enberg
76ca4c7b01 Merge 'Fix not evaling constant conditions when no tables in query' from Jussi Saurio
This PR is extracted from the sqlite fuzzing exploration effort in
https://github.com/tursodatabase/limbo/pull/1021
---
We were not evaluating constant conditions (e.g '1 IS NULL') when there
were no tables referenced in the query, because our WHERE term
evaluation was based on "during which loop" to evaluate them. However,
when there are no tables, there are no loops, so they were never
evaluated.

Closes #1023
2025-02-18 10:07:04 +02:00
Pekka Enberg
b25429d5a5 Merge 'Fix cli test for new output name' from Preston Thorpe
fixes CI failing for CLI tests after `raw` was renamed to output

Closes #1028
2025-02-18 08:56:01 +02:00
Pekka Enberg
e82aea6b8f Merge 'removing dangling limbo_output.txt file and setting rule in gitignore' from Pedro Muniz
When testing with `test-shell` the test may error and the error file
will be tracked in git. Added gitignore rule to always not track
`limbo_output.txt`

Closes #1027
2025-02-18 08:55:55 +02:00
PThorpe92
7b05f53335 Add more tests for vtab impl 2025-02-17 23:22:02 -05:00
PThorpe92
c4f42549f4 Fix selecting from empty table error in kv extension 2025-02-17 22:53:51 -05:00
PThorpe92
9b742e1a76 Remove clone in vtab from_args 2025-02-17 22:37:17 -05:00
PThorpe92
6a1f9ed773 Fix cli test for new output name 2025-02-17 22:33:55 -05:00
pedrocarlo
95246dec80 removing dangling limbo_output.txt file and setting rule in gitignore to prevent this issue in the future 2025-02-18 00:30:16 -03:00
Henrik Ingo
ff38d93d3e fix yml 2025-02-18 04:54:59 +02:00
PThorpe92
e63436dc47 Fix sqlite_schema and remove explicit vtables 2025-02-17 20:44:45 -05:00
PThorpe92
4d2044b010 Fix ownership semantics in extention value conversions 2025-02-17 20:44:45 -05:00
PThorpe92
38e54ca85e Update schema dot command to show virtual tables 2025-02-17 20:44:45 -05:00
PThorpe92
0547d397b1 Update extension api for vtable interface 2025-02-17 20:44:45 -05:00
PThorpe92
813e7e57d8 Add simple demo vtable extension kvstore 2025-02-17 20:44:44 -05:00
PThorpe92
8b5772fe1c Implement VUpdate (insert/delete for virtual tables 2025-02-17 20:44:44 -05:00
PThorpe92
f2e3a61204 Change error message in extension tests to match new behavior 2025-02-17 20:44:44 -05:00
PThorpe92
2fd2544f3e Update COMPAT.md 2025-02-17 20:44:44 -05:00
PThorpe92
9c8083231c Implement create virtual table and VUpdate opcode 2025-02-17 20:44:44 -05:00
PThorpe92
d775b3ea5a Improve extension API with results, fix paths in proc macros 2025-02-17 20:44:39 -05:00
Henrik Ingo
24839e6f01 Add Nyrkiö to the new clickbench task 2025-02-18 02:36:39 +02:00
Henrik Ingo
cf971cb6c2 Maybe better to turn on never-fail immediately
This allows PRs to succeed regardless of who submitted them. Feels
friendlier that way.
2025-02-18 02:36:33 +02:00
Henrik Ingo
b356a84d69 Enable Nyrkiö also on PRs. (Non-blocking mode.)
- Rename push_only.yml workflow to rust_perf.yml
- Move the 'bench' task from rust.yml to rust_perf.yml
- More Nyrkio configuration options exposed:
  Team support (everyone in gh/tursodatabase can access Nyrkiö)
  Public results
  Alerting options: Comment on PR, if change detected, don't fail task
2025-02-18 02:35:20 +02:00
Henrik Ingo
a79e75094f Rename the push_only.yml workflow in anticipation of adding PRs 2025-02-18 02:32:14 +02:00
Henrik Ingo
ba479c892f fix yml 2025-02-18 02:24:23 +02:00
Henrik Ingo
ca24400985 Without org 2025-02-18 02:21:45 +02:00
Henrik Ingo
83a7e2ec72 Add a sample cargo outputfile to use for faster testing 2025-02-18 02:21:41 +02:00
Henrik Ingo
4ae4706d34 Workflow: Use nyrkio-org 2025-02-18 02:19:48 +02:00
Henrik Ingo
3ff548b8c5 Add explicitly all alerting options to workflow yml
Set pvalue and threshold from workflow
2025-02-18 02:10:41 +02:00
Henrik Ingo
3ab99760d2 Enable Nyrkiö also for PR 2025-02-18 02:10:40 +02:00
Henrik Ingo
cdc7f0f3e9 mv push_only.yml to another name in anticipation of adding PRs 2025-02-18 02:10:40 +02:00
Henrik Ingo
ebac4dd875 test non-org path 2025-02-18 02:10:40 +02:00
Henrik Ingo
6c674cf452 Use staging.nyrkio.com 2025-02-18 02:10:20 +02:00
Henrik Ingo
519d4c48bb Use GH action from henrikingo 2025-02-18 02:10:20 +02:00
Pekka Enberg
caa83b347e cli: Rename "raw" output mode to "list"
Change the name of the output mode to match SQLite.
2025-02-17 21:26:15 +02:00
Pekka Enberg
97601658a9 scripts: Add "publish-crates.sh" helper 2025-02-17 21:19:08 +02:00
Jussi Saurio
8e5499e5ed Fix not evaling constant conditions when no tables in query
We were not evaluating constant conditions (e.g '1 IS NULL')
when there were no tables referenced in the query, because
our WHERE term evaluation was based on "during which loop"
to evaluate them. However, when there are no tables, there are
no loops, so they were never evaluated.
2025-02-17 13:10:27 +02:00
Jussi Saurio
ec3ae2ace6 Fix remainder panic on zero right-hand-side 2025-02-17 13:09:33 +02:00
Jussi Saurio
9a2e8a6411 Merge 'Add some missing supported features in WHERE clause' from Jussi Saurio
This PR is sourced from the fuzzing exploration PR in
https://github.com/tursodatabase/limbo/pull/1021
**Adds missing support:**
Support all the same literals in WHERE clause position as in SELECT
position
Support CAST in WHERE clause position
Support FunctionCall in WHERE clause position
Support Column in WHERE clause position
Support Rowid in WHERE clause position
Support CASE in WHERE clause position
Support LIKE in SELECT position
Support Unary expressions in WHERE clause position
Support rest of the Binary expressions in WHERE clause position
Support TEXT in remainder operations
**Fix:**
Remove incorrect constant folding optimization for NULL
**Testing utils:**
Enhance sqlite fuzzer to mostly be able to work with the same set of
possible expressions in both SELECT and WHERE clause position

Closes #1024
2025-02-17 13:07:09 +02:00
Pere Diaz Bou
e25272adc0 fix free_cell_space extend content area 2025-02-17 11:50:15 +01:00
Jussi Saurio
55ff1d2061 remove comment 2025-02-17 10:59:04 +02:00
Jussi Saurio
7eaa3f4da0 Extract variable 2025-02-17 10:58:38 +02:00
Jussi Saurio
6940ca84bd Add more column <op> column binary op possibilities to fuzzer 2025-02-17 10:57:58 +02:00
Jussi Saurio
bece5b601a Add comment about translate_like_base 2025-02-17 10:55:26 +02:00
Pere Diaz Bou
ddbfada8bd fix wrong usage of insert in fuzz tests 2025-02-17 08:47:55 +01:00