Skytable-py

Latest version: v0.1.3

Safety actively analyzes 681874 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.7.3

Additions

- Added `dev/prod` mode for making sure that the recommended production settings are used
- Added support for system native endian storage (backward compatible)
- Added `range` to `lget` to get subarrays

Fixes

- Fixed infinite wait (loop) when sample space for key generation is not large enough
- Fixed infinite save-on-termination loop. Now loop uses a threshold and on 4 subsequent `SIGINT` signals,
it will quit forcefully
- Removed `upgrade` subcommand from `skyd` which was removed in 0.7, but was erroneously accepted in the CLI
parameters
- Restored ability to use `--restore <backupdir>` to restore data from previous snapshots which was silently
ignored

0.7.2

Additions

- `skyd`:
- Pipelined queries are now supported:
- Saves bandwidth
- Reduces latency
- The new non-null typed array type was added
- The `whereami` action was added which lets one find out which entity the current connection
is connected to
- `skysh`:
- now shows the current entity in the prompt
- handles special character strings more reliably
- now supports splitting a command across multiple lines
- now supports multi-line pastes
- now supports comments (beginning with ``)

0.7.1

Additions

- Added the list data type
- Added actions for lists:
- `LSET <list> <values> ...`
- `LGET`
- `LGET <list>`
- `LGET <list> LEN`
- `LGET <list> VALUEAT <idx>`
- `LGET <list> LIMIT <limit>`
- `LGET <list> FIRST`
- `LGET <list> LAST`
- `LMOD`
- `LMOD <list> push <value>`
- `LMOD <list> insert <index> <value>`
- `LMOD <list> pop <optional index>`
- `LMOD <list> remove <index>`
- `LMOD <list> clear`
- Added creation of lists:
- `CREATE TABLE <entity> keymap(type,list<type>)`
- Added compatibility of `DEL`, `EXISTS` and `LSKEYS` with lists
- Added support for configuration via environment variables

Improvements

- Reduced memory usage in `sky-bench`
- Reduced allocations in Skyhash (`skyd`) protocol implementation
- Misc. fixes in internal structures (`skyd`)
- Improvements in printing of binary strings in `skysh`

Fixes

- Fixed unexpected removal of single and double quotes from input strings in `skysh`
- Fixed incorrect removal of quotes from input strings in `skysh`

0.7.0

Additions

- **Multiple keyspaces**:
- Keyspaces hold multiple tables and determine the replication strategy
- Keyspaces can be created with:
sql
CREATE KEYSPACE <name>

- The `system` keyspace is reserved for the system while the `default` keyspace is
the one available by default. The `system` or `default` keyspace cannot be removed
- Keyspaces can be deleted with:
sql
DROP KEYSPACE <name>

- If a keyspace still has tables, it cannot be dropped by using `DROP KEYSPACE <name>`, instead
one needs to use `DROP KEYSPACE <name> force` to force drop the keyspace
- **Multiple tables**:
- Tables hold the actual data. When you connect to the server, you are connected to the `default`
table in the `default` keyspace. This table is non-removable
- Tables can be created with:
sql
CREATE TABLE <entity> <model>(modelargs) <properties>

- Tables can be dropped with:
sql
DROP TABLE <entity>

- **Entity groups**: While using DDL queries and inspection queries, we can use the _Fully Qualified Entity_ (FQE) syntax instead of the table name. For example, to `inspect` the `cyan` table in keyspace `supercyan`, one can simply run:
sql
INSPECT TABLE supercyan:cyan

The syntax is:
sql
keyspace:table

**Note**: Both keyspaces and tables are entities. The names of entities must:
- Begin with an underscore (\_) or an ASCII alphabet
- Not begin with a number (0-9)
- Must have lesser than 64 characters
- **Keymap data model**:
- To create a keymap table, run:
sql
CREATE TABLE <entity> keymap(<type>,<type>)

- The following types were introduced:
- `str`: A valid unicode string
- `binstr`: A binary string
- **Volatile table property**:

- To create a volatile table, irrespective of the data model, run:
sql
CREATE TABLE <entity> <model>(modelargs) volatile

- Volatile tables always exist, but the data in them does not persist between restarts. This makes them extremely useful for caches

- **Inspection**:
- Keyspaces can be inspected with:
sql
INSPECT KEYSPACE <name>

This will list all the tables in the keyspace
- Tables can be inspected with:
sql
INSPECT TABLE <entity>

This will give information about the data model and other properties of the table
- To list all keyspaces, this can be run:
sql
INSPECT KEYSPACES

- **Cyanstore 1A disk storage format**: Cyanstore (v1A) was a new storage format built for the multi-keyspace-table world. It efficiently stores and retrieves records, tables and keyspaces
- **Realtime keyspace/table switch**
- To switch to a new keyspace in real-time, one needs to run:
sql
USE keyspace

- To switch to a new table in real-time, one needs to run:
sql
USE keyspace:table

- **Entity respecting actions**:

- **`FLUSHDB`**: To flush all the data in a specific table, run:
sql
FLUSHDB <entity>

- **`DBSIZE`**: To see the number of entries in a specific table, run:
sql
DBSIZE <entity>

- **`LSKEYS`**:
- `LSKEYS` will return keys from the current table
- `LSKEYS <count>` will return _count_ keys from the current table
- `LSKEYS <entity>` will return keys from the given table
- `LSKEYS <entity> <count>` will return _count_ keys from the given table

- **Snapshot isolation for strong actions**: This makes strong actions
extremely reliable when compared to the earlier releases
- Non-interactive TLS private key passphrase input: Just save your password in some
file and then pass `--tlspassin /path/to/passfile.txt`. You can do the same by using the
`tlspassin` key under SSL in the configuration file
- `MPOP` now replaces `POP` to accept multiple keys while `POP` will accept a single key
to follow the `MGET`/`GET` naming convention
- TLS port can now be set to a custom port via CLI arguments
- `sky-bench` can now run multiple times to get average values through the `--runs` option
- `HEYA` now does an echo with the second argument

Fixes

- Zero length argument causing runtime panic in `skysh`
- `HEYA!` not reporting errors on incorrect number of arguments
- Panic on incorrect data type in `skyd`
- `sky-bench` no longer affects your personal data because it creates a random temporary table
under the `default` keyspace
- `sky-bench`'s `testkey` subcommand causing key collisions
- Fix log output in `sky-bench` even if the `--json` flag was passed
- Use flocks to enable auto release of pid file, even if process is forcefully terminated
- Fixes [CVE-2021-37625](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-37625)

Breaking

- All actions now accept the `AnyArray` type introduced in Skyhash 1.1
- `POP` now accepts one key while `MPOP` accepts multiple keys
- Disk storage format has changed
- The `upgrade` subcommand has been removed

0.6.4

Fixes

- Fixes [CVE-2021-37625](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-37625) (backport)

0.6.3

Additions

- The maximum number of clients can now be manually configured [see [182](https://github.com/skytable/skytable/pull/182)]

Fixes

- Ability to connect to the server over TLS has been restored in `skysh` [see [181](https://github.com/skytable/skytable/pull/181)]

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.