DataGrip 2026.3 Help

Release notes

This section lists functionality added to DataGrip in the current release. To view release notes for other DataGrip versions, click the version switcher on the help site and select the version that you need.

Release notes

AI

Agentic development with JetBrains Air

DataGrip now comes with JetBrains Air by default. The chat now has database-specific features that help you run SQL, explore data, and reference database objects directly in your conversations with AI agents.

SQL snippets use the syntax highlighting and formatting settings configured in your IDE. You can copy the code or run it directly from the chat against a selected data source. After running it, you can navigate to object definitions and preview them in the Quick Definition popup.

SQL snippet in an agent chat

When an agent returns tabular data in CSV format, you can view it in the data editor right in the chat, with sorting and search available.

Data editor in an agent chat

You can also reference database objects in your prompts using @dbObject notation, with completion to help you find the object you need.

Database object reference in an agent chat

Object references appear with their icons in the chat and support the Quick Definition popup.

Quick Definition popup in an agent chat

To reduce token usage, DataGrip sends a link to each referenced object. The agent can then retrieve the information it needs through DataGrip’s MCP server.

Connectivity

Cross-database queries

You can now query data across different databases, even when they use different DBMSs, and view the results directly without copying the data beforehand.

To do this, add the Workspace data source and write your queries in its query console with Ctrl+Space code completion and a special syntax. This data source is based on DuckDB and runs in memory by default, so it does not require a database file.

The Workspace data source settings

To add this data source, click the Add icon Add on the Database Explorer toolbar and select the Workspace Data Source icon Workspace Data Source.

The Workspace data source settings

In the default query console that opens automatically, use the following syntax to write your queries:

  • To reference a table directly, specify its data source and table name. Add the database and schema when needed:

    #data_source[.database.schema].table
  • To filter a table, add #filter(...) to the reference:

    #data_source[.database.schema].table.#filter('condition')
  • You can also use #query(...) to run a query against a data source:

    #data_source[.database.schema].#query('query')

In #filter(...) and #query(...), you can use $$...$$ dollar-quoted strings instead of single quotes: #filter($$condition$$) and #query($$query$$).

Type # to select a data source using code completion.

For example, join data from PostgreSQL and MySQL data sources:

SELECT c.first_name, c.last_name, p.amount FROM #PostgreSQL.guest.public.customer c JOIN #MySQL.sakila.payment p ON c.customer_id = p.customer_id;
Example of a cross-database query joining data from PostgreSQL and MySQL data sources

DuckDB support

DataGrip now offers full support for DuckDB, including a dedicated SQL dialect, DuckDB-specific syntax and functions, code completion, and database object introspection.

To add a DuckDB data source, click Add on the Database Explorer toolbar and select Data Source | DuckDB.

Select DuckDB from the list of data sources

Three connection types are available: default, In-memory, and URL only. The default option connects to a DuckDB database file specified by its path. In-memory creates a database in memory, while URL only uses the JDBC URL you provide as is.

Data source settings

Database connections disabled in untrusted projects

DataGrip now asks you to trust an untrusted project before connecting to a database. This also applies when you click Test Connection in the Data Sources and Drivers.

Connecting to a database can execute potentially malicious code, for example, if the connection URL, startup scripts, or driver files have been tampered with. The dialog explains this risk and lets you trust the project to proceed or stay in safe mode, where database connections are disabled.

The permission dialog in an untrusted project

UI and UX improvements

New Database Output tool window

We’ve moved query results from Services to the new Database Output tool window. Like Services, it opens automatically at the bottom of the IDE when you run a query, a run configuration, or an SQL file.

To show or hide the tool window, click More tool windows on the toolbar in the window header and select Database Output. Alternatively, press Alt+8.

The header combines the session client selector with the Output, Query Plan, and Result tabs. By default, the contents of the tool window follow the active editor tab, showing the corresponding output, query plans, and query results.

Database Output tool window

The session client tree is now in a dropdown on the right side of the toolbar. Session management remains available in the Services tool window. To open session details for the selected client, select Manage sessions from the client dropdown.

The session client tree in the Database Output tool window

To switch back to the Services tool window, open the main Settings dialog and navigate to Database | Query Execution | Output and Results. In Show results in, select Services tool window.

Updated tool window bar and shortcuts

We’ve updated the tool window bar in the window header to include icons for Database Explorer, Database Output, Files tool window, and Agent Sessions.

The default tool window shortcuts have changed:

  • Agent Sessions now uses Alt+2, previously assigned to Files tool window.

  • Files tool window now uses Alt+4, previously assigned to Run.

  • Run no longer has a default shortcut.

You can customize these shortcuts at any time in Settings | Keymap.

Default tool window bar in  DataGrip

Working with data

Ability to open result sets in editor tabs

You can now open query results in separate editor tabs to work with them in the main editor area without resizing tool windows or rearranging your layout.

For result sets in the Database Output tool window, use the new Open in Editor Tab action:

The button on the Database Output tool window toolbar

The same action is also available for in-editor results:

The button on the in-editor result set toolbar

In both cases, the result set opens in a separate tab in the main editor area:

The result set in a separate tab

New SQL action for result sets

We’ve added an SQL action that opens a popup with the query that produced the result set. From the popup toolbar, you can run the query again, copy it to the clipboard, or navigate to it in the editor.

Dialog with the original query

Ability to pin columns in the data editor

Now you can pin columns to the left side of the data editor. This keeps important data visible when you scroll horizontally through wide tables.

To pin one or more columns, select them, right-click on the header, and select Pin Column or Pin Columns. You can also select Pin Columns Up to Here to pin all columns up to the one you have selected.

