Pekka Enberg
63630ff956
Merge 'Enable pretty mode in shell by default' from Pekka Enberg
...
Fixes #929
Closes #932
2025-03-22 08:20:09 +02:00
Pekka Enberg
7832ae22df
Enable pretty mode in shell by default
...
Fixes #929
2025-03-22 08:10:26 +02:00
Pekka Enberg
95abf0a9b2
Improve CLI color scheme
...
...let's aim for a green color scheme that is easy on the eyes.
2025-03-21 19:21:25 +02:00
Pedro Muniz
fdddb32ecf
Merge branch 'main' into syntax-high
2025-03-13 23:04:07 -03:00
PThorpe92
89a08b7611
Add vfslist command and setup CLI with new db open api
2025-03-12 21:52:51 -04:00
pedrocarlo
e77953ad7f
color remainder fix
2025-03-06 15:52:20 -03:00
pedrocarlo
942c65224d
changing table colors and adding history hinter
2025-03-06 15:52:20 -03:00
pedrocarlo
e73cad387f
adding table colors
2025-03-06 15:52:20 -03:00
pedrocarlo
74ddf40330
add color to headers, see how to make it configurable
2025-03-06 15:52:20 -03:00
pedrocarlo
b123321692
build script for syntax set dump
2025-03-06 15:52:20 -03:00
pedrocarlo
f631706ea4
simple highlighting for prompt
2025-03-06 15:52:20 -03:00
Pekka Enberg
96175cccf7
cli: Add --experimental-mvcc option to enable MVCC
2025-03-06 10:16:42 +02:00
Pere Diaz Bou
8daf7666d1
Make database Sync + Send
2025-03-05 14:07:48 +01:00
pedrocarlo
04d7d8ab87
autocomplete working
2025-03-04 14:43:07 -03:00
m0hossam
37df657b87
Use fold() and write! macro instead of format!
2025-03-03 17:31:49 +02:00
m0hossam
dbe0a64d50
Display blob literals in .dump
2025-03-03 16:43:21 +02:00
Pekka Enberg
936ae307b7
core: Kill value type
...
We currently have two value types, `Value` and `OwnedValue`. The
original thinking was that `Value` is external type and `OwnedValue` is
internal type. However, this just results in unnecessary transformation
between the types as data crosses the Limbo library boundary.
Let's just follow SQLite here and consolidate on a single value type
(where `sqlite3_value` is just an alias for the internal `Mem` type).
The way this will eventually work is that we can have bunch of
pre-allocated `OwnedValue` objects in `ProgramState` and basically
return a reference to them all the way to the application itself, which
extracts the actual value.
2025-02-26 10:57:45 +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
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
7e173291d5
Merge 'cleanup shell tests and cli' from Clyde K.
...
Refactored CLI, cleaned up duplicate code.
@PThorpe92
Reviewed-by: Preston Thorpe (@PThorpe92)
Closes #941
2025-02-15 11:08:58 +02:00
Glauber Costa
82ceaebe01
Basic dump support
...
This is a basic support for the very useful .dump command.
It doesn't yet implement any of the dump options sqlite has,
and it doesn't add some of the logic for things like indexes,
since we don't have them.
2025-02-14 15:54:46 -05:00
meteorgan
744df6eedf
fix some typo
2025-02-13 23:03:41 +08:00
CK-7vn
5f02521d08
cleanup shell tests and cli
2025-02-13 00:49:12 -05:00
Pekka Enberg
e48c50faf6
Merge 'cli: Fix infinite loop on non-terminated literal' from Ihor Andrianov
...
Bug: Infinite loop when parsing unclosed string literal
To reproduce:
Run query: `SELECT max(';`
Current behavior:
- Query runner enters an infinite loop when encountering an unclosed
string literal and prints error
Fix:
- Throw error and stop query runner loop
Closes #988
Closes #989
2025-02-12 09:14:35 +02:00
Ihor Andrianov
287c04bde0
remove repeated code
2025-02-12 02:34:13 +02:00
Ihor Andrianov
a5fcbed21a
fix infinite loop error
2025-02-12 00:10:56 +02:00
Konstantinos Artopoulos
16ae7cdc35
fix(cli): add newline characters on multiline prompts
2025-02-11 18:20:35 +02:00
wyhaya
351a032cc1
core: Add default column name
2025-02-11 07:03:51 +00:00
Pekka Enberg
cd27068807
Merge 'cli: Add .exit command' from wyhaya
...
This PR add the `.exit ?<CODE>` command, which will allow limbo to exit
with the specified code (similar to SQLite3 and DuckDB).
```bash
echo '.exit' | cargo run -p limbo ; echo $?
# ...
# 0
echo '.exit 1' | cargo run -p limbo ; echo $?
# ...
# 1
```
Reviewed-by: Preston Thorpe (@PThorpe92)
Closes #978
2025-02-11 07:59:59 +02:00
wyhaya
2482c03111
cli: Add .exit command
2025-02-11 03:11:42 +00:00
Konstantinos Artopoulos
839e1ce3e8
fix(cli): handle remaining input on EOF
2025-02-11 00:02:20 +02:00
Tiago Ribeiro
c071e47b03
Update cli to use the new retrieval methods to access Record values.
2025-02-10 00:31:28 -07:00
wyhaya
e9046fef78
cli: Improve pretty mode table
2025-02-09 00:01:07 +08:00
Pekka Enberg
3deac98d40
cli: Make pretty mode pretty like DuckDB
...
DuckDB is pretty, I want to be pretty!
```
limbo> CREATE TABLE t(x); INSERT INTO t VALUES (1), (2), (3);
limbo> .mode pretty
limbo> SELECT * FROM t;
┌───┐
│ x │
├───┤
│ 1 │
├───┤
│ 2 │
├───┤
│ 3 │
└───┘
```
2025-02-08 11:39:21 +02:00
wyhaya
13062a1479
cli: Add column names in Pretty mode
2025-02-08 15:11:09 +08: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
7967cc5efc
core: Kill Rows wrapper struct
...
It's just an useless wrapper, kill it.
2025-01-26 16:27:19 +02:00
Jorge López
07970468bd
syntactic changes: remove unneeded parentheses
2025-01-18 18:45:05 +01:00
Jorge López
86a4714711
syntactic changes: remove unneeded paths when the type is already imported
2025-01-18 18:29:12 +01:00
CK-7vn
57274fa40b
Correct CLI comment handling to mimic sqlite behavior
2025-01-17 13:59:34 -05:00
Diego Reis
285eeccb84
Fix cli comments parsing
2025-01-16 20:20:36 -03:00
Pekka Enberg
f711d2b7ed
cli: Improve .schema command output on errors
...
Improve `.schema` output on errors by marking them as comments. This
allows you to pipe any `.schema` output to another shell.
2025-01-16 14:25:48 +02:00
psvri
9cc9577c91
Run all statements from sql argument in cli
2025-01-15 18:19:39 +05:30
PThorpe92
23d9d09b70
Add load_extension function, resolve shared lib extensions
2025-01-14 12:01:07 -05:00
PThorpe92
9c208dc866
Add tests for first extension
2025-01-14 07:27:35 -05: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
aca38031a4
cli: pass Io without option to get_io(), since even when running in-memory we get a default Io from Clap. Also remove last pesky Io::clone()
2025-01-11 22:44:56 +01:00
Jorge López
486389d6ff
cli: remove calls to Io::clone() as it is now Copy
2025-01-11 21:54:41 +01:00
Jorge López
b630414722
cli: implement Copy for DbLocation and Io, as suggested by [Preston]( https://github.com/PThorpe92 )
2025-01-11 21:50:09 +01:00