mirror of
https://github.com/tursodatabase/libsql.git
synced 2025-05-19 12:16:57 +00:00
* 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