Pinning columns in the data editor

A blue divider separates the pinned columns from the remaining ones, which you can scroll through horizontally.

Pinned columns and a horizontal scroll bar for the remaining columns

To unpin columns, right-click a header and select Unpin Column, Unpin Columns, or Unpin All Columns.

Unpinning columns in the data editor

Pinning actions are unavailable if the pinned section would take up too much horizontal space, leaving insufficient room to scroll the remaining columns.

Automatic column sizing in the data editor

You can now automatically resize columns to fit the available width of the data editor.

To do this, right-click a column header and select Fit Columns to Window. To restore the default widths, select Reset Columns Width from the same context menu

Fit columns to the editor width

New Manage Columns popup

We’ve redesigned the column list to make it easier to work with wide tables and query results. The new Manage Columns popup replaces the old Show Column List popup and lets you find columns, select the ones to display, and adjust their order in one place.

To open it, click Manage Columns on the data editor toolbar or press Ctrl+F12. Alternatively, right-click a column header and select Manage Columns. An indicator on the toolbar icon shows when some columns are hidden.

Open the Manage Columns popup

In the popup, you can:

  • Search for columns by name and show or hide all matching columns at once.

  • Show or hide individual columns using the checkboxes, or press Space to toggle the visibility of selected columns.

  • Drag column names to change their order in the grid. Alternatively, select a column and press Alt+Up or Alt+Down.

  • Right-click columns to pin or unpin them, copy their names and data types, or restore the original column order.

  • Press Enter or double-click a column to close the popup and navigate to it in the grid. If the column is hidden, DataGrip makes it visible.

Each column’s data type appears next to its name, and pinned columns are grouped at the top of the list. Changes to column order and pinning are immediately reflected in the grid.

The Manage Columns popup and context menu

Query consoles

Improved transaction control in query consoles

We’ve improved how DataGrip tracks and displays the transaction state in Manual mode on the editor toolbar.

  • Transaction control statements

    When you execute COMMIT or ROLLBACK in the query console, the COMMIT and ROLLBACK buttons now become disabled, same as they do when you commit or roll back a transaction using the toolbar. This works in PostgreSQL, Greenplum, MySQL, MariaDB, and Oracle. This update also covers END, ABORT, and AND CHAIN variants where supported by the DBMS. In Oracle, DataGrip also tracks implicit commits caused by DDL statements.

  • Fixes for COMMIT, ROLLBACK, and savepoint statements

    We've fixed several issues with COMMIT, ROLLBACK, and savepoint statements that you run yourself in the query console. In PostgreSQL, statements that follow COMMIT or ROLLBACK no longer fail, and your own savepoints now work as expected. SAVEPOINT and RELEASE SAVEPOINT also no longer trigger introspection.

  • Consistent state across consoles

    Query console that share a session now display the same transaction state. You can commit or roll back the transaction from any of them.

  • Correct initial button state

    The Commit and Rollback buttons no longer incorrectly appear active after you start the IDE or open a new console.

  • Updated defaults for automatic savepoints

    After a failed statement, PostgreSQL rejects all further statements in the transaction. In order to let you continue, DataGrip can create an unnamed savepoint before each statement and roll back to it if the statement fails. Databases outside the PostgreSQL family do not need this, so the behavior is now disabled by default for them, and the IDE no longer sends unnecessary SAVEPOINT statements.

    To change this behavior, toggle the Automatically roll back a failed statement to an unnamed savepoint option on the Advanced tab of the Data Sources and Drivers dialog.

Consistent transactions state across query consoles attached to the same session

Known limitations:

  • In MySQL and MariaDB, DataGrip does not yet track implicit commits caused by DDL statements.

  • In other DBMSs, such as Microsoft SQL Server, executing transaction control statements does not update the Commit and Rollback buttons.

  • When you use Execute Selection as Single Statement, DataGrip cannot determine how the selection affects the transaction state, so the Commit and Rollback buttons remain active.

Database support

Support for MariaDB sequences and packages

DataGrip now recognizes MariaDB sequences and displays them in a dedicated sequences group under the schema node in the Database Explorer. Previously, they appeared as tables.

MariaDB sequences in Database Explorer

We’ve also added initial support for MariaDB packages. DataGrip now introspects packages and their bodies, displays them correctly in the Database Explorer, and loads their source code. You can generate their DDL, drop them, and refresh individual packages.

MariaDB packages in Database Explorer

In the code editor, we've improved support for package syntax, including:

  • IF NOT EXISTS clauses in CREATE PACKAGE and CREATE PACKAGE BODY statements.

  • RECORD, REF CURSOR, and associative array (TABLE OF … INDEX BY) type declarations.

  • User-defined types for variables, routine parameters, and return types.

  • Forward routine declarations in package bodies.

  • CONDITION FOR SQLSTATE declarations.

DataGrip also recognizes the package syntax of the default sql_mode (SQL/PSM).

This initial support has a few limitations:

  • Some package code may still show false syntax errors or unresolved references.

  • The database explorer does not show package members, such as routines and types.

  • Navigation between a package and its body is not yet possible.

PostgreSQL 19 support

We’ve added support for PostgreSQL 19. DataGrip now recognizes the following syntax:

  • INSERT ... ON CONFLICT DO SELECT ... RETURNING for returning an existing row when an insert encounters a conflict.

  • WAIT FOR LSN for waiting until write-ahead log processing reaches a specified log sequence number.

  • The EXCEPT clause in CREATE PUBLICATION for excluding specific tables from a publication.

We’ve also updated DataGrip’s minicatalogs to include new functions in PostgreSQL 19.

04 November 2026