mapdql [<database>]
       [{--user|-u} <user>]
       [{--passwd|-p} <password>]
       [--port <port number>]
       [{-s|--server} <server host>]


mapdql is the client-side SQL console that displays query results for SQL statements you submit to the MapD Core Server.


Argument Description
database The database to connect to. Default = mapd.


Option Description
--user | -u User name. Default = mapd.
--passwd | -p User password. Default = HyperInteractive.
--port Port number of MapD Core Server. Default = 9091.
--server | -s MapD Core Server hostname in DNS name or IP address. Default = localhost.
--http Use the Thrift HTTP transport instead of the default TCP transport. Must set --port to the mapd_web_server port. Default = 9092.

Running mapdql

After starting mapdql, you can enter SQL queries or backslash commands from the command line.

The MapD server has a default one hour timeout on individual HTTP requests, including those made from mapdql, when using Thrift HTTP transport. If your queries are expected to exceed the timeout, use either the default mapdql TCP transport or increase the timeout using the mapd_web_server --timeout option.

If the connection to the server is lost, mapdql automatically attempts to reconnect.


Command Description
\h List available backslash commands.
\u [<regex>] List users, with optional regular expression.
\l List databases.
\t [<regex>] List tables, with optional regular expression.
\v [<regex>] List views, with optional regular expression.
\d <table> Describe table columns using a SQL CREATE TABLE statement.
\d <view> Describe the results of a view SELECT statement.
\o <table> Return the optimal CREATE TABLE statement for a table, based on the size of the actual data stored.
\c <database> <user> <password> Connect to a database.
\gpu Switch to GPU mode in the current session.
\cpu Switch to CPU mode in the current session.
\timing Print timing information.
\notiming Do not print timing information.
\version Print MapD Core Server version.
\memory_summary Print memory usage summary.
\copy <file path> <table> Copy or append data from client-side file to table. The file is assumed to be in CSV format unless the file name ends with .tsv.
\copygeo <file path> <table> Experimental support for copying a server side shapefile to a new table.
\export_dashboard <dashboard name> <filename> Exports a dashboard to a filepath. Files with spaces in their names should be quoted. If there is a quote within a quoted string, it should be escaped with a backslash.
\import_dashboard <dashboard name> <filename> Imports a dashboard from a filepath. Files with spaces in their names should be quoted. If there is a quote within a quoted string, it should be escaped with a backslash.
\q Quit.

Unlike SQL statements, backslash commands do not require a terminating semicolon character.

Runtime Examples

The \t, \u, and \v commands might return a long list of values. You can use a regular expression match pattern to filter the results. For example, you could use the following command to return only tables that start with the word flight.

mapdql> \t ^flight.*

SQL query example:

mapdql> SELECT * FROM movies WHERE movieId=260;
260|Star Wars: Episode IV - A New Hope (1977)|Action|Adventure|Sci-Fi

Backslash command example that describes a table:

mapdql> \d movies
movieId INTEGER,

If you frequently perform the same tasks, you can create a script and pipe it to mapdql. You can use both SQL commands and mapdql commands in your script.

cat script.sql | mapdql -p <password>

For example, if you periodically upload data to the movies table, you can append rows from files named movies.csv using the following script, and display the results.

\copy ./movies.csv movies
select * from movies;

When you pipe the script to mapdql, you get results similar to the following.

$ cat ~/script.sql | ./mapdql -p MyPasswordShhSecret
User mapd connected to database mapd
1|Explosions Extravaganza|Action
2|Cuddle Time|Romantic Comedy
3|Chuckle Buddies|Comedy
4|All the Feels|Drama
User mapd disconnected from database mapd