# SHOW (session settings)

The `SHOW` statement can display the value of either one or all of the session setting variables. Some of these can also be configured via `SET`.

## Required privileges

No privileges are required to display the session settings.

## Synopsis

Note:
The `SHOW` statement for session settings is unrelated to the other `SHOW` statements: `SHOW CLUSTER SETTING`, `SHOW CREATE`, `SHOW USERS`, `SHOW DATABASES`, `SHOW COLUMNS`, `SHOW GRANTS`, and `SHOW CONSTRAINTS`.

## Parameters

The `SHOW <session variable>` statement accepts a single parameter: the variable name.

The variable name is case insensitive. It may be enclosed in double quotes; this is useful if the variable name itself contains spaces.

### Supported variables

Variable name | Description | Initial value | Modify with `SET` ? | View with `SHOW` ?
`application_name` | The current application name for statistics collection. | Empty string, or `cockroach` for sessions from the built-in SQL client. | Yes | Yes
`bytea_output` | The mode for conversions from `STRING` to `BYTES`. | hex | Yes | Yes
`crdb_version` | The version of CockroachDB. | `CockroachDB OSS version` | No | Yes
`database` | The current database. | Database in connection string, or empty if not specified. | Yes | Yes
`default_int_size` | The size, in bytes, of an `INT` type. | `8` | Yes | Yes
`default_transaction_isolation` | All transactions execute with `SERIALIZABLE` isolation. See Transactions: Isolation levels. | `SERIALIZABLE` | No | Yes
`default_transaction_read_only` | The default transaction access mode for the current session. If set to `on`, only read operations are allowed in transactions in the current session; if set to `off`, both read and write operations are allowed. See `SET TRANSACTION` for more details. | `off` | Yes | Yes
`distsql` | The query distribution mode for the session. By default, CockroachDB determines which queries are faster to execute if distributed across multiple nodes, and all other queries are run through the gateway node. | `auto` | Yes | Yes
`enable_implicit_select_for_update` | New in v20.1: Indicates whether `UPDATE` statements acquire locks using the `FOR UPDATE` locking mode during their initial row scan, which improves performance for contended workloads. For more information about how `FOR UPDATE` locking works, see the documentation for `SELECT FOR UPDATE`. | `on` | Yes | Yes
`enable_insert_fast_path` | Indicates whether CockroachDB will use a specialized execution operator for inserting into a table. We recommend leaving this setting `on`. | `on` | Yes | Yes
`enable_zigzag_join` | Indicates whether the cost-based optimizer will plan certain queries using a zig-zag merge join algorithm, which searches for the desired intersection by jumping back and forth between the indexes based on the fact that after constraining indexes, they share an ordering. | `on` | Yes | Yes
`extra_float_digits` | The number of digits displayed for floating-point values. Only values between `-15` and `3` are supported. | `0` | Yes | Yes
`reorder_joins_limit` | Maximum number of joins that the optimizer will attempt to reorder when searching for an optimal query execution plan. For more information, see Join reordering. | `4` | Yes | Yes
`force_savepoint_restart` | When set to `true`, allows the `SAVEPOINT` statement to accept any name for a savepoint. | `off` | Yes | Yes
`locality` | The location of the node. For more information, see Locality. | Node-dependent | No | Yes
`node_id` | The ID of the node currently connected to. This variable is particularly useful for verifying load balanced connections. | Node-dependent | No | Yes
`optimizer_foreign_keys` | New in v20.1: If `off`, disables optimizer-driven foreign key checks. | `on` | Yes | Yes
`results_buffer_size` | The default size of the buffer that accumulates results for a statement or a batch of statements before they are sent to the client. This can also be set for all connections using the 'sql.defaults.results_buffer_size' cluster setting. Note that auto-retries generally only happen while no results have been delivered to the client, so reducing this size can increase the number of retriable errors a client receives. On the other hand, increasing the buffer size can increase the delay until the client receives the first result row. Setting to 0 disables any buffering. | `16384` | Yes | Yes
`require_explicit_primary_keys` | New in v20.1: If `on`, CockroachDB throws on error for all tables created without an explicit primary key defined. | `off` | Yes | Yes
`search_path` | A list of schemas that will be searched to resolve unqualified table or function names. For more details, see SQL name resolution. | `public` | Yes | Yes
`server_version` | The version of PostgreSQL that CockroachDB emulates. | Version-dependent | No | Yes
`server_version_num` | The version of PostgreSQL that CockroachDB emulates. | Version-dependent | Yes | Yes
`session_id` | The ID of the current session. | Session-dependent | No | Yes
`session_user` | The user connected for the current session. | User in connection string | No | Yes
`sql_safe_updates` | If `false`, potentially unsafe SQL statements are allowed, including `DROP` of a non-empty database and all dependent objects, `DELETE` without a `WHERE` clause, `UPDATE` without a `WHERE` clause, and `ALTER TABLE .. DROP COLUMN`. See Allow Potentially Unsafe SQL Statements for more details. | `true` for interactive sessions from the built-in SQL client, `false` for sessions from other clients | Yes | Yes
`statement_timeout` | The amount of time a statement can run before being stopped. This value can be an `int` (e.g., `10`) and will be interpreted as milliseconds. It can also be an interval or string argument, where the string can be parsed as a valid interval (e.g., `'4s'`). A value of `0` turns it off. | `0s` | Yes | Yes
`timezone` | The default time zone for the current session. This session variable was named `"time zone"` (with a space) in CockroachDB 1.x. It has been renamed for compatibility with PostgreSQL. | `UTC` | Yes | Yes
`tracing` | The trace recording state. | `off` |  | Yes
`transaction_isolation` | All transactions execute with `SERIALIZABLE` isolation. See Transactions: Isolation levels. This session variable was called `transaction isolation level` (with spaces) in CockroachDB 1.x. It has been renamed for compatibility with PostgreSQL. | `SERIALIZABLE` | No | Yes
`transaction_priority` | The priority of the current transaction. See Transactions: Transaction priorities for more details. This session variable was called `transaction priority` (with a space) in CockroachDB 1.x. It has been renamed for compatibility with PostgreSQL. | `NORMAL` | Yes | Yes
`transaction_read_only` | The access mode of the current transaction. See Set Transaction for more details. | `off` | Yes | Yes
`transaction_status` | The state of the current transaction. See Transactions for more details. This session variable was called `transaction status` (with a space) in CockroachDB 1.x. It has been renamed for compatibility with PostgreSQL. | `NoTxn` | No | Yes
`vectorize` | The vectorized execution engine mode. Options include `auto`, `on`, and `off`. For more details, see Configuring vectorized execution for CockroachDB. | `auto` | Yes | Yes
`vectorize_row_count_threshold` | The minimum number of rows required to use the vectorized engine to execute a query plan. | `1000` | Yes | Yes
`client_encoding` | (Reserved; exposed only for ORM compatibility.) | `UTF8` | No | Yes
`client_min_messages` | (Reserved; exposed only for ORM compatibility.) | `notice` | No | Yes
`datestyle` | (Reserved; exposed only for ORM compatibility.) | `ISO` | No | Yes
`default_tablespace` | (Reserved; exposed only for ORM compatibility.) | `` | No | Yes
`idle_in_transaction_session_timeout` | (Reserved; exposed only for ORM compatibility.) | `0` | No | Yes
`integer_datetimes` | (Reserved; exposed only for ORM compatibility.) | `on` | No | Yes
`intervalstyle` | (Reserved; exposed only for ORM compatibility.) | `postgres` | No | Yes
`lock_timeout` | (Reserved; exposed only for ORM compatibility.) | `0` | No | Yes
`max_identifier_length` | (Reserved; exposed only for ORM compatibility.) | `128` | No | Yes
`max_index_keys` | (Reserved; exposed only for ORM compatibility.) | `32` | No | Yes
`row_security` | (Reserved; exposed only for ORM compatibility.) | `off` | No | Yes
`standard_conforming_strings` | (Reserved; exposed only for ORM compatibility.) | `on` | No | Yes
`server_encoding` | (Reserved; exposed only for ORM compatibility.) | `UTF8` | Yes | Yes
`synchronize_seqscans` | (Reserved; exposed only for ORM compatibility.) | `on` | No | Yes

