pedrocarlo
303a687e65
rebase to main
2025-02-06 23:35:58 -03:00
김선우
cc09cb7d51
Add bindInt
2025-02-07 11:35:54 +09:00
김선우
21d6f33c6b
Implement bindXXX functions on rust and java side
2025-02-07 11:25:23 +09:00
김선우
d574e2c277
Add comments on errors.rs
2025-02-07 11:24:43 +09:00
김선우
88c2a15b6f
Add requireNotNull method in CommonUtils
2025-02-07 09:51:37 +09:00
김선우
f6919f028e
Add columnNames to LimboResultSet
2025-02-07 09:25:22 +09:00
Jussi Saurio
93c3689070
make tests better and fix more edge cases
2025-02-06 23:41:31 +02:00
Krishna Vishal
7cb7eb4e65
Merge branch 'main' into delete-btree-row
2025-02-07 01:15:21 +05:30
krishvishal
349fd51559
Get db_header from Pager instead of BTreeCursor.
...
Fix page_cache in btree tests to use `parking_lot::RwLock`
2025-02-07 00:11:06 +05:30
krishvishal
ea174e32f1
chore: cargo fmt
2025-02-06 23:39:12 +05:30
krishvishal
c80007d8a0
Add local constants for free_page offsets for clarity.
2025-02-06 23:39:12 +05:30
krishvishal
8a2c5808c2
Add TCL tests for delete
2025-02-06 23:39:12 +05:30
krishvishal
f836ad7561
Remove write to PAGE_HEADER_OFFSET_CELL_CONTENT_AREA in insert_into_cell. This causes corruption when you reuse cell spaces from free_list.
2025-02-06 23:39:12 +05:30
krishvishal
7d67895306
1. Added frangmentation handling to find_free_cell
...
2. Added asserts and corruption error to `allocate_cell_space`
2025-02-06 23:39:09 +05:30
krishvishal
8263bd0482
Update page offsets in drop_cell and update cell pointer array after dropping a cell.
2025-02-06 23:36:27 +05:30
krishvishal
73dae3003d
Implement block coalescing in free_cell_range to reduce fragmentation and also added fragmentation tracking.
2025-02-06 23:36:26 +05:30
krishvishal
95da2244bb
Implemented delete(). Now we are able to delete a row. It handles both interior page and leaf page cell differently.
2025-02-06 23:34:27 +05:30
krishvishal
f62ec61694
Added a unit-test to test the case where clear_overflow_pages function is called on cell with no overflow pages
2025-02-06 23:34:26 +05:30
krishvishal
8c763780a8
Added free list and free_page functionality in Pager module. Now we can add dropped pages to free list, so pages can be reused in allocate_page.
2025-02-06 23:34:12 +05:30
krishvishal
83b214a4e3
Added clear_over_pages it deletes all the overflow pages related to a cell.
2025-02-06 23:27:07 +05:30
Jussi Saurio
bf045da9dc
Fix python extension test for generate_series()
2025-02-06 19:11:04 +02:00
Jussi Saurio
d5f58f5fea
Add quickcheck tests for generate_series() and refine implementation
2025-02-06 18:36:21 +02:00
Jussi Saurio
098da0794f
Merge 'Complete initial pass on virtual tables' from Preston Thorpe
...
EDIT:
Ok this should finally be all set. There were some massive changes that
had taken place since the original PR 🫠 🫠
merge conflicts were serious
As soon as this is merged, I will finish the rest of what is needed for
`CREATE VIRTUAL TABLE some_table USING some_extension('some argument or
sql');`
I added tests for the series extension.
This PR is already big and covers a LOT of surface area, so we should
ideally try to get this in first, and I'll go back and complete the rest
of the functionality 👍
Closes #858
2025-02-06 16:29:14 +02:00
PThorpe92
ae88d51e6f
Remove TableReferenceType enum to clean up planner
2025-02-06 09:15:39 -05:00
PThorpe92
cd83ac6146
Remove error from vcursor trait in extensions
2025-02-06 09:15:39 -05:00
PThorpe92
a8ae957162
Add tests for series extension, finish initial vtable impl
2025-02-06 09:15:39 -05:00
PThorpe92
ad30ccdc0e
Add docs in extension README for vtable modules
2025-02-06 09:15:39 -05:00
PThorpe92
d4c06545e1
Refactor vtable impl and remove Rc Refcell from module
2025-02-06 09:15:39 -05:00
PThorpe92
661c74e338
Apply new planner structure to virtual table impl
2025-02-06 09:15:28 -05:00
Jussi Saurio
f5f77c0bd1
Initial virtual table implementation
2025-02-06 07:51:50 -05:00
Pekka Enberg
da4b72eeef
Merge 'Clean up functions' from Pekka Enberg
...
Move functions to a new `core/functions` module.
Closes #908
2025-02-06 14:03:42 +02:00
Pekka Enberg
982572078c
Merge 'bindings/java: Rename package to tursodatabase' from Kim Seon Woo
...
Closes #907
2025-02-06 13:57:56 +02:00
김선우
55eb55a634
Rename package to tursodatabase
2025-02-06 20:54:13 +09:00
Pekka Enberg
f4a574e6bc
core: Move strftime to functions module
2025-02-06 13:53:36 +02:00
Pekka Enberg
ee8eabf167
core: Move datetime to functions module
2025-02-06 13:52:25 +02:00
Pekka Enberg
7513f859df
core: Move printf to functions module
2025-02-06 13:50:05 +02:00
Pekka Enberg
238fb9c977
Merge 'Sqlean Crypto extension' from Diego Reis
...
Introduces a new `crypto` extension, compatible with the Sqlean [crypto
extension](https://github.com/nalgeon/sqlean/blob/main/docs/crypto.md ).
Closes #903
2025-02-06 13:46:01 +02:00
Pekka Enberg
f3902ef9b6
core: Rename OwnedRecord to Record
...
We only have one record type so let's call it `Record`.
2025-02-06 13:40:34 +02:00
Pekka Enberg
8cdd3fc57e
Merge 'core: Parse UTF-8 strings lazily' from Pekka Enberg
...
Closes #905
2025-02-06 13:39:12 +02:00
Pekka Enberg
f9828e0e6f
core: Parse UTF-8 strings lazily
2025-02-06 13:27:52 +02:00
Pekka Enberg
c9dcef84a2
Merge 'core: Move result row to ProgramState' from Pekka Enberg
...
Move result row to `ProgramState` to mimic what SQLite does where `Vdbe`
struct has a `pResultRow` member. This makes it easier to deal with
result lifetime, but more importantly, eventually lazily parse values at
the edges of the API.
Closes #904
2025-02-06 12:00:27 +02:00
Pekka Enberg
c210821100
core: Move result row to ProgramState
...
Move result row to `ProgramState` to mimic what SQLite does where `Vdbe`
struct has a `pResultRow` member. This makes it easier to deal with result
lifetime, but more importantly, eventually lazily parse values at the edges of
the API.
2025-02-06 11:52:26 +02:00
Pekka Enberg
0012e9d556
cargo fmt
2025-02-06 10:44:37 +02:00
Pekka Enberg
f769d1aa2a
s/LimboText/Text/g
2025-02-06 10:44:02 +02:00
Pekka Enberg
2546413d40
Merge 'Move vector into core from extensions' from Krishna Vishal
...
To make implementation of DiskANN in limbo easier, I'm moving `vector`
from `extensions` to core.
Now `vector` related function are exposed via `Function` op code.
I've defined a new enum called `VectorFunc` to group the vector related
functions.
The `vector.test` TCL test runs fine.
```sql
limbo> SELECT vector_extract(vector('[]'));
[]
limbo> SELECT vector_extract(vector(' [ 1 , 2 , 3 ] '));
[1,2,3]
limbo> SELECT vector_extract(vector('[-1000000000000000000]'));
[-1000000000000000000]
limbo> SELECT vector_distance_cos(vector('[1,2,3]'), vector('[3,2,1]'));
0.2857142686843872
```
Closes #902
2025-02-06 07:41:28 +02:00
Pekka Enberg
ba593a02b2
Merge 'Random Text related cleanups' from Pekka Enberg
...
Just some random cleanups I did while attempting to optimizing things
and failing.
Closes #901
2025-02-06 07:41:10 +02:00
Diego Reis
05057a04ac
completes crypto extension
...
It aims to be compatible with https://github.com/nalgeon/sqlean/blob/main/docs/crypto.md
2025-02-06 01:42:47 -03:00
Diego Reis
846d5ed414
add md5 and encode to extension
2025-02-06 00:04:36 -03:00
Diego Reis
dd58be3b60
Add basic structure for crypto extension
2025-02-05 23:09:26 -03:00
krishvishal
32080aba5d
Make vector function accessible through Function op code.
2025-02-06 07:01:50 +05:30