You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
6.6 KiB
YAML

#
# Created on Thu Aug 27 2020
#
# This file is a part of Skytable
# Skytable (formerly known as TerrabaseDB or Skybase) is a free and open-source
# NoSQL database written by Sayan Nandan ("the Author") with the
# vision to provide flexibility in data modelling without compromising
# on performance, queryability or scalability.
#
# Copyright (c) 2020, Sayan Nandan <ohsayan@outlook.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
#
#
# This file is used by Skytable's documentation website for automatically
# generating documentation for the actions. It will also be used by the Skytable
# server in the future
# the docbuilder expects:
# 'name': str, 'complexity': str, 'accept': [str]
# 'return': [str], 'syntax': [str], 'desc': str
- name: GET
complexity: O(1)
accept: [AnyArray]
syntax: [GET <key>]
desc: Get the value of a key from the current table, if it exists
return: [Rcode 1, String, Binstr]
- name: MGET
complexity: O(n)
accept: [AnyArray]
syntax: [MGET <key1> <key2> ...]
desc: Get the value of 'n' keys from the current table, if they exist
return: [Typed Array]
- name: SET
complexity: O(1)
accept: [AnyArray]
syntax: [SET <key> <value>]
desc: Set the value of a key in the current table, if it doesn't already exist
return: [Rcode 0, Rcode 2, Rcode 5]
- name: MSET
complexity: O(n)
accept: [AnyArray]
syntax: [MSET <key1> <value1> <key2> <value2> ...]
desc: |
Set the value of 'n' keys in the current table, if they don't already exist. This will
return the number of keys that were set as an unsigned integer.
return: [Integer, Rcode 5]
- name: UPDATE
complexity: O(1)
accept: [AnyArray]
syntax: [UPDATE <key> <value>]
desc: Update the value of an existing key in the current table
return: [Rcode 0, Rcode 1, Rcode 5]
- name: MUPDATE
complexity: O(n)
accept: [AnyArray]
syntax: [MUPDATE <key1> <value1> <key2> <value2> ...]
desc: |
Update the value of 'n' keys in the current table, if they already exist. This will return
the number of keys that were updated as an unsigned integer.
return: [Integer, Rcode 5]
- name: DEL
complexity: O(n)
accept: [AnyArray]
syntax: [DEL <key1> <key2> ...]
desc: |
Delete 'n' keys from the current table. This will return the number of keys that were deleted
as an unsigned integer
return: [Integer, Rcode 5]
- name: EXISTS
complexity: O(n)
accept: [AnyArray]
syntax: [EXISTS <key1> <key2> ...]
desc: |
Check if 'n' keys exist in the current table. This will return the number of keys that exist
as an unsigned integer.
return: [Integer]
- name: SSET
complexity: O(n)
accept: [AnyArray]
syntax: [SSET <key1> <value1> <key2> <value2> ...]
desc: Set all keys to the given values only if all of them don't exist in the current table
return: [Rcode 0, Rcode 2, Rcode 5]
- name: SDEL
complexity: O(n)
accept: [AnyArray]
syntax: [SDEL <key1> <key2> ...]
desc: |
Delete all keys if all of the keys exist in the current table. Do note that if a single key doesn't
exist, then a `Nil` code is returned.
return: [Rcode 0, Rcode 1, Rcode 5]
- name: SUPDATE
complexity: O(n)
accept: [AnyArray]
syntax: [SUPDATE <key1> <value1> <key2> <value2> ...]
desc: |
Update all keys if all of the keys exist in the current table. Do note that if a single key doesn't
exist, then a `Nil` code is returned.
return: [Rcode 0, Rcode 1, Rcode 5]
- name: DBSIZE
complexity: O(1)
accept: [AnyArray]
syntax: [DBSIZE, DBSIZE <entity>]
desc: Check the number of entries stored in the current table or in the provided entity
return: [Integer]
- name: FLUSHDB
complexity: O(n)
accept: [AnyArray]
syntax: [FLUSHDB, FLUSHDB <entity>]
desc: Removes all entries stored in the current table or in the provided entity
return: [Rcode 0, Rcode 5]
- name: USET
complexity: O(n)
accept: [AnyArray]
syntax: [USET <key1> <value1> <key2> <value2> ...]
desc: SET all keys if they don't exist, or UPDATE them if they do exist. This operation performs `USET`s in the current table
return: [Integer, Rcode 5]
- name: KEYLEN
complexity: O(1)
accept: [AnyArray]
syntax: [KEYLEN <key>]
desc: Returns the length of the UTF-8 string, if it exists in the current table
return: [Integer, Rcode 1]
- name: MKSNAP
complexity: O(n)
accept: [AnyArray]
syntax: [MKSNAP, MKSNAP <SNAPNAME>]
desc: |
This action can be used to create a snapshot. Do note that this action **requires
snapshotting to be enabled on the server side**, before it can create snapshots.
If you want to create snapshots **without** snapshots being enabled on the server-side,
pass a second argument `<SNAPNAME>` to specify a snapshot name and a snapshot will
be create in a folder called `rsnap` under your data directory. For more
information on snapshots, read [this document](/snapshots)
return: [Rcode 0, err-snapshot-disabled, err-snapshot-busy]
- name: LSKEYS
complexity: O(n)
accept: [AnyArray]
syntax: [LSKEYS <limit>, LSKEYS <entity>, LSKEYS <entity> <limit>]
desc: |
Returns a flat string array of keys present in the current table or in the provided entity.
If no `<limit>` is given, then a maximum of 10 keys are returned. If a limit is specified,
then a maximum of `<limit>` keys are returned. The order of keys is meaningless.
return: [Typed Array]
- name: POP
complexity: O(1)
accept: [AnyArray]
syntax: [POP <key>]
desc: |
Deletes and return the value of the provided key from the current table.
If the database is poisoned, this will return a server error.
return: [String, Binstr, Rcode 5]
- name: MPOP
complexity: O(n)
accept: [AnyArray]
syntax: [MPOP <key1> <key2> ...]
desc: |
Deletes and returns the values of the provided 'n' keys from the current table.
If the database is poisoned, this will return a server error
return: [Typed Array, Rcode 5]
- name: HEYA
complexity: O(1)
accept: [AnyArray]
syntax: [HEYA, HEYA <message>]
desc: |
Either returns a "HEY!" or returns the provided argument as an `str`
return: [String]