Pekka Enberg
93903555aa
Rename limbo_extension crate to limbo_ext
2025-01-16 14:40:52 +02:00
Pekka Enberg
f83b34287e
Move limbo_extension crate to extensions/core
2025-01-16 14:39:12 +02:00
PThorpe92
3412a3d4c2
Rough design for extension api/draft extension
2025-01-14 07:20:48 -05:00
PThorpe92
0a10d893d9
Sketch out runtime extension loading
2025-01-14 07:18:07 -05:00
Jorge López
a16282ea62
core: remove nix as a dependency
2025-01-14 11:06:13 +01:00
Pekka Enberg
d223c72d03
Revert "core: Previous commits didn't actually remove nix as dependency, so do that here"
...
This reverts commit cca3846f95 , we need to
bring it back unfortunately.
2025-01-14 10:25:11 +02:00
Jorge López
cca3846f95
core: Previous commits didn't actually remove nix as dependency, so do that here
2025-01-13 21:15:36 +01:00
Jorge López
d4de451d45
core: enable rustix/io_uring with io_uring feature
2025-01-13 20:21:15 +01:00
Jorge López
e5bd39a8b2
Tiny formatting change, because RustRover keeps redoing it. Having to revert on every commit is not fun.
2025-01-11 15:03:26 +01:00
Jorge López
737533e35f
Prepare Cargo.toml for upcoming rewrite from macos->unix and linux->io_uring. Make io_uring an optional dependency that is only enabled with a new default feature io-uring.
2025-01-07 15:17:24 +01:00
Samyak S Sarnayak
c09a0bcbf3
Nicer parse errors using miette
...
I noticed that the parse errors were a bit hard to read - only the nearest token and the line/col offsets were printed.
I made a first attempt at improving the errors using [miette](https://github.com/zkat/miette ).
- Added derive for `miette::Diagnostic` to both the parser's error type and LimboError.
- Added miette dependency to both sqlite3_parser and core. The `fancy` feature is only enabled for CLI.
Some future improvements that can be made further:
- Add spans to AST nodes so that errors can better point to the correct token. See upstream issue: https://github.com/gwenn/lemon-rs/issues/33
- Construct more errors with offset information. I noticed that most parser errors are constructed with `None` as the offset.
Comparisons.
Before:
```
❯ cargo run --package limbo --bin limbo database.db --output-mode pretty
...
limbo> selet * from a;
[2025-01-05T11:22:55Z ERROR sqlite3Parser] near "Token([115, 101, 108, 101, 116])": syntax error
Parse error: near "selet": syntax error at (1, 6)
```
After:
```
❯ cargo run --package limbo --bin limbo database.db --output-mode pretty
...
limbo> selet * from a;
[2025-01-05T12:25:52Z ERROR sqlite3Parser] near "Token([115, 101, 108, 101, 116])": syntax error
× near "selet": syntax error at (1, 6)
╭────
1 │ selet * from a
· ▲
· ╰── syntax error
╰────
```
2025-01-05 17:56:59 +05:30
psvri
4368e8767b
Fix like function giving wrong results
2024-12-26 22:38:54 +05:30
Pekka Enberg
37e1f35df8
Fix Cargo.toml in macros crate
2024-12-25 11:54:16 +02:00
PThorpe92
c06c4115f1
Adapt OwnedValues in uuid ext to new LimboText
2024-12-21 09:17:53 -05:00
PThorpe92
2fcae80902
Create ext directory for outside funcs, add uuid to ext dir
2024-12-21 09:16:04 -05:00
PThorpe92
fcab0ae299
Add uuid support for v4 and v7
2024-12-21 09:13:46 -05:00
vignesh-j-shetty
a43a1d204c
renamed macro crate
2024-12-21 13:19:04 +05:30
vignesh-j-shetty
1e72fee343
Implemented proc_macro_derive extract description from rust docs and generate get_description function
2024-12-21 12:23:04 +05:30
Pere Diaz Bou
1a663a6ed7
cargo stuff rm
2024-12-13 13:09:13 +01:00
Pekka Enberg
ab07c77036
Upgrade pprof to 0.14
...
Github's dependabot complains that the current version has an unsoudness
issue so let's bump to a newer version:
https://github.com/tursodatabase/limbo/security/dependabot/10
2024-12-11 11:21:09 +02:00
jussisaurio
3cc9d9d79f
vendor sqlite3-parser (lemon-rs)
2024-11-16 20:08:59 +02:00
Pekka Enberg
9473668196
core: Bump jsonb dependency
...
The `fast-float` library has soundness issues, which why `jsonb`
switched to `fast-float2`:
https://github.com/databendlabs/jsonb/issues/68
2024-11-16 18:58:13 +02:00
Pekka Enberg
85b70e381d
core: Make mockall a dev dependency
2024-11-16 13:18:35 +02:00
Pekka Enberg
cd5db55cf2
core: Make JSON support configurable
...
This adds a `json` feature flag, which allows users to disable JSON
support if needed.
2024-11-16 09:49:09 +02:00
baishen
5c00c576a5
Add support for hex scalar function
2024-09-22 08:50:08 -04:00
gandeevanr
23a7d389b1
added unit tests for NewRowid
2024-08-08 19:04:10 -07:00
JeanArhancet
4050a3ebe2
refactor: impl json5 direclty
2024-08-04 12:47:08 +02:00
JeanArhancet
552090cb29
feat: add json support
2024-08-04 10:54:27 +02:00
Pekka Enberg
351242561d
Kill anyhow usage
...
Switch anyhow to explicit `LimboError` type using thiserror crate, which
lets us make error handling more structured.
2024-07-25 17:15:08 +03:00
jussisaurio
9eb68524e7
Upgrade sqlite3-parser #185
2024-07-24 14:05:39 +03:00
gandeevanr
871fae3286
Implement the Date() method
2024-07-23 09:19:08 -07:00
Bennett Clement
0a4e094ef6
Update COMPAT table and remove unused deps
2024-07-22 00:28:31 +08:00
JeanArhancet
a2d4d73ce5
refactor: use getrandom
2024-07-19 21:26:42 +02:00
JeanArhancet
6a5d6847c0
feat: add random function
2024-07-19 17:56:01 +02:00
gandeevanr
9ef212edd3
Added support to disallow multiple processes from opening the same database file in linux and darwin
2024-07-17 11:34:47 -07:00
Pekka Enberg
a0c92f6d80
Switch to workspace versioning
2024-07-17 08:39:36 +03:00
Pekka Enberg
b7599abd2c
Merge pull request #166 from penberg/fix-io-uring
...
Fix io_uring support on older Linux kernels
2024-07-16 14:51:14 +03:00
Pekka Enberg
207ec5ce92
core: Enable direct I/O optimistically
...
...but keep going if the filesystem does not support it. Fixes Limbo on
older Linux kernels that have io_uring but don't support direct I/O on
all filesystems, such as tmpfs or encryptfs.
2024-07-16 14:48:38 +03:00
Bennett Clement
2f738e0c8b
Implement like function
2024-07-16 15:23:52 +08:00
Bennett Clement
30e4a70d07
ignore wasm compilation target
2024-07-13 15:17:18 +08:00
Bennett Clement
26152e07e5
Use kqueue for Darwin IO
2024-07-13 09:44:03 +08:00
Ishan Jain
c171b63ec2
use O_DIRECT for file read operations
2024-07-09 11:41:20 +05:30
Pekka Enberg
b8165f52b1
Merge pull request #90 from crrow/topic/fix-error-handling-for-invalid-file
...
Replace unwrap() in PageIO.get() with proper error handling
2024-07-07 14:19:47 +03:00
Ryan Tan
9c2988e0ed
fix: replace unwrap() with ?
2024-07-07 19:12:48 +08:00
Pekka Enberg
30ec86a81e
Add sorter utility functions and opcodes
...
This adds basic in-memory sorting utility functions, similar to SQLite's
src/vdbesort.c. We need to improve this later with external sorting so
to support large data sets.
This also adds sorting functionality to the VDBE. Note that none of this
is wired to SQL translation yet so it's unused for now.
2024-07-07 13:56:55 +03:00
Pekka Enberg
ed9f3e6d1e
Single-threaded architecture
...
Use Rc instead of Arc and replace the concurrent LRU with
single-threaded SIEVE.
Fixes #23
Fixes #29
2024-03-03 12:44:45 +02:00
Pekka Enberg
59822e2c6f
core: Don't depend on pprof on Windows
2024-03-03 11:49:55 +02:00
Pekka Enberg
dad0b6d627
Disable mimalloc for wasm target
2023-10-24 19:01:22 +03:00
Pekka Enberg
9098744a37
Rename to Limbo
2023-09-30 15:40:35 +03:00
Pekka Enberg
1e1e096a48
Refactor I/O and storage layers
2023-09-16 09:34:17 +03:00