Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions databases/dynamodb.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ Any other action name is refused. Autocomplete inserts a template for the common

## Creating and changing tables

**New Table…** opens a form rather than a column grid: the partition and sort key with their types, on-demand or provisioned capacity, the table class, deletion protection, up to 20 global and 5 local secondary indexes. **Preview** shows the `CreateTable` request it will send. A local secondary index can only be defined here, when the table is created. The new table opens empty until DynamoDB finishes creating it.
**New Table…** opens a form rather than a column grid: the partition and sort key with their types, on-demand or provisioned capacity, the table class, deletion protection, up to 20 global and 5 local secondary indexes. The **DDL** tab beside **Form** shows the `CreateTable` request it will send. A local secondary index can only be defined here, when the table is created. The new table opens empty until DynamoDB finishes creating it.

<Frame caption="Preview shows the request before Create Table sends it">
<Frame caption="DDL shows the request before Create Table sends it">
<img className="block dark:hidden" src="/images/dynamodb-create-table.png" alt="Create Table form with Primary Key, Capacity, Settings and secondary index sections" />
<img className="hidden dark:block" src="/images/dynamodb-create-table-dark.png" alt="Create Table form with Primary Key, Capacity, Settings and secondary index sections" />
</Frame>
Expand Down
2 changes: 1 addition & 1 deletion databases/mariadb.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Any other **Authentication** refuses an account `IDENTIFIED VIA gssapi` with `Th
- MariaDB stores JSON in a LONGTEXT column. The driver reads MariaDB's extended field attributes and types those columns as JSON, so their values open in the JSON editor instead of as plain text.
- Virtual and persistent columns are detected on every version, including the bare `VIRTUAL` and `PERSISTENT` spelling that 10.1 and older report, and are left out of generated INSERT and UPDATE statements.
- A query timeout goes in as `SET SESSION max_statement_time`, counted in seconds. MySQL takes `max_execution_time` in milliseconds.
- 10.2.1 to 10.2.21 and 10.3.0 to 10.3.9 enforce check constraints without publishing an `information_schema.CHECK_CONSTRAINTS` to read them from. The [Constraints tab](/features/table-structure#constraints-tab) takes them out of `SHOW CREATE TABLE` on those releases and out of the catalog everywhere else.
- 10.2.1 to 10.2.21 and 10.3.0 to 10.3.9 enforce check constraints without publishing an `information_schema.CHECK_CONSTRAINTS` to read them from. The [Check Constraints section](/features/table-structure#check-constraints) takes them out of `SHOW CREATE TABLE` on those releases and out of the catalog everywhere else.
- Sequences appear in the sidebar's **Sequences** section, read-only, with **Drop Sequence** on the menu. See [Sequences](/features/table-operations#sequences).
- A table declared `WITH SYSTEM VERSIONING` is listed as an ordinary table and loses **Truncate** alone, which the server refuses with error 4137.
- A temporary table shadowing a base table of the same name is left out of the listing, so the name appears once.
Expand Down
6 changes: 3 additions & 3 deletions databases/mongodb.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,11 @@ Once set, the value renders as `LegacyJavaUUID("…")` and reads that way everyw

## Creating a collection

Choose **Database > New Table…**. Each row of the grid is a field, and its type is one of the BSON types in the list: `objectId`, `string`, `int`, `long`, `double`, `decimal`, `date`, `bool`, `array`, `object` and the rest. **Create Table** turns the rows into a `$jsonSchema` validator and runs `db.createCollection("articles", {"validator": …})`, which **SQL Preview** shows first.
Choose **Database > New Table…**. Each row of the grid is a field, and its type is one of the BSON types in the list: `objectId`, `string`, `int`, `long`, `double`, `decimal`, `date`, `bool`, `array`, `object` and the rest. **Create Table** turns the rows into a `$jsonSchema` validator and runs `db.createCollection("articles", {"validator": …})`, which the **DDL** tab shows first.

<Frame caption="Nullable fields also accept null; NOT NULL ones go in required">
<img className="block dark:hidden" src="/images/mongodb-create-collection.png" alt="SQL Preview tab of Create Table showing db.createCollection for articles with a $jsonSchema listing _id, title, tags, date and schemaVersion" />
<img className="hidden dark:block" src="/images/mongodb-create-collection-dark.png" alt="SQL Preview tab of Create Table showing db.createCollection for articles with a $jsonSchema listing _id, title, tags, date and schemaVersion" />
<img className="block dark:hidden" src="/images/mongodb-create-collection.png" alt="DDL tab of Create Table showing db.createCollection for articles with a $jsonSchema listing _id, title, tags, date and schemaVersion" />
<img className="hidden dark:block" src="/images/mongodb-create-collection-dark.png" alt="DDL tab of Create Table showing db.createCollection for articles with a $jsonSchema listing _id, title, tags, date and schemaVersion" />
</Frame>

| Row | Becomes |
Expand Down
4 changes: 2 additions & 2 deletions databases/postgresql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ A view's definition is rebuilt to run anywhere. Every table it reads is schema-q

`REFRESH MATERIALIZED VIEW` runs from **Refresh Materialized View…**. A plain refresh holds an `ACCESS EXCLUSIVE` lock, so nothing reads the view until it finishes. **Refresh concurrently** takes `EXCLUSIVE` instead and leaves readers working, and PostgreSQL accepts it only for a populated view with a valid unique index on plain columns, no `WHERE` clause and no expressions; a partial or expression index does not qualify. The refresh runs on its own connection, outside any transaction a query editor holds open. Refreshing needs ownership of the view, or the `MAINTAIN` privilege from PostgreSQL 17.

**Edit Comment…** writes `COMMENT ON`, picking `TABLE`, `VIEW`, `MATERIALIZED VIEW` or `FOREIGN TABLE` to match the object. Column comments are written from the Columns tab as `COMMENT ON COLUMN`. Clearing the field writes `IS NULL`, which removes the comment. Only the object's owner may comment on it.
**Edit Comment…** writes `COMMENT ON`, picking `TABLE`, `VIEW`, `MATERIALIZED VIEW` or `FOREIGN TABLE` to match the object. Column comments are written from the Columns section as `COMMENT ON COLUMN`. Clearing the field writes `IS NULL`, which removes the comment. Only the object's owner may comment on it.

An SQL export writes those statements back for tables, views and materialized views, so a dump and a restore keep their comments. See [Import & Export](/features/import-export).

Expand All @@ -161,7 +161,7 @@ PostgreSQL refuses `INSERT`, `UPDATE` and `DELETE` on a materialized view, so it

## Invalid indexes

A `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` that fails or is cancelled leaves an invalid index on the table. The **Indexes** tab names it, and exports leave it out as `pg_dump` does. [Table Structure](/features/table-structure#invalid-indexes) covers dropping or rebuilding it.
A `CREATE INDEX CONCURRENTLY` or `REINDEX CONCURRENTLY` that fails or is cancelled leaves an invalid index on the table. The **Indexes** section names it, and exports leave it out as `pg_dump` does. [Table Structure](/features/table-structure#invalid-indexes) covers dropping or rebuilding it.

## Cross-database tabs

Expand Down
2 changes: 1 addition & 1 deletion databases/teradata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Test TLS on **Required (skip verify)** rather than **Preferred**, or a failed ha

## Limitations

- Foreign keys are never listed. The Structure tab's Foreign Keys view stays empty for Teradata; read the constraints from its DDL view instead.
- Foreign keys are never listed. The Structure tab's Foreign Keys section stays empty for Teradata; read the constraints from its DDL tab instead.
- Macros and stored procedures are not in the sidebar. Query them from the editor.
- LDAP, Kerberos, and JWT logon fail before the connect is attempted. Use `TD2` or `TDNEGO`.
- The TLS port is fixed at `443`.
Expand Down
2 changes: 1 addition & 1 deletion databases/trino.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ Click the Explain dropdown in the query editor to choose:

## Limitations

- No primary keys, indexes, or foreign keys are reported. The Structure tab's Indexes view is always empty.
- No primary keys, indexes, or foreign keys are reported. The Structure tab's Indexes section is always empty.
- Import is not available. Export works; see [Import and Export](/features/import-export).
- Kerberos and OAuth 2.0 authentication are not supported.
- Neither a connection's **Query timeout** override nor the inherited [global
Expand Down
2 changes: 1 addition & 1 deletion features/change-tracking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Such a statement is held to the other end too. Finding fewer rows than it was wr

Where a count cannot hold a statement to its row, the row is looked up right before the statement runs instead: on ClickHouse, Snowflake and Trino for every edit and delete, and on Dameng for a table without a primary key. Finding no row, or more than the change was made on, stops the save before anything is written and keeps the queue. A ClickHouse statement is also limited to the data part its row was found in, and the row is checked after it runs. See [ClickHouse](/databases/clickhouse#running-queries).

There is no discard button. Undo the edits, or take the **Discard Unsaved Changes?** prompt that appears when you refresh, sort, filter, change page, or close the tab with edits pending.
To drop the whole queue, choose **File > Discard Changes…** and confirm; a staged truncate or drop goes with it. Undoing the edits clears them too, and so does the **Discard Unsaved Changes?** prompt that appears when you refresh, sort, filter, change page, or close the tab with edits pending.

## Previewing the SQL

Expand Down
2 changes: 1 addition & 1 deletion features/json-viewer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ The text box, the JSON editor and the map each carry a drag handle under them, w

Every field carries a menu at its trailing edge, and right-clicking the field opens the same one. **Set NULL**, **Set DEFAULT**, **Set EMPTY**, **Generate UUID**, **Generate UUIDv7** and **SQL Functions** need an editable field and appear only where the column takes them, as in [Set Value](/features/change-tracking#editing-a-cell); `Ctrl+Option+N` and `Ctrl+Option+D` set NULL and DEFAULT from the keyboard. **Copy Value** is always there, and a read-only field keeps its text selectable.

With no row selected, the inspector describes the table the tab is bound to: data, index and total size, row count, average row size, engine, collation, and creation and update dates, as far as the database reports them. A tab with no table of its own, such as a query, leaves it empty. On a Structure tab it follows the structure grid and names the selected column.
With no row selected, the inspector describes the table the tab is bound to: data, index and total size, row count, average row size, engine, collation, and creation and update dates, as far as the database reports them. A tab with no table of its own, such as a query, leaves it empty. On a Structure tab it edits the selected column, index, foreign key or check constraint as a form, and with nothing selected puts the table's comment and options ahead of these figures. See [Table Structure](/features/table-structure#the-inspector).

### Geometry fields

Expand Down
1 change: 1 addition & 0 deletions features/keyboard-shortcuts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ Every row except the five find rows is built into the editor and cannot be rebou
| Preview FK reference | `Space` |
| Include or leave out the selected rows (Compare & Sync) | `Space` |
| Commit changes | `Cmd+S` |
| Discard changes (**File > Discard Changes…**) | none |
| Undo change | `Cmd+Z` |
| Redo change | `Cmd+Shift+Z` |

Expand Down
2 changes: 1 addition & 1 deletion features/table-operations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ Click **+** at the foot of the sidebar and choose **New View…** to write a new

A materialized view holds stored rows, so refreshing it is a server operation. Right-click one and choose **Refresh Materialized View…**, or use **Database > Refresh Materialized View…**. The confirmation names the view and warns that other sessions cannot read it while the refresh runs. **Refresh concurrently** leaves readers alone; it is available on PostgreSQL for a view that has been populated and carries a unique index on plain columns with no `WHERE` clause, and the alert says which of the two is missing when it is dimmed. Tabs showing the view reload when the refresh finishes. A plain view stores nothing, so `Cmd+R` re-runs its query instead.

Comments are edited per object. Right-click a table or view and choose **Edit Comment…**, or type in the **Comment** field at the top of its [Structure tab](/features/table-structure#table-comment); saving an empty field removes the comment. Column comments live in the [Columns tab](/features/table-structure#columns-tab).
Comments are edited per object. Right-click a table or view and choose **Edit Comment…**, or open its Structure view with nothing selected and type in the inspector's [**Comment**](/features/table-structure#table-comment) field; saving an empty field removes the comment. Column comments live in the [Columns section](/features/table-structure#columns).

| Engine | Comments on |
|--------|-------------|
Expand Down
Loading
Loading