173 Commits

Author SHA1 Message Date
pedrocarlo
1db13889e3 Change Value::Text to use a Cow<'static, str> instead of Vec<u8> 2025-11-11 16:11:46 -03:00
PThorpe92
e9f1a451a2 Remove sqlite comment from sqlite3_exec api 2025-10-24 09:36:06 -04:00
PThorpe92
5318af16b5 Update tests in sqlite3 package to adapt to sqlite behavior 2025-10-24 09:36:06 -04:00
PThorpe92
1204494068 Fix sqlite_exec callback handling to discard rows when not provided 2025-10-24 09:36:06 -04:00
PThorpe92
ec30aad015 Replace inefficient is_query_statement fn in sqlite3 api 2025-10-24 09:36:05 -04:00
PThorpe92
fb26b72b1a Add comment from sqlite3.h describing behavior of sqlite3_exec 2025-10-24 09:36:05 -04:00
PThorpe92
921f2e72bd Add integration tests for sqlite3_exec multi-statements 2025-10-24 09:36:05 -04:00
PThorpe92
d0fd258ab5 Handle multiple statements via sqlite3_exec API 2025-10-24 09:36:05 -04:00
PThorpe92
8ed4e7cac1 Add test for null terminated string from sqlite3_column_text 2025-10-23 10:54:19 -04:00
PThorpe92
23cddbcad9 Return null terminated strings from sqlite3_column_text 2025-10-23 10:13:42 -04:00
Samuel Marks
d2cd48d9e4 [sqlite3/tests/compat/mod.rs] Use canonical path to fix temp path on macOS ; rename to resolve binding connascence 2025-09-19 20:40:11 -05:00
andreatp
4c74ab10f4 fix c compat tests and add a minimal CI 2025-09-18 10:13:31 +01:00
pedrocarlo
3c91ae206b move as many dependencies as possible to workspace to avoid multiple versions of the same dependency 2025-09-15 17:19:36 -03:00
Pekka Enberg
55f37398e4 sqlite3: Remove broken sqlite3_checkpoint() test cases
They're both using the same database file which is wrong (tests run in
parallel). But more importantly, they test almost nothing, and we have a
better checkpoint test already.
2025-09-05 10:15:55 +03:00
Pekka Enberg
b0cd184f1e sqlite3: Use in-memory database in test_prepare_misuse()
There's no need for a file.
2025-09-05 10:07:49 +03:00
Pekka Enberg
9a748fb816 Merge 'sqlite3: Implement sqlite3_malloc() and sqlite3_free()' from Pekka Enberg
Closes #2783
2025-08-25 18:15:52 +03:00
Pekka Enberg
9f6468ec82 sqlite3: Implement sqlite3_malloc() and sqlite3_free() 2025-08-25 17:51:07 +03:00
Pekka Enberg
16547cb569 sqlite3: Implement sqlite3_next_stmt() 2025-08-25 14:44:55 +03:00
Pekka Enberg
b162f89b73 sqlite3: Implement sqlite3_db_filename() 2025-08-25 10:20:50 +03:00
Pekka Enberg
c428ff06b2 sqlite3: Implement sqlite3_bind_parameter_index() 2025-08-24 20:10:31 +03:00
Pekka Enberg
4fc7b94a6b Merge 'sqlite3: Implement sqlite3_clear_bindings()' from Pekka Enberg
Closes #2759
2025-08-24 19:57:14 +03:00
Pekka Enberg
9d2f26bb04 sqlite3: Implement sqlite3_clear_bindings() 2025-08-24 19:33:18 +03:00
Pekka Enberg
ea2192c332 sqlite3: Implement sqlite3_get_autocommit() 2025-08-24 14:13:36 +03:00
Nikita Sivukhin
69c39d5d8c replace wal_frames_count with wal_state method which return both frames count and checkpoint sequence 2025-08-21 15:13:23 +04:00
Nikita Sivukhin
05931f70ce add optional upper_bound_inclusive parameter to some checkpoint modes
- will be used in sync-engine protocol
2025-08-21 14:12:11 +04:00
danawan
45376e0b35 delete printf in C test 2025-08-20 12:01:55 +07:00
danawan
72cdd32ba1 fix null testing 2025-08-20 11:59:27 +07:00
danawan
804bb868c7 add column decltype 2025-08-20 11:28:14 +07:00
danawan
f1c2277543 change column type using value type 2025-08-20 09:34:30 +07:00
danawan
85da74979e change get column type from core 2025-08-20 07:55:41 +07:00
danawan
d4172efa74 add column type 2025-08-19 10:27:59 +07:00
Nikita Sivukhin
5838efe7dd rename flag to wal_auto_checkpoint_disabled 2025-08-13 15:26:25 +04:00
PThorpe92
c3b536957f Fix max_frame determination and comments in WAL checkpointing 2025-08-12 08:57:35 -04:00
danawan
85ca5e07ee fix clippy in test 2025-08-10 18:31:08 +07:00
danawan
f450524ddb sqlite3 api add bind_text and bind_blob 2025-08-10 18:20:52 +07:00
danawan
ea7cad1188 fix clippy warnings in tests 2025-08-07 20:49:39 +07:00
danawan
0ab0c2e0c7 fix clippy 2025-08-07 20:36:52 +07:00
danawan
eaa614aa51 add basic bind and column functions 2025-08-07 20:20:23 +07:00
Nikita Sivukhin
2e23230e79 extend raw WAL API with few more methods
- try_wal_watermark_read_page - try to read page from the DB with given WAL watermark value
- wal_changed_pages_after - return set of unique pages changed after watermark WAL position
2025-08-04 16:55:50 +04:00
Nikita Sivukhin
0adb40534c hind dangerous methods behind conn_raw_api feature 2025-08-04 12:40:28 +04:00
Pekka Enberg
4aea9372bd Rename liblimbo_sqlite3 to libturso_sqlite3 2025-08-02 11:24:40 +03:00
PThorpe92
3db72cf111 Just forget Full checkpoint mode for now, comment out compat test 2025-07-30 14:08:33 +03:00
PThorpe92
b214c3dfc8 Add diff chkpt modes to sqlite3 api, finish checkpoint logic and add tests 2025-07-30 14:08:33 +03:00
PThorpe92
7643ef97a6 Pass checkpoint mode from sqlite3 c api argument 2025-07-30 14:08:33 +03:00
Pekka Enberg
e2d4cbbe48 Merge 'core: Enforce shared database object per database file' from Pekka Enberg
We need to ensures that there is a single, shared `Database` object per
a database file. We need because it is not safe to have multiple
independent WAL files open because coordination happens at process-level
POSIX file advisory locks.
Fixes #2267