For session variables on experimental features, see Experimental Features.

Special syntax cases supported for compatibility:

Syntax | Equivalent to
--- | ---
`SHOW TRANSACTION PRIORITY` | `SHOW "transaction priority"`
`SHOW TRANSACTION ISOLATION LEVEL` | `SHOW "transaction isolation level"`
`SHOW TIME ZONE` | `SHOW "timezone"`
`SHOW TRANSACTION STATUS` | `SHOW "transaction status"`

## Examples

### Showing the value of a single session variable

    > SHOW DATABASE;

      database
    +----------+
      movr
    (1 row)

### Showing the value of all session variables

    > SHOW ALL;

                      variable                 |                                                      value
    -------------------------------------------+------------------------------------------------------------------------------------------------------------------
      application_name                         | $ cockroach demo
      bytea_output                             | hex
      client_encoding                          | UTF8
      client_min_messages                      | notice
      crdb_version                             | CockroachDB OSS v20.1.0
      database                                 | movr
      datestyle                                | ISO, MDY
      default_int_size                         | 8
      default_tablespace                       |
      default_transaction_isolation            | serializable
      default_transaction_read_only            | off
      distsql                                  | auto
      enable_implicit_select_for_update        | on
      enable_insert_fast_path                  | on
      enable_zigzag_join                       | on
      experimental_enable_hash_sharded_indexes | off
      experimental_enable_temp_tables          | off
      experimental_serial_normalization        | rowid
      extra_float_digits                       | 2
      force_savepoint_restart                  | off
      idle_in_transaction_session_timeout      | 0
      integer_datetimes                        | on
      intervalstyle                            | postgres
      locality                                 | region=us-east1,az=b
      lock_timeout                             | 0
      max_identifier_length                    | 128
      max_index_keys                           | 32
      node_id                                  | 1
      optimizer                                | on
      optimizer_foreign_keys                   | on
      reorder_joins_limit                      | 4
      require_explicit_primary_keys            | off
      results_buffer_size                      | 16384
      row_security                             | off
      search_path                              | public
      server_encoding                          | UTF8
      server_version                           | 9.5.0
      server_version_num                       | 90500
      session_id                               | 16016feed4d6ae800000000000000001
      session_user                             | root
      sql_safe_updates                         | on
      standard_conforming_strings              | on
      statement_timeout                        | 0
      synchronize_seqscans                     | on
      timezone                                 | UTC
      tracing                                  | off
      transaction_isolation                    | serializable
      transaction_priority                     | normal
      transaction_read_only                    | off
      transaction_status                       | NoTxn
      vectorize                                | auto
      vectorize_row_count_threshold            | 1000
    (52 rows)

## See also

- `SET` (session variable)
- Transactions, including Priority levels
- `SHOW CLUSTER SETTING`
- `SHOW COLUMNS`
- `SHOW CONSTRAINTS`
- `SHOW CREATE`
- `SHOW DATABASES`
- `SHOW GRANTS`
- `SHOW INDEX`
- `SHOW USERS`