ExTectonicdb v0.1.3 ExTectonicdb.Commands View Source

Execture remote commands and receive results

Link to this section Summary

Functions

Add record to current database

Remove records from database

Remove records from all databases

Create database

Checks if orderbook exists

Retrieve all entries from database

Retrieve all entries from database within range

INFO

Add record into a database

PING

Switch databases

Link to this section Types

Specs

connection() :: pid()

Specs

db_name() :: String.t()

Specs

row() :: ExTectonicdb.Dtf.t()

Specs

timestamp() :: non_neg_integer()

Link to this section Functions

Specs

add(connection(), row()) :: {:ok, row()} | {:error, :db_not_found}

Add record to current database

ADD [ts], [seq], [is_trade], [is_bid], [price], [size];

Examples:

iex> row = %ExTectonicdb.Dtf{timestamp: 1505177459.685, seq: 139010, is_trade: true, is_bid: false, price: 0.0703620, size: 7.65064240}
iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.add(conn, row)
{:ok, %ExTectonicdb.Dtf{timestamp: 1505177459.685, seq: 139010, is_trade: true, is_bid: false, price: 0.0703620, size: 7.65064240}}

Specs

clear(connection()) :: :ok | :error

Remove records from database

CLEAR

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.clear(conn)
:ok

Specs

clear_all(connection()) :: :ok | :error

Remove records from all databases

CLEAR ALL

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.clear_all(conn)
:ok

Specs

create(connection(), db_name()) :: {:ok, db_name()} | {:error, :db_not_found}

Create database

CREATE database

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.create(conn, "my_new_db")
{:ok, "my_new_db"}

Specs

exists?(connection(), db_name()) :: {:ok, db_name()} | {:error, :db_not_found}

Checks if orderbook exists

EXISTS [orderbook]

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.exists?(conn, "default")
{:ok, "default"}
iex> ExTectonicdb.Commands.exists?(conn, "new_db")
{:error, :db_not_found}

Specs

get_all(connection()) :: {:ok, [row()]} | {:error, any()}

Retrieve all entries from database

GET ALL AS CSV

{:ok, conn} = ExTectonicdb.Connection.start_link()
ExTectonicdb.Commands.get_all(conn)

Specs

get_all(connection(), from: timestamp(), to: timestamp()) ::
  {:ok, [row()]} | {:error, any()}

Retrieve all entries from database within range

GET ALL FROM [from] TO [to] AS CSV

{:ok, conn} = ExTectonicdb.Connection.start_link()
ExTectonicdb.Commands.get_all(conn, from: 1505142459, to: 1505177459)

Specs

info(connection()) :: {:ok, :pong} | {:error, any()}

INFO

Link to this function

insert_into(conn, row, db)

View Source

Specs

insert_into(connection(), row(), db_name()) ::
  {:ok, row(), String.t()} | {:error, :db_not_found}

Add record into a database

INSERT 1505177459.685, 139010, t, f, 0.0703620, 7.65064240; INTO dbname

Examples:

iex> row = %ExTectonicdb.Dtf{timestamp: 1505177459.685, seq: 139010, is_trade: true, is_bid: false, price: 0.0703620, size: 7.65064240}
iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.insert_into(conn, row, "default")
{:ok, %ExTectonicdb.Dtf{timestamp: 1505177459.685, seq: 139010, is_trade: true, is_bid: false, price: 0.0703620, size: 7.65064240}, "default"}
iex> ExTectonicdb.Commands.insert_into(conn, row, "i-dont-exist")
{:error, :db_not_found}

Specs

ping(connection()) :: {:ok, :pong} | {:error, any()}

PING

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.ping(conn)
{:ok, :pong}

Specs

use_db(connection(), db_name()) :: {:ok, db_name()} | {:error, any()}

Switch databases

Examples:

iex> {:ok, conn} = ExTectonicdb.Connection.start_link()
iex> ExTectonicdb.Commands.use_db(conn, "default")
{:ok, "default"}
iex> ExTectonicdb.Commands.use_db(conn, "my-db")
{:error, :db_not_found}