- Nov 17, 2023
-
-
Feodor Alexandrov authored
-
- Nov 06, 2023
-
-
Kurdakov Alexander authored
Transferred replication factor from Properties table to new Tier table Instance and Replicaset belongs to tier via new field tier in _pico_instance and _pico_replicaset New cli option init-cfg with path to configuration file in yaml format. For now contains only info about tiers.
-
- Nov 03, 2023
-
-
Feodor Alexandrov authored
-
-
-
- Nov 01, 2023
-
-
Denis Smirnov authored
BREAKING CHANGE!: - pico.trace() function was removed. Use pico.sql() for tracing; - opentelemetry tables __SBROAD_STAT and __SBROAD_QUERY were renamed into _SQL_STAT and _SQL_QUERY tables. Introduce enrypoints for extended PG protocol: - pg_bind: bind parameters to portal (IR) by descriptor; - pg_close: remove portal from the storage by descriptor; - pg_describe: get the portal metadata and type by descriptor; - pg_execute: execute portal by descriptor; - pg_parse: parse an SQL pattern into IR (reusing LRU), save IR into portal storage and return the descriptor; - pg_portals: get a list of portal descriptors visible to the current user; Co-authored-by:
Kaitmazian Maksim <m.kaitmazian@picodata.io>
-
- Oct 30, 2023
-
-
Dmitry Rodionov authored
-
- Oct 06, 2023
-
-
- Oct 02, 2023
-
-
Dmitry Rodionov authored
The problem lies in nix package which references memfd_create libc symbol which doesnt exist in older libc versions available in centos and astra. The solution is to patch nix to the state of previous version which uses raw syscall.The offending commit that broke nix for us is: https://github.com/nix-rust/nix/commit/cf15c2bb5505231bc3128ef61522336e315e2169#diff-17f9119515eead05b2e65afe0b31095ec95425112c31fe3c529a02f46528b970R56 Another instance of the problem in the wild: https://github.com/lucab/libsystemd-rs/pull/144 The patch uses nix version 26.4 while the latest one is 27 because rustyline didnt update to 27 yet and keeping two patched versions doesnt make sense. So this is our fork with the patch: https://git.picodata.io/picodata/picodata/nix/-/tree/fix-memfd-create-for-older-libc-backport-26-4 And upstream PR: https://github.com/nix-rust/nix/pull/2146 In the long run nix doesnt look like a stable option. There is no libc version compatibility policy at the moment. The way symbols are used makes them required even if we're not using them. The alternative, rustix uses weak symbols or falls back to raw syscalls: https://github.com/bytecodealliance/rustix/blob/b08519f046787b93121214622aac015b68733c8f/src/backend/libc/fs/syscalls.rs#L1631 I believe with this solution we wouldnt have had this problem in the first place. There is an open issue in rustyline with suggestion to use rustix instead of nix: https://github.com/kkawakam/rustyline/issues/733
-
- Sep 21, 2023
-
-
Dmitry Rodionov authored
This patch adds new command `picodata sql`. Arguments are the same as `picodata connect`. The idea would be to eventually replace picodata connect with this version. Simple prerequisites for testing with auth: ```lua pico.create_user("Yoda", "12341234") pico.grant_privilege("Yoda", "execute", "role", "super") ``` Super grant wont be needed in the future when access control will be tuned properly (access to system spaces, context: https://git.picodata.io/picodata/picodata/picodata/-/merge_requests/663). Then run `target/debug/picodata run` in one terminal and `target/debug/picodata sql Yoda@localhost:3301` in another one Features: - Usual lib readline goodies, backward/forward search etc. Provided by [rustyline](https://lib.rs/crates/rustyline) - Simple file based history (~/.picodata_history by default) - Displays result sets in ascii tables. Styling can be customized if needed. Here we're using [comfy-table](https://lib.rs/crates/comfy-table) library - If you type `\e` command your `$EDITOR` will be opened so you can write the query there. Once you close your editor the query will be executed (suggested by @funbringer) There are a lot of things we can add. Completion, highlighting, more special commands. Close #363
-
- Sep 05, 2023
-
-
Georgy Moshkin authored
-
- Aug 01, 2023
-
-
Egor Ivkov authored
-
- Jul 28, 2023
-
-
Georgy Moshkin authored
-
- Jul 21, 2023
-
-
Denis Smirnov authored
The reason of this refactoring is that we need Picodata specific API rather then the API provided by tarantool module. For example, table creation needs access to the clusterwide API for sharded and global spaces.
-
- Jul 14, 2023
-
-
Check that picodata SQL uses `key_def` module from Tarantool to calculate the tuple hash.
-
- Jul 11, 2023
-
-
Don't update blake3 version, otherwise it results in ``` Updating constant_time_eq v0.2.5 -> v0.3.0 error: package `constant_time_eq v0.3.0` cannot be built because it requires rustc 1.66.0 or newer, while the currently active rustc version is 1.65.0 ```
-
- Jul 03, 2023
-
-
- Jun 16, 2023
-
-
Yaroslav Dynnikov authored
- Jun 05, 2023
-
-
This commit introduces new Lua function `pico.help()` along with description of other public functions.
-
- Jun 02, 2023
-
-
Egor Ivkov authored
-
- May 04, 2023
-
-
Denis Smirnov authored
Current commit introduces distributed SQL in picodata (we use 'sbroad' library). Now it is possible to execute cluster-wide SQL with 'pico.sql([[query]], {params})' lua method. Current limitations: 1. DDL is still not implemented in picodata, so space sharding is mocked by '_pico_space' space (we'll remove it later). 2. We still have duplicating symbols of the Tarantool module in sbroad and in picodata rlibs. 3. We need to reuse piocdata's sharding functions and handle the case when different spaces in the query have different sharding functions. Co-authored-by:
Georgy Moshkin <gmoshkin@picodata.io>
-
- Apr 24, 2023
-
-
Егор Ивков authored
-
- Mar 27, 2023
-
-
Егор Ивков authored
-
- Feb 03, 2023
-
-
- Feb 01, 2023
-
-
Егор Ивков authored
-
- Jan 31, 2023
-
-
Yaroslav Dynnikov authored
1. Remove build dependency on cmake crate. It doesn't fulfill all our needs, so we run cmake directly via `std::process::command`. It also makes `build.rs` easier to understand. 2. Arrange paths variable names.
-
- Dec 27, 2022
-
-
Georgy Moshkin authored
-
Georgy Moshkin authored
lazy-static crate is deprecated and is only used in 2 places, where it can be easily replaced with something simpler.
-
It's a small library whose benefits don't overweight the drawbacks. Any additional dependency crate makes the build slower. But itertools in particular is harmful because it hides some expensive computations behind simple tempting to use functions such as `sorted_by`.
-
- Dec 14, 2022
-
-
Yaroslav Dynnikov authored
Also run `cargo update` ``` Updating crates.io index Updating aho-corasick v0.7.18 -> v0.7.20 Updating arc-swap v1.5.0 -> v1.5.1 Updating assert_cmd v2.0.2 -> v2.0.7 Updating autocfg v1.0.1 -> v1.1.0 Updating base64 v0.13.0 -> v0.13.1 Updating block-buffer v0.10.2 -> v0.10.3 Updating bstr v0.2.17 -> v1.0.1 Updating bytes v1.1.0 -> v1.3.0 Updating cc v1.0.72 -> v1.0.77 Removing chrono v0.4.19 Updating clap v3.1.12 -> v3.2.23 Updating clap_derive v3.1.7 -> v3.2.18 Updating clap_lex v0.1.1 -> v0.2.4 Updating cmake v0.1.48 -> v0.1.49 Updating cpufeatures v0.2.1 -> v0.2.5 Updating crossbeam-channel v0.5.1 -> v0.5.6 Updating crossbeam-utils v0.8.5 -> v0.8.14 Updating crypto-common v0.1.3 -> v0.1.6 Updating ctor v0.1.21 -> v0.1.26 Updating digest v0.10.3 -> v0.10.6 Updating either v1.6.1 -> v1.8.0 Adding fastrand v1.8.0 Updating generic-array v0.14.4 -> v0.14.6 Updating getrandom v0.2.3 -> v0.2.8 Updating ghost v0.1.2 -> v0.1.6 Updating hashbrown v0.11.2 -> v0.12.3 Updating indexmap v1.8.1 -> v1.9.2 Updating indoc v1.0.3 -> v1.0.7 Adding instant v0.1.12 Updating inventory v0.2.1 -> v0.2.3 Updating itertools v0.10.3 -> v0.10.5 Updating itoa v1.0.1 -> v1.0.4 Updating libc v0.2.126 -> v0.2.138 Updating log v0.4.14 -> v0.4.17 Updating md-5 v0.10.1 -> v0.10.5 Updating memchr v2.4.1 -> v2.5.0 Removing nix v0.23.1 Removing nix v0.24.1 Adding nix v0.23.2 Adding nix v0.24.3 Removing num-integer v0.1.44 Updating num-traits v0.2.14 -> v0.2.15 Adding num_threads v0.1.6 Updating once_cell v1.9.0 -> v1.16.0 Updating os_str_bytes v6.0.0 -> v6.4.1 Adding paste v1.0.10 Updating ppv-lite86 v0.2.15 -> v0.2.17 Updating predicates v2.1.0 -> v2.1.4 Updating predicates-core v1.0.2 -> v1.0.5 Updating predicates-tree v1.0.4 -> v1.0.7 Updating proc-macro2 v1.0.43 -> v1.0.47 Updating protobuf v2.27.1 -> v2.28.0 Updating protobuf-codegen v2.27.1 -> v2.28.0 Updating rand_core v0.6.3 -> v0.6.4 Updating redox_syscall v0.2.10 -> v0.2.16 Updating redox_users v0.4.0 -> v0.4.3 Updating regex v1.5.4 -> v1.7.0 Updating regex-syntax v0.6.25 -> v0.6.28 Updating rmp v0.8.10 -> v0.8.11 Updating rustversion v1.0.6 -> v1.0.9 Updating ryu v1.0.9 -> v1.0.11 Updating serde v1.0.133 -> v1.0.150 Updating serde_bytes v0.11.5 -> v0.11.7 Updating serde_derive v1.0.133 -> v1.0.150 Updating serde_json v1.0.73 -> v1.0.89 Updating slog-stdlog v4.1.0 -> v4.1.1 Updating slog-term v2.8.0 -> v2.9.0 Updating syn v1.0.99 -> v1.0.105 Updating tempfile v3.2.0 -> v3.3.0 Updating termtree v0.2.3 -> v0.4.0 Updating textwrap v0.15.0 -> v0.16.0 Updating thiserror v1.0.30 -> v1.0.37 Updating thiserror-impl v1.0.30 -> v1.0.37 Updating thread_local v1.1.3 -> v1.1.4 Updating time v0.1.43 -> v0.3.17 Adding time-core v0.1.0 Adding time-macros v0.2.6 Updating typenum v1.14.0 -> v1.16.0 Updating unicode-ident v1.0.3 -> v1.0.5 Removing unindent v0.1.7 Updating uuid v1.0.0 -> v1.2.2 Updating va_list v0.1.3 -> v0.1.4 Updating version_check v0.9.3 -> v0.9.4 Updating wasi v0.10.2+wasi-snapshot-preview1 -> v0.11.0+wasi-snapshot-preview1 ```
-
- Dec 08, 2022
-
-
Georgy Moshkin authored
The code inside process_topology_request_async has become too complex therefore TopologyRequest has lost its utility
-
- Dec 05, 2022
-
-
- Nov 22, 2022
-
- Nov 15, 2022
-
-
Yaroslav Dynnikov authored
-
- Sep 21, 2022
-
-
Georgy Moshkin authored
-
- Sep 13, 2022
-
-
- Aug 16, 2022
-
-
Georgy Moshkin authored
-
- Jul 14, 2022
-
-