forked from tarantool/tarantool
-
Notifications
You must be signed in to change notification settings - Fork 0
Interactive console
Konstantin edited this page Dec 22, 2019
·
4 revisions
Очевидно что есть некоторые вещи в консоли, которые влияют на собственно консоль, а есть вещи которые она перенаправляет в том или ином виде серверу
соответственно мне кажется что из имеющихся решений наиболее изящно это все решено в консоли psql:
- в каждый момент времени есть некий символ delimiter, который разделяет команды (по умолчанию - точка с запятой)
- есть спец-escape символ (в постгре это -
\
) начиная строку которым мы даем указания консольке а не хотим выполнять команды
Формат команды в постгре такой (и мне кажется удобным)
-
\
- escape символ -
[a-z]+
- набор символов команды (первый символ - сама команда, второй и последующий - уточнения к ней) -
+
- опциональный +, означает что выдача должна быть расширенной (если такое возможно)
Соответственно применительно к стартовому набору команд предлагаю следующий набор:
-
\?
- справка по работе с консолькой -
\h объект
- справка по командам/переменным box.* в тарантуле -
\d
- показать список спейсов -
\d имя/номер спейса
- показать структуру спейса -
\l [lua|sql]
- показать/изменить текущий язык запросов установленный в консоли (по умолчанию - lua) -
\g файл или канал
- повторить последнюю команду и направить ее вывод в файл или канал -
\i[r] файл
- выполнить команды из файла (r - путь к файлу относительный от текущего скрипта)
-
\a
- переключение вывода: форматированный/неформатированный (тут можно дать формат - yaml/json например) -
\x
- переключение вывода: простой/расширенный (в простом - тапл выводится в одну строку, в расширенном - в множество)
- Поддержку подклчения к нескольким tarantool
- Возможность переключения между серверами для выполнения команд на каком-либо сервере, а так же на всех сразу
- Возможность загрузки модулей, например каких-нибудь математических, для вычисления на локальной машине
- Возможность сохранения результата вывода из tarantool[ов] в файл на диск, а так же чтения из него
Architecture Specifications
- Server architecture
- Feature specifications
- What's in a good specification
- Functional indexes
- Space _index structure
- R tree index quick start and usage
- LuaJIT
- Vinyl
- SQL
- Testing
- Performance
How To ...?
- ... add new fuzzers
- ... build RPM or Deb package using packpack
- ... calculate memory size
- ... debug core dump of stripped tarantool
- ... debug core from different OS
- ... debug Lua state with GDB
- ... generate new bootstrap snapshot
- ... use Address Sanitizer
- ... collect a coredump
Lua modules
Useful links