> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firebolt.io/llms.txt
> Use this file to discover all available pages before exploring further.

> Use this reference to list every Firebolt engine setting, its current value, and its default using the Postgres-compatible pg_catalog.pg_settings view.

# pg_settings

<span className="feature-tag">Nightly Feature</span>

You can use the `pg_catalog.pg_settings` view to list every setting the engine defines, together with its current value, its default, its type, and its description. Firebolt provides it for compatibility with Postgres clients and tools that read `pg_settings` to discover engine configuration.

```sql theme={"theme":{"light":"css-variables","dark":"css-variables"}}
SELECT
  *
FROM
  pg_catalog.pg_settings;
```

Most of these settings are internal settings. Their names and defaults change between releases, and some exist only to gate work in progress. Read them to understand what an engine is doing, but do not build on them. The public settings, meaning the ones Firebolt documents, supports, and keeps stable, are listed in [System settings](/reference-sql/system-settings), and [information\_schema.settings](/reference-sql/information-schema/settings) reports that set with these same columns.

[SHOW ALL](/reference-sql/commands/metadata/show-all) is a three-column projection of this view, so it covers the same settings.

The `setting` column holds the value in effect for the query that reads the view, so a value changed with `SET` earlier in the session is reflected there, while `boot_val` and `reset_val` keep reporting the default.

Any setting this view reports can also be read one at a time, by name, with `current_setting`:

```sql theme={"theme":{"light":"css-variables","dark":"css-variables"}}
SELECT
  current_setting('max_result_rows');
```

Custom settings, meaning names the engine does not define, are not listed, and `current_setting` does not read them either.

## Columns

Each row describes one setting. Columns that Firebolt does not populate are always `NULL`; they exist so that Postgres clients find the shape they expect.

| Column Name      | Data Type   | Description                                                                                                                                                                                                                                                       |
| :--------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name             | TEXT        | Name of the setting.                                                                                                                                                                                                                                              |
| setting          | TEXT        | Current value of the setting, as text.                                                                                                                                                                                                                            |
| unit             | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| category         | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| short\_desc      | TEXT        | Description of the setting.                                                                                                                                                                                                                                       |
| extra\_desc      | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| context          | TEXT        | Always `user`. Every listed setting can be changed for a session or a single query.                                                                                                                                                                               |
| vartype          | TEXT        | SQL type of the setting value: `boolean`, `bigint`, `real`, or `text`. A setting that only accepts a fixed set of names reports `enum`, and `enumvals` lists those names.                                                                                         |
| source           | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| min\_val         | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| max\_val         | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| enumvals         | ARRAY(TEXT) | Every value a setting with `vartype` `enum` accepts, in the order the engine declares them. `NULL` for all other settings. A few settings accept any comma-separated combination of the listed values rather than exactly one of them; their description says so. |
| boot\_val        | TEXT        | Default value of the setting, as text.                                                                                                                                                                                                                            |
| reset\_val       | TEXT        | Default value of the setting, as text.                                                                                                                                                                                                                            |
| sourcefile       | TEXT        | Always `NULL`.                                                                                                                                                                                                                                                    |
| sourceline       | INTEGER     | Always `NULL`.                                                                                                                                                                                                                                                    |
| pending\_restart | BOOLEAN     | Always `false`. Settings take effect immediately.                                                                                                                                                                                                                 |

## Example

Look up specific settings and compare their current values against the defaults:

```sql theme={"theme":{"light":"css-variables","dark":"css-variables"}}
SELECT
  name,
  setting,
  boot_val,
  vartype
FROM
  pg_catalog.pg_settings
WHERE
  name IN ('enable_result_cache', 'insert_sharding', 'max_result_rows')
ORDER BY
  name;
```

| name                  | setting | boot\_val | vartype |
| :-------------------- | :------ | :-------- | :------ |
| enable\_result\_cache | true    | true      | boolean |
| insert\_sharding      | auto    | auto      | enum    |
| max\_result\_rows     | 0       | 0         | bigint  |

A name that returns a row here but no row from `information_schema.settings` is an internal setting, so treat it as an implementation detail rather than an interface.
