0
0
mirror of https://github.com/tursodatabase/libsql.git synced 2025-05-23 04:48:11 +00:00
Commit Graph

7 Commits

Author SHA1 Message Date
15dca45139 Make PRAGMA synchronous configurable for a Namespace ()
* Make PRAGMA synchronous configurable for a Namespace

SQLite allows setting synchronous values to any four levels. This
patch provides an option to set the level for a namespace which will
be used for every connection. It defaults to `NORMAL`.

allowed values: https://www.sqlite.org/pragma.html#pragma_synchronous

e.g. to enable:

    curl -X POST http://sqld-admin-endpoint/v1/namespaces/<namespace>/config -H "Content-Type: application/json" -d '{"durability_mode": "strong"}' -v

* Make `durability_mode` field optional in proto

* Set `default` in the enum

Co-authored-by: ad hoc <postma.marin@protonmail.com>

---------

Co-authored-by: ad hoc <postma.marin@protonmail.com>
2024-07-10 09:34:29 +00:00
62275b5bc7 Parametrize namespace creation for shared schema db ()
* initial parameters for creation of shared schema db

* store shared schema config persistently

* add StmtKind::DDL and block DDL schema changes on databases using shared schema

* Revert "add StmtKind::DDL and block DDL schema changes on databases using shared schema"

This reverts commit 5a5c0d62c91d72151a1c92309d8746116c518ad5.
2024-02-20 14:21:55 +00:00
d2fcc25094 limit row size ()
* update proto

* limit row size
2024-02-20 12:45:24 +00:00
eb7dadd6a0 libsql: attach databases from other namespaces as readonly ()
* libsql: attach databases from other namespaces as readonly

With this proof-of-concept patch, other namespaces hosted
on the same sqld machine can now be attached in readonly mode,
so that users can read from other databases when connected
to a particular one.

* connection: add allow_attach to config

Default is false, which means connections are blocked from attaching
databases. If allowed, colocated databases can be attached in readonly
mode.

Example:
→  attach another as another; select * from another.sqlite_master;
TYPE      NAME     TBL NAME     ROOTPAGE     SQL
table     t3       t3           2            CREATE TABLE t3(id)

* libsql,namespaces: add client-side ATTACH support

* attach: support ATTACH x AS y aliasing

We're going to need it, because the internal database names in sqld
are uuids, and we don't expect users to know or use them.

* attach: fix quoted db names

In libsql-server, raw db names are uuids that need to be quoted,
so that needs to be supported in the ATTACH layer.
As a bonus, "names" that are actually file system paths are refused
to prevent abuse.

* libsql-server: drop stray serde(default) from allow_attach

* libsql-replication: update proto files

* libsql-replication: regenerate protobuf

* tests: move attach to its own test

* libsql-replication: fix proto number after rebase
2024-02-14 10:41:45 +00:00
e4905983a4 update proto 2024-01-18 20:50:02 +01:00
8d10b634d7 server: add jwt_key to database config 2024-01-11 09:42:38 -05:00
b21d23e9db server: switch to protobuf for meta store 2024-01-11 09:40:05 -05:00