* Go binding: Change default encryption key
Signed-off-by: Piotr Jastrzebski <piotr@chiselstrike.com>
* Go bindings: Drop sqlite dependency
Signed-off-by: Piotr Jastrzebski <piotr@chiselstrike.com>
---------
Signed-off-by: Piotr Jastrzebski <piotr@chiselstrike.com>
* bottomless: added ability to wait for uploaded frames without shutting down
* bottomless: savepoint tracker
* expose bottomless backup savepoint through PrimaryDatabase API
* tests for detached progression updates in bottomless progression tracker
* bottomless: reset savepoint tracker on new generation
* bottomless: expose savepoint tracker on PrimaryDatabase
* Aggregated stats for queries with most elapsed_time
* Add query percentile support to stats (#1112)
* Record query latency percentiles with hdrhistogram
* Expose queries percentiles through stats response
* Simplify QueriesStats transformation to QueriesStatsResponse
* Reset query stats at the beginning of every hour (#1118)
* Add expires_at to control when QueriesStats should be reset
* Add query count and elapsed sum to query stats response
Also group all latency aggregations together under the elapsed key
* Remove option sprawl on QueriesStats fields
By making the whole struct optional where it is used
* Add created_at to stats queries responde object
* Set queries stats to none when stats is created
This will make the API response the same when no queries
have been recorded on the queries stats struct. This can
happen right after:
- the stats struct initialization
- the stats queries object expiration
Example of stats API response when no queries have been
recorded:
{
...
"queries": null
}
* Use if else instead of early return from stats to response
* Add a regression test when UUIDs are used in attach
statements
Also, added a test to check if the UUID is wrapped
in quotes
* bugfix: trim namespace string if it is wrapped in quotes
the client might send namespace wrapped in quotes in case of uuids,
so we will just trim the string.
* make sure pager is valid
We have had a segfault issue recently because the pager passed down
to the c code was null. That happened because libsql-server had
encryption disabled, while libsql had encryption enabled.
To prevent issues like that in the future, the C code should be checking
if the arguments it needs are valid.
Because this function returned a pointer, we now change it so that it
can return an integer, with the pointer as a return argument.
* update generated code
We have generated code in-tree. We should either remove it, or keep it
in sync. For now, just keeping it in sync.
This patch is just the result of running tests, and seeing what changes.
* introduce `Database` enum
stores different kinds of databases int the same type, and multiplex the
connection type the same way.
* move NamespaceName to own module
* move NamespaceStore to own module
- Namespace store is not generic over the Namespace anymore
- create method takes a config
- simplify loading namespaces
* remove NamespaceMaker, make generic NamespaceConfig
* unify Namespace kinds
Namespace is not generic on db type anymore, but used the multiplexed
database types instead.
* fix forking
* add `map` method to MakeConnection
allows mapping the connection type, when wrapping it in database/mod.rs
* move connection time tracking to the proxy module
where it's being used
* remove generics
* use NamespaceName fro share_schema_name
* simplify server kind configuration.
* remove leftover debug
* test snapshots
* allow multi-scope auth
* hors-sujet: fix C compile warning
* update jwt and add hashbrown feature
* replace Auth with RequestContext
* extract RequestContext
* fix auth check for multi-scopes
* pass NamespaceName in StmtKind::Attach
* fallback to global auth if key is not set in ns config
* add allow_attach to namespace creation
* return meta store from namespace store
* test attach
* fmt
* review edits