Interactive console | Tarantool
Reference / Interactive console
Reference / Interactive console

Interactive console

Interactive console

The “interactive console” is Tarantool’s basic “command-line interface” for entering requests and seeing results. It is what users see when they start the server without an instance file, or start tarantoolctl with enter. It is often called the Lua console to distinguish it from the administrative console, but in fact it can handle both Lua and SQL input. The majority of examples in this manual show what users see with the interactive console, including the prompt (which can be “tarantool> “), the instruction (which can be a Lua request or an SQL statement), and the response (which can be a display in either YAML format or Lua format).

-- Typical interactive console example with Lua input and YAML output
- 1:
    id: 1
    uuid: a5d22f66-2d28-4a35-b78f-5bf73baf6c8a
    lsn: 0

The input language can be changed to SQL with \set language sql or changed to Lua (the default) with \set language lua.

The delimiter can be changed to any character with set delimiter <character>. The default is nothing, which means input does not need to end with a delimiter. But a common recommendation is to say set delimiter ; especially if input is SQL.

The output format can be changed to Lua with \set output lua or changed to YAML (the default) with \set output yaml.

Ordinarily. output from the console has YAML format. That means that there is a line for document-start "---", and each item begins on a separate line starting with "- ", and each sub-item in a nested structure is indented, and there is a line for document-end "...".

Optionally, output from the console can have Lua format. That means that there are no lines for document-start or document-end, and items are not on separate lines (they are only separated by commas), and each sub-item in a nested structure is placed inside “{}” braces. So, when input is a Lua object description, output will equal input.

YAML is good for readability. Lua is good for re-using results as requests. A third format, MsgPack, is good for database storage. Currently the default output format is YAML but it may be Lua in a future version, and it may be Lua if the last set_default_output call was console.set_default_output('lua').

Type Lua input Lua output YAML output MsgPack storage
scalar 1 1 ---
- 1
scalar sequence 1,2,3 1,2,3 ---
- 1
- 2
- 3
\x01 \x02 \x03
2-element table {1,2} {1,2} ---
- - 1
- - 2
0x92 0x01 0x02
map {key=1} {key=1} ---
- key: 1
\x81 \xa3 \x6b \x65 \x79 \x01