Reviewed-by: Pere Diaz Bou <pere-altea@homail.com>

Closes #2299
2025-07-28 19:34:35 +03:00
Nikita Sivukhin
ff0410a7d3 fix clippy (2) 2025-07-28 17:36:41 +04:00
Nikita Sivukhin
4695719d2b fix C bindings 2025-07-28 17:20:10 +04:00
Pekka Enberg
b2a5a7077c sqlite3: Fix WAL tests by closing connection
Commit ac33ae90 ("core: Enforce single, shared database object per
database file") changes the semantics of the WAL because unless we close
all the connections, the WAL remains open due to `Database` being kept
open in memory. Fix test failures by properly closing the connection
between different test cases.
2025-07-28 13:04:22 +03:00
PThorpe92
fb611390c0 Update test to use realistic expectations for should_checkpoint in cacheflush 2025-07-26 23:03:51 -04:00
Pekka Enberg
648ad3e74d Merge 'sqlite3: Improve SQLite error handling and fix C-string safety' from Ceferino Patino
This PR addresses two related issues in the SQLite3 C API
implementation:
1. Properly sets error codes on the database object when handling SQL
preparation failures
2. Fixes C string handling in sqlite3_errstr_impl to ensure proper null-
termination
Error codes should be correctly set on the database object, making them
accessible to API consumers. Also fixes and issue where C strings
weren't properly null-terminated in error reporting functions, which
causes the issue in #2197 where messages all get pushed onto a single
line. Its possible that this also fixes a buffer overflow, but I'm not
actually sure what the behavior was.

Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com>

Closes #2212
2025-07-24 14:40:37 +03:00