Meta-Command Reference
This section describes meta-commands provided by gsql after the GaussDB database CLI tool is used to connect to a database. A gsql meta-command can be anything that you enter in gsql and begins with an unquoted backslash.
Precautions
- The format of the gsql meta-command is a backslash (\) followed by a command verb, and then a parameter. The parameters are separated from the command verb and from each other by any number of whitespace characters.
- To include whitespace characters into an argument, you must quote them with a single straight quotation mark. To include a single straight quotation mark into such an argument, precede it by a backslash. Anything contained in single quotation marks is furthermore subject to C-like substitutions for \n (new line), \t (tab), \b (backspace), \r (carriage return), \f (form feed), \digits (octal), and \xdigits (hexadecimal).
- Within a parameter, text enclosed in double quotation marks ("") is taken as a command line input to the shell. The output of the command (with any trailing newline removed) is taken as the argument value.
- If an unquoted argument begins with a colon (:), the argument is taken as a gsql variable and the value of the variable is used as the argument value instead.
- Some commands take an SQL identifier (such as a table name) as a parameter. These parameters follow the SQL syntax rules: Unquoted letters are forced to lowercase, while double quotation marks ("") protect letters from case conversion and allow incorporation of whitespace into the identifier. Within double quotation marks, paired double quotation marks reduce to a single double quotation mark in the result name. For example, FOO"BAR"BAZ is interpreted as fooBARbaz, and "Aweird""name" becomes A weird"name.
- Parsing for arguments stops when another unquoted backslash is found. This is taken as the beginning of a new meta-command. The special sequence \\ (two backslashes) marks the end of parameters and continues parsing SQL statements if any. In this way, SQL and gsql commands can be freely mixed in a line. But in any case, the arguments of a meta-command cannot continue beyond the end of the line.
Meta-command
For details about meta-commands, see Table 1, Table 2, Table 3, Table 4, Table 6, Table 8, Table 9, Table 10, and Table 12.
FILE mentioned in the following commands indicates a file path. This path can be an absolute path such as /home/gauss/file.txt or a relative path, such as file.txt. By default, a file.txt is created in the path where the user runs gsql commands.
Parameter |
Description |
Value Range |
---|---|---|
\copyright |
Displays GaussDB version and copyright information. |
- |
\g [FILE] or ; |
Performs a query operation and sends the result to a file or pipe. |
- |
\h(\help) [NAME] |
Provides syntax help on the specified SQL statement. |
If the name is not specified, then gsql will list all the commands for which syntax help is available. If the name is an asterisk (*), syntax help on all SQL statements is displayed. |
\parallel [on [num]|off] |
Controls the parallel execution function.
NOTE:
|
The default value of num is 1024.
NOTICE:
|
\q |
Exits the gsql program. This command is executed only when a script terminates in a script file. |
- |
Parameter |
Description |
---|---|
\e [FILE] [LINE] |
Uses an external editor to edit the query buffer or file. |
\ef [FUNCNAME [LINE]] |
Edits the function definition using an external editor. If LINE is specified, the cursor will point to the specified line of the function body. |
\p |
Prints the current query buffer to the standard output. |
\r |
Resets or clears the query buffer. |
\w FILE |
Outputs the current query buffer to a file. |
Parameter |
Description |
Value Range |
Example |
||
---|---|---|---|---|---|
\d[S+] |
Lists all tables, views, and sequences of all schemas in the search_path. When objects with the same name exist in different schemas in search_path, only the object in the schema that ranks first in search_path is displayed. |
- |
Lists all tables, views, and sequences of all schemas in the search_path.
|
||
\d[S+] NAME |
Lists the structure of specified tables, views, and indexes. |
- |
Lists the structure of table a.
|
||
\d+ [PATTERN] |
Lists all tables, views, and indexes. |
If PATTERN is specified, only tables, views, and indexes whose names match PATTERN are displayed. |
Lists all tables, views, and indexes whose names start with f.
|
||
\da[S] [PATTERN] |
Lists all available aggregate functions, together with the data type they perform operations on and the return value types. |
If PATTERN is specified, only aggregate functions whose names match PATTERN are displayed. |
Lists all available aggregate functions whose names start with f, together with their return value types and the data types.
|
||
\db[+] [PATTERN] |
Lists all available tablespaces. |
If PATTERN is specified, only tablespaces whose names match PATTERN are displayed. |
Lists all available tablespaces whose names start with p.
|
||
\dc[S+] [PATTERN] |
Lists all available conversions between character-set encodings. |
If PATTERN is specified, only conversions whose names match PATTERN are displayed. |
Lists all available conversions between character-set encodings.
|
||
\dC[+] [PATTERN] |
Lists all available type conversions. PATTERN must be the actual type name and cannot be an alias. |
If PATTERN is specified, only conversions whose names match PATTERN are displayed. |
Lists all type conversions whose patten names start with c.
|
||
\dd[S] [PATTERN] |
Lists descriptions about objects matching PATTERN. |
If no parameter is specified, all visible objects are displayed. The objects include aggregations, functions, operators, types, relations (tables, views, indexes, sequences, and large objects), and rules. |
Lists all visible objects.
|
||
\ddp [PATTERN] |
Lists all default permissions. |
If PATTERN is specified, only permissions whose names match PATTERN are displayed. |
Lists all default permissions.
|
||
\dD[S+] [PATTERN] |
Lists all available domains. |
If PATTERN is specified, only domains whose names match PATTERN are displayed. |
Lists all available domains.
|
||
\ded[+] [PATTERN] |
Lists all Data Source objects. |
If PATTERN is specified, only objects whose names match PATTERN are displayed. |
Lists all Data Source objects.
|
||
\det[+] [PATTERN] |
Lists all external tables. |
If PATTERN is specified, only tables whose names match PATTERN are displayed. |
Lists all external tables.
|
||
\des[+] [PATTERN] |
Lists all external servers. |
If PATTERN is specified, only servers whose names match PATTERN are displayed. |
Lists all external servers.
|
||
\deu[+] [PATTERN] |
Lists all user mappings. |
If PATTERN is specified, only information whose name matches PATTERN is displayed. |
Lists all user mappings.
|
||
\dew[+] [PATTERN] |
Lists all encapsulated external data. |
If PATTERN is specified, only data whose name matches PATTERN is displayed. |
Lists all encapsulated external data.
|
||
\df[antw][S+] [PATTERN] |
Lists all available functions, together with their parameters and return types. a indicates an aggregate function, n indicates a common function, t indicates a trigger, and w indicates a window function. |
If PATTERN is specified, only functions whose names match PATTERN are displayed. |
Lists all available functions, together with their parameters and return types.
|
||
\dF[+] [PATTERN] |
Lists all text search configuration information. |
If PATTERN is specified, only configurations whose names match PATTERN are displayed. |
Lists all text search configuration information.
|
||
\dFd[+] [PATTERN] |
Lists all text search dictionaries. |
If PATTERN is specified, only dictionaries whose names match PATTERN are displayed. |
Lists all text search dictionaries.
|
||
\dFp[+] [PATTERN] |
Lists all text search analyzers. |
If PATTERN is specified, only analyzers whose names match PATTERN are displayed. |
Lists all text search analyzers.
|
||
\dFt[+] [PATTERN] |
Lists all text search templates. |
If PATTERN is specified, only templates whose names match PATTERN are displayed. |
Lists all text search templates.
|
||
\dg[+] [PATTERN] |
Lists all database roles.
NOTE:
Since the concepts of "users" and "groups" have been unified into "roles", this command is now equivalent to \du. Both commands are retained to ensure compatibility with earlier versions. |
If PATTERN is specified, only roles whose names match PATTERN are displayed. |
Lists all database roles named j?e (the question mark (?) indicates any character).
|
||
\dl |
This is an alias for \lo_list, which shows a list of large objects. |
- |
Lists all large objects.
|
||
\dL[S+] [PATTERN] |
Lists all available program languages. |
If PATTERN is specified, only languages whose names match PATTERN are displayed. |
Lists all available program languages.
|
||
\dm[S+] [PATTERN] |
Lists materialized views. |
If PATTERN is specified, only materialized views whose names match PATTERN are displayed. |
Lists materialized views.
|
||
\dn[S+] [PATTERN] |
Lists all schemas (namespace). If + is added to the command, the permission and description of each schema are listed. |
If PATTERN is specified, only schemas whose names match the pattern are shown. By default, only schemas you created are displayed. |
Lists information about all schemas whose names start with d.
|
||
\do[S] [PATTERN] |
Lists available operators with their operand and return types. |
If PATTERN is specified, only operators whose names match PATTERN are displayed. By default, only the operators created by the user are listed. |
Lists available operators with their operand and return types.
|
||
\dO[S+] [PATTERN] |
Lists collation rules. |
If PATTERN is specified, only rules whose names match PATTERN are displayed. By default, only user-created rules are shown. |
Lists collation rules.
|
||
\dp [PATTERN] |
Lists tables, views, and related permissions. The following result about \dp is displayed: rolename=xxxx/yyyy --Assigns permissions to a role. =xxxx/yyyy --Assigns permissions to public. xxxx indicates the assigned permissions, and yyyy indicates the roles with the assigned permissions. For details about permission descriptions, see Table 5. |
If PATTERN is specified, only tables and views whose names match the pattern are shown. |
Lists tables, views, and related permissions.
|
||
\drds [PATTERN1 [PATTERN2]] |
Lists all parameters that have been modified. These settings can be for roles, for databases, or for both. PATTERN1 and PATTERN2 indicate a role pattern and a database pattern, respectively. |
If PATTERN is specified, only collations rules whose names match PATTERN are displayed. If the default value is used or * is specified, all settings are listed. |
Lists all the modified configuration parameters of the database.
|
||
\dT[S+] [PATTERN] |
Lists all data types. |
If PATTERN is specified, only types whose names match PATTERN are displayed. |
Lists all data types.
|
||
\du[+] [PATTERN] |
Lists all database roles.
NOTE:
Since the concepts of "users" and "groups" have been unified into "roles", this command is now equivalent to \dg. Both commands are retained to ensure compatibility with earlier versions. |
If PATTERN is specified, only roles whose names match PATTERN are displayed. |
Lists all database roles.
|
||
\dE[S+] [PATTERN] \di[S+] [PATTERN] \ds[S+] [PATTERN] \dt[S+] [PATTERN] \dv[S+] [PATTERN] |
In this group of commands, the letters E, i, s, t, and v stand for foreign table, index, sequence, table, and view, respectively. You can specify any or a combination of these letters sequenced in any order to obtain an object list. For example, \dit lists all indexes and tables. If + is added to the end of a command name, the physical size and related description of each object are also listed. |
If PATTERN is specified, only objects whose names match PATTERN are displayed. By default, only objects you created are displayed. You can specify PATTERN or S to view other system objects. |
Lists all indexes and views.
|
||
\dx[+] [PATTERN] |
Lists installed extensions. |
If PATTERN is specified, only extensions whose names match PATTERN are displayed. |
Lists installed extensions.
|
||
\l[+] |
Lists the names, owners, character set encodings, and permissions of all the databases in the server. |
- |
List the names, owners, character set encodings, and permissions of all the databases in the server.
|
||
\sf[+] FUNCNAME |
Displays the definition of a function.
NOTE:
If the function name contains parentheses, enclose the function name with double quotation marks and add the parameter type list following the double quotation marks. Also enclose the list with parentheses. |
- |
Assume a function function_a and a function func()name. This parameter will be as follows:
|
||
\z [PATTERN] |
Lists all tables, views, and sequences in the database and their access permissions. |
If a pattern is given, it is a regular expression, and only matched tables, views, and sequences are shown. |
Lists all tables, views, and sequences in the database and their access permissions.
|
Parameter |
Description |
---|---|
r |
SELECT: allows users to read data from specified tables and views. |
w |
UPDATE: allows users to update columns for specified tables. |
a |
INSERT: allows users to insert data to specified tables. |
d |
DELETE: allows users to delete data from specified tables. |
D |
TRUNCATE: allows users to delete all data from specified tables. |
x |
REFERENCES: allows users to create a foreign key constraint (not supported in distributed mode). |
t |
TRIGGER: allows users to create a trigger on specified tables. |
X |
EXECUTE: allows users to use specified functions and the operators that are realized by the functions. |
U |
USAGE:
|
C |
CREATE:
|
c |
CONNECT: allows users to connect to specified databases. |
T |
TEMPORARY: allows users to create temporary tables. |
A |
ALTER: allows users to modify the attributes of a specified object. |
P |
DROP: allows users to delete specified objects. |
m |
COMMENT: allows users to define or modify comments of a specified object. |
i |
INDEX: allows users to create indexes on specified tables. |
v |
VACUUM: allows users to perform ANALYZE and VACUUM operations on specified tables. |
* |
Authorization options for preceding permissions. |
Parameter |
Description |
---|---|
\a |
Switches between aligned and unaligned table output formats. |
\C [STRING] |
Sets the title of any table being printed as the result of a query or unsets any such title. |
\f [STRING] |
Sets the field separator for unaligned query outputs. |
\H |
|
\pset NAME [VALUE] |
Sets options affecting the output of query result tables. For details about the value of NAME, see Table 7. |
\t [on|off] |
Switches the display of output name information and row count footer. |
\T [STRING] |
Specifies attributes to be placed within the table tag in HTML output format. If this parameter is empty, no attribute is specified. |
\x [on|off|auto] |
Switches expanded table formatting mode. |
Option |
Description |
Value Range |
---|---|---|
border |
The value must be a number. In general, the larger the number, the more borders and lines the tables will have, but this depends on the particular format. |
|
expanded (or x) |
Switches between regular and expanded formats. |
|
fieldsep |
Specifies the field separator to be used in unaligned output mode. In this way, you can create tab- or comma-separated output required by other programs. To set a tab as field separator, type \pset fieldsep '\t'. The default field separator is a vertical bar (|). |
- |
fieldsep_zero |
Sets the field separator to use in unaligned output format to a zero byte. |
- |
footer |
Switches the display of the default footer. |
- |
format |
Selects the output format. Unique abbreviations are allowed (this indicates that one letter is enough). |
Value range:
|
null |
Sets a character string to be printed in place of a null value. |
The default is to print nothing, which can be easily mistaken for an empty string. |
numericlocale |
Switches the display of a locale-aware character to separate groups of digits to the left of the decimal marker. |
If this parameter is ignored, the default separator is displayed. |
pager |
Controls the use of a pager for query and gsql help outputs. If the PAGER environment variable is set, the output is redirected to the specified program. Otherwise, the platform-dependent default value is used. |
|
recordsep |
Specifies the record separator to use in unaligned output mode. |
- |
recordsep_zero |
Sets the record separator to use in unaligned output format to a zero byte. |
- |
tableattr (or T) |
Specifies attributes to be placed inside the HTML table tag in HTML output format (such as cellpadding or bgcolor). Note that you do not need to specify border here because it has been used by \pset border. If no value is given, the table attributes do not need to be set. |
- |
title |
Sets the table title for any subsequently printed tables. This can be used to give your output descriptive tags. If no value is given, the title does not need to be set. |
- |
tuples_only (or t) |
Enables or disables the tuples-only mode. Full display may show extra information, such as column headers, titles, and various footers. In tuples-only mode, only the table data is shown. |
- |
feedback |
Specifies whether to output the number of result lines. |
- |
Parameter |
Description |
Value Range |
---|---|---|
\c[onnect] [DBNAME|- USER|- HOST|- PORT|-] |
Connects to a new database. If a database name contains more than 63 bytes, only the first 63 bytes are valid and are used for connection. However, the database name displayed in the command line of gsql is still the name before the truncation.
NOTE:
If the database login user is changed during reconnection, you need to enter the password of the new user. The maximum length of the password is 999 bytes, which is restricted by the maximum value of the GUC parameter password_max_length. |
- |
\encoding [ENCODING] |
Sets the client character set encoding. |
Without an argument, this command shows the current encoding. |
\conninfo |
Prints information about the current connected database. |
- |
Parameter |
Description |
Value Range |
---|---|---|
\cd [DIR] |
Changes the current working directory. |
An absolute path or relative path that meets the OS path naming convention |
\setenv NAME [VALUE] |
Sets the NAME environment variable to VALUE. If VALUE is not provided, do not set the environment variable. |
- |
\timing [on|off] |
Displays how long each SQL statement takes, in milliseconds. |
|
\! [COMMAND] |
Escapes to a separate Unix shell or runs a Unix command. |
- |
Parameter |
Description |
---|---|
\prompt [TEXT] NAME |
Prompts the user to use texts to specify a variable name. |
\set [NAME [VALUE]] |
Sets the NAME internal variable to VALUE. If more than one value is provided, NAME is set to the concatenation of all of them. If no second argument is given, the variable is just set with no value. Some common variables are processed differently in gsql and they are combinations of uppercase letters, numbers and underscores. Table 11 describes a list of variables that are processed in a way different from other variables. |
\unset NAME |
Deletes the variable name of gsql. |
Command |
Command Description |
Value Range |
---|---|---|
\set VERBOSITY value |
This variable can be set to default, verbose, or terse to control redundant lines of error reports. |
Value range: default, verbose, terse |
\set ON_ERROR_STOP value |
If this variable is set, the script execution stops immediately. If this script is invoked from another script, that script will be stopped immediately as well. If the outermost script is invoked using the -f option rather than from an interactive gsql session, gsql will return error code 3, indicating the difference between the current error and critical errors. (The error code for critical errors is 1.) |
Value range: on/off, true/false, yes/no, or 1/0 |
\set AUTOCOMMIT [on|off] |
Sets the auto commit behavior of the current gsql connection. on indicates that auto commit is enabled, and off indicates that auto commit is disabled. By default, the gsql connection is automatically committed, and each individual statement is implicitly committed. If auto commit is disabled for performance or other purposes, you need to explicitly run the COMMIT command to ensure that transactions are committed. For example, execute the COMMIT statement to explicitly commit transactions after a specified service SQL statement is executed. Particularly, ensure that all transactions are committed before the gsql client exits.
NOTE:
The auto commit is enabled in gsql by default. If you disable it, all the statements executed later will be packaged in implicit transactions, and you cannot execute statements that cannot be executed within transactions. |
|
\set RETRY [retry_times] |
Determines whether to enable the retry function if statement execution encounters errors. The parameter retry_times specifies the maximum number of retry times and the default value is 5. Its value ranges from 5 to 10. If the retry function has been enabled, when you run the \set RETRY command again, the retry function will be disabled. The configuration file retry_errcodes.conf shows a list of errors. If these errors occur, retry is required. This configuration file is placed in the same directory as that for executable programs. This configuration file is configured by the system rather than by users and cannot be modified by the users. The retry function can be used in the following 13 error scenarios:
If an error occurs, gsql queries connection status of all CN/DN. If the connection status is abnormal, gsql sleeps for 1 minute and tries again. In this case, the retries in most of the primary/standby switchover scenarios are involved.
NOTE:
|
Value range of retry_times: 5 to 10 |
PATTERN
The various \d commands accept a PATTERN parameter to specify the object name to be displayed. In the simplest case, PATTERN is the exact name of the object. Characters in PATTERN are usually converted to lowercase (as in SQL names), for example, \dt FOO will display a table named foo. As in SQL names, placing double quotation marks (") around a pattern prevents them being folded to lower case. If you need to include a double quotation mark (") in a pattern, write it as a pair of double quotation marks ("") within a double-quote sequence, which is in accordance with the rules for SQL quoted identifiers. For example, \dt "FOO""BAR" will be displayed as a table named FOO"BAR instead of foo"bar. You cannot put double quotation marks around just part of a pattern, which is different from the normal rules for SQL names. For example, \dt FOO"FOO"BAR will be displayed as a table named fooFOObar if just part of a pattern is quoted.
Whenever the PATTERN parameter is omitted completely, the \d commands display all objects that are visible in the current schema search path, which is equivalent to using an asterisk (*) as the pattern. An object is regarded to be visible if it can be referenced by name without explicit schema qualification. To see all objects in the database regardless of their visibility, use a dot within double quotation marks (*.*) as the pattern.
Within a pattern, the asterisk (*) matches any sequence of characters (including no characters) and a question mark (?) matches any single character. This notation is comparable to Unix shell file name patterns. For example, \dt int* displays tables whose names start with int. But within double quotation marks, the asterisk (*) and the question mark (?) lose these special meanings and are just matched literally.
A pattern that contains a dot (.) is interpreted as a schema name pattern followed by an object name pattern. For example, \dt foo*.*bar* displays all tables (whose names include bar) in schemas starting with foo. If no dot appears, then the pattern matches only visible objects in the current schema search path. Likewise, the dot within double quotation marks loses its special meaning and becomes an ordinary character.
Senior users can use regular-expression notations, such as character classes. For example [0-9] can be used to match any digit. All regular-expression special characters work as specified in POSIX. The following characters are excluded:
- A dot (.) is used as a separator.
- An asterisk (*) is translated into an asterisk prefixed with a dot (.*), which is a regular-expression marking.
- A question mark (?) is translated into a dot (.).
- A dollar sign ($) is matched literally.
You can write ?, (R+|), (R|), and R to the following pattern characters: ., R*, and R?. The dollar sign ($) does not need to be used as a regular expression character because PATTERN must match the entire name instead of being interpreted as a regular expression (in other words, $ is automatically appended to PATTERN). If you do not expect a pattern to be anchored, write an asterisk (*) at its beginning or end. All regular-expression special characters within double quotation marks lose their special meanings and are matched literally. Regular-expression special characters in operator name patterns (such as the \do parameter) are also matched literally.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot