In addition to SQL commands, gda-sql supports internal commands which differ from SQL commands because
they start with the "." or "\" character. These commands are:
.? Lists all internal commands
.bind Bind two or more connections into a single new one (allowing SQL commands to be executed across
multiple connections). .bind<CNC_NAME><CNC_NAME1><CNC_NAME2>[<CNC_NAME>...] creates a new
connection named <CNC_NAME> which binds the tables of the <CNC_NAME1>, <CNC_NAME2> and any other
connection specified.
.c Opens a connection or sets the current connection. Username and password can pe specified using
the <USERNAME>[:<PASSWORD>]@<DSN_NAME> or <USERNAME>[:<PASSWORD>]@<CNC_DEFINITION> syntax, and if
a username or a password is required but not specified, it will ba asked interactively.
.c<CNC_NAME><DSN_NAME> opens a connection internally known as <CNC_NAME>, using the specified
DSN.
.c<CNC_NAME><CNC_DEFINITION> opens a connection internally known as <CNC_NAME>, using a
connection specified by <CNC_DEFINITION> which is similar to the <DSN_DEFINITION> parameter of the
.lc command.
.c<CNC_NAME> sets the current connection to the connection known as <CNC_NAME>.
.c~ or .c~<CNC_NAME> set the current connection to the meta data corresponding to the current
connection (for the first notation) or to the meta data corresponding to the <CNC_NAME>
connection.
.close Closes a connection. Full syntax is: .close<CNC_NAME>.
.cd Changes the current working directory. Full syntax is: .cd<DIR_NAME>.
.copyright
Displays copyright information.
.d Lists all database objects if no argument is provided. .d<OBJ_NAME> gives details about the
specified object and .d<SCHEMA>.* lists all objects in specified schema.
.dn Lists all schemas if no argument is provided. .d<SCHEMA_NAME> lists specified schema.
.dt Lists all tables if no argument is provided. .d<TABLE_NAME> lists specified table.
.dv Lists all views if no argument is provided. .d<VIEW_NAME> lists specified view.
.fkdeclare
Declares a new foreign key (no constraint is added to the database). The meta data is modified to
take into account a foreign key constraint. The foreign key specification is <fkname><tableA>(<colA>,...)<tableB>(<colB>,...) where <fkname> is the name given to the foreign key
constraint and <tableA> references <tableB> using the columns mentionned between the parenthesis.
Note that the (<fkname>, <tableA>, <tableB>) triplet uniquely identifies a declared foreign key
(declaring a new foreign key with the same triplet will remove any previously declared one).
Note: any actual foreign key constraint will always have precedence over any declared foreign key.
.fkundeclare
Un-declares a foreign key (does the opposite of .fkdeclare).
.e Edits the query buffer with external editor, if no argument is provided. .e<FILE_NAME> edits the
specified file name. The external editor can be specified using environment variables.
.echo Sends output to stdout, full command is: .echo[<TEXT>].
.export
Exports internal parameter or table's value to the FILE file. Internal parameters are named values
used when SQL statement containing variables are executed.
.export<NAME><FILE_NAME> exports the contents of the <NAME> parameter to the specified file.
.export<TABLE><COLUMN><ROW_CONDITION><FILE_NAME> exports the value of the <TABLE> table,
column <COLUMN> for the row selected by <ROW_CONDITION> to the specified file. This is most useful
to export BLOBs.
.g Executes the contents of the query buffer, if no parameter is provided. .g<QUERY_BUFFER_NAME>
Executes the contents of the specified query buffer. A named query buffer is created using the .qs
command.
.graph Creates a graph of tables showing their relations (based on foreign key constraints). If no
argument is provided, the graph lists all tables. .graph<TABLE_NAME>[<TABLE_NAME>...] creates a
graph listing the specified tables.
The generated graph is created as the "gdaph.dot" file. If the GDA_SQL_VIEWER_PNG or
GDA_SQL_VIEWER_PDF environment variables are set and if the "dot" program (from GraphViz) is
found, then the graph is displayed (if a display is available).
.H Set output format. Full syntax is: .H[HTML|XML|CSV|DEFAULT].
.http Starts/stops the embedded HTTP server. Full syntax is .http[<port>[<authentication_token>]],
where <authentication_token> is an optional token phrase which HTTP clients are required to send
to authenticate.
.i Executes commands from file the specified file: .i<FILE_NAME>.
.l Lists all data sources if no argument is provided. .l<DSN> lists information about the specified
DSN.
.lp Lists all available database providers if no argument is provided. .lp<provider> lists
information about the specified provider.
.lc Declares a DSN. Full syntax is: .lc<DSN_NAME><DSN_DEFINITION>[<DESCRIPTION>]. The
<DSN_DEFINITION> format is: <provider>://[<username>[:<password>]@]<connection_params> where
<connection_params> is a semi-colon (";") separated list of <key>=<value> pairs where <key> is
defined when using .lp<provider> (if <value> contains non alphanumeric characters, they should be
represented as specified by the RFC 1738).
If a DSN with a similar name already exists, it is first removed.
For example: ".lc mydsn PostgreSQL://HOST=moon;DB_NAME=mydb".
ldap_attributes
This option (see the .option command) defines or list the attributes handled by LDAP commands; it
is only useful if the current connection is an LDAP connection. Its values must have the following
format: <attribute>[,<attribute>...].
For multi valued attributes (such as "objectClass"), it is possible to specify how multiple values
are handled by appending ::csv (values are listed in a CVS syntax), ::* (each row is duplicated
with each value of the attribute), ::1 (only the 1st value of the attribute is shown), ::concat
(all the values are made into a string, separated by newlines) or ::null (a NULL value is used).
The default is an error value.
.ldap_descr
Describes an LDAP entry; this command only works if the current connection is an LDAP connection.
Full syntax is: .ldap_descr<DN>["all"|"set"|"unset"].
If the set option is passed, then all the set attributes are shown, if the all option is passed,
then all attributes are shown, and if the unset option is passed, then only attributes which don't
have a value are shown. The default is to show only the set attributes specified by the
ldap_attributes option.
ldap_dn
This option (see the .option command) defines how the DN column is handled for LDAP searched
entries; it is useful only if the current connection is an LDAP connection. Its values must be
among: dn (use the full DN), rdn (use only the RDN), or none (don't use the DN at all).
.ldap_mod
Modifies an LDAP entry's attributes; this command only works if the current connection is an LDAP
connection. Full syntax is: .ldap_mod<DN><OPERATION>[<ATTR>[=<VALUE>]][<ATTR>=<VALUE>...].
The .<OPERATION> argument specifies which operation must be performed, among DELETE, REPLACE and
ADD.
.ldap_mv
Renames an LDAP entry; this command only works if the current connection is an LDAP connection.
Full syntax is: .ldap_mv<DN><NEWDN>.
.ldap_search
Searches the LDAP directory for entries; this command only works if the current connection is an
LDAP connection. Full syntax is: .ldap_search<filter>["base"|"onelevel"|"subtree"[<baseDN>]].
Filter must be a valid LDAP filter expression (outer most parenthesis are optional though),
"base", "onelevel" or "subtree" can optionally specify the search scope (default is subtree), and
.<baseDN> can be used to specify a different DN to search from (the default is to use the base DN
specified when opening the connection).
.lr Removes a DSN declaration. Full syntax is: .lc<DSN_NAME>.
.meta Updates the current connection's meta data (use this command after having modified the database's
schema).
.o Sends output to a file or |pipe. Full syntax is: .o<FILE_NAME> or .o|<COMMAND>.
.option
Defines options shared among all the connections. Full syntax is: .option[<OPTIONNAME>[<VALUE>]].
If no option name is given, then all the available options and their current values are shown. If
an option name is given without any value, its current value is shown, and to define the value of
an option, give its name and new value.
.pivot Performs data summarization on a data set. Full syntax is: .pivot<SELECT><ROW_FIELDS>[<COLUMN_FIELDS>[<DATA_FIELDS>[...]]].
The <SELECT> defines the data set to perform summarization on.
The <ROW_FIELDS> defines the fields from the data set from which each individual value will yield
to a row in the analysis (it can be any valid selectable SQL expression on the data set's fields);
multiple expressions can be provided, separated by commas (forming a valid SQL expression). In
this case a row will be created for each combination of values of each of the expression.
The <COLUMN_FIELDS> defines the fields from the data set from which each individual value will
yield to a column in the analysis. Its syntax is similar to the <ROW_FIELDS> one. If not specified
(or if specified as a single dash ("-") caracter), then only one column will be created. Note
that, if the <DATA_FIELDS> argument is specified each column created from the <COLUMN_FIELDS> will
in fact lead to the creation of as many <DATA_FIELDS> arguments provided.
The <DATA_FIELDS> arguments are entirely optional and indicates the way data summarization is done
for each pair of (row,column) values (the default is to count occurrences). The syntax for each
<DATA_FIELDS> argument is: [aggregate]<SQL_expression>, where the aggregate part is optional and,
if present must be among [SUM], [COUNT], [AVG], [MIN] or [MAX], and the SQL expression is a valid
selectable SQL expression of the data set's fields.
Examples:
.pivot"SELECT*FROMfood"personfood.pivot"SELECT*FROMproducts"category"CASEWHENprice<15THEN'low'ELSE'high'END"[AVG]price.pivot"SELECT*FROMsales"category,product-[AVG]quantity.q Quits the application.
.qecho Sends output to the output stream (stdout). Full syntax is: .qecho<TEXT>.
.qa Lists all saved query buffers in dictionary.
.qd Deletes a query buffer from the dictionary. Full syntax is: .qd<QUERY_BUFFER_NAME>.ql Loads query buffer from dictionary into the current query buffer. Full syntax is: .ql<QUERY_BUFFER_NAME>.
.qp Shows the contents of the current query buffer.
.qr Resets the query buffer to empty if no argument is provided. .qr<FILE_NAME> loads the specified
file into the query buffer.
.qs Saves query buffer to dictionary, full syntax is .qs<QUERY_BUFFER_NAME>. This creates a new query
buffer with the specified name in the dictionary, containing the current query buffer.
.qw Writes the query buffer to the specified file, full syntax is .qw<FILE_NAME>.
.s Show commands history. .s<FILE_NAME> saves command history to specified file.
.set Sets, shows or lists internal parameters.
.set lists all the defined internal parameters.
.set<NAME><VALUE> (re)defines the internal parameter named <NAME> to the specified value (which
can be the _null_ literal to set it to NULL).
.set<NAME> shows the contents of the internal parameter named <NAME>.
.setex Set internal parameter as the contents of the FILE file or from an existing table's value.
.setex<NAME><FILE_NAME> (re)defines the the internal parameter named <NAME> with the contents of
the specified file name.
.setex<NAME><TABLE><COLUMN><ROW_CONDITION> (re)defines the the internal parameter named <NAME>
with the value of the <TABLE> table, column <COLUMN> for the row selected by <ROW_CONDITION>.This
is most useful to export BLOBs.
.unset Unset (delete) internal parameter.
.unset unsets all the internal parameters.
.unset<NAME> unsets the internal parameter named <NAME>.