Crate ShellΒΆ

The shell provides a CLI for CRATE.

If the crate package was installed using pip the shell can be started by invoking crash in a terminal.

crash by default will try to connect to localhost:4200. To connect to another host use the connect command inside the shell or use the –hosts argument when launching the shell.

When you connect to a server that is not reachable or whose hostname cannot be resolved you will get an error:

cr> connect 127.0.0.1:65535
+------------------------+-----------+-----------+--------------------+
| server_url             | node_name | connected | message            |
+------------------------+-----------+-----------+--------------------+
| http://127.0.0.1:65535 | NULL      | FALSE     | Connection refused |
+------------------------+-----------+-----------+--------------------+
CONNECT ERROR

cr> connect null.lol:4200
+----------------------+-----------+-----------+--------------------------------+
| server_url           | node_name | connected | message                        |
+----------------------+-----------+-----------+--------------------------------+
| http://null.lol:4200 | NULL      | FALSE     | Hostname could no be resolved. |
+----------------------+-----------+-----------+--------------------------------+
CONNECT ERROR

Successful connects will give you some information about the servers you connect to:

cr> connect 127.0.0.1:44209
+------------------------+-----------+-----------+---------+
| server_url             | node_name | connected | message |
+------------------------+-----------+-----------+---------+
| http://127.0.0.1:44209 | crate     | TRUE      | OK      |
+------------------------+-----------+-----------+---------+
CONNECT OK

If you connect to more than one server, the command will succeed if at least one server is reachable:

cr> CONNECT 127.0.0.1:44209 null.lol:4295
+------------------------+-----------+-----------+--------------------------------+
| server_url             | node_name | connected | message                        |
+------------------------+-----------+-----------+--------------------------------+
| http://127.0.0.1:44209 | crate     | TRUE      | OK                             |
| http://null.lol:4295   | NULL      | FALSE     | Hostname could no be resolved. |
+------------------------+-----------+-----------+--------------------------------+
CONNECT OK

Once the shell is connected, SQL statements can be executed simply by entering them without any special arguments like this:

cr> SELECT name, kind from locations order by name
+------------------------------------+-------------+
| name                               | kind        |
+------------------------------------+-------------+
| Aldebaran                          | Star System |
| Algol                              | Star System |
| Allosimanius Syneca                | Planet      |
| Alpha Centauri                     | Star System |
| Altair                             | Star System |
| Argabuthon                         | Planet      |
| Arkintoofle Minor                  | Planet      |
| Bartledan                          | Planet      |
| Folfanga                           | Star System |
| Galactic Sector QQ7 Active J Gamma | Galaxy      |
| North West Ripple                  | Galaxy      |
| Outer Eastern Rim                  | Galaxy      |
| NULL                               | Galaxy      |
+------------------------------------+-------------+
SELECT 13 rows in set (... sec)