What's New in DataGrip 2023.1

DataGrip 2023.1 is here! This release cycle is very special – it’s all about quality, which means we have been resolving the bugs that have accumulated in our public issue tracker. Let’s take a look at what we’ve managed to fix!

Working with code

  • DBE-4469: We fixed the problem where SQL Formatter didn’t apply the right style for a subquery in the EXISTS clause. Now it works as expected.

DataGrip can also add a space between the EXISTS keyword and the left parenthesis which can be toggled with a new setting. If you want to preserve the old Formatter behavior (without the space), you can change the Space after keyword setting to No in Preferences | Editor | Code Style | SQL (Queries tab).

  • DBE-14440: We fixed the bug with saving style settings. If you have configured a special style for SQL2016 and the Inherit general SQL style checkbox in Preferences is not enabled, then you will need to reconfigure it.

  • DBE-15973 BigQuery: The WINDOW clause is now supported.
  • DBE-9219 ClickHouse: Сase settings when completing exact-case names are now ignored.
  • DBE-14796 MySQL: Problems with LAG and LEAD functions have been fixed.
  • DBE-16311 MySQL: FOR UPDATE in nested queries is now supported.
  • DBE-12139 MySQL: The ENCRYPTION syntax is now supported.
  • DBE-13186 Microsoft SQL Server: Inspections no longer erroneously report extra code.
  • DBE-11946 PostgreSQL: The issue with Place constraints was fixed.
  • DBE-6276 PostgreSQL: DDL navigation to security policies now works as expected.
  • DBE-17490 PostgreSQL: The SQL generator now quotes EXCLUDE constraints correctly.
  • DBE-11727, DBE-11500 BigQuery: Alias resolution in UNNEST queries now works correctly.
  • DBE-17291, DBE-17449 ClickHouse: EPHEMERAL columns, INTERSECT, and EXCEPT clauses are now supported.
  • DBE-13506 MongoDB: The bug with broken SQL completion for nested properties has been fixed.

Database explorer

  • DBE-17263: Data source content statistics are again displayed in the Quick Documentation popup.

  • DBE-17166: Renamed folders in the database explorer no longer disappear.
  • DBE-10812 PostgreSQL: The Drop context menu command now works as expected.

Introspection

  • Oracle: We’ve implemented several improvements to speed up introspection on Level 1, especially when the fast internal catalog is used.

    Check whether you have already been granted the SELECT_CATALOG_ROLE and the SELECT ANY DICTIONARY permission. This gives you access to the Oracle internal catalog and makes introspection much faster, because Oracle conventional catalogs are quite slow.

    Learn more about Oracle introspection.

  • DBE-12578 Oracle: Cross schema database triggers are now supported. You can create a trigger X in schema A to table E in schema B, and it will be shown in schema B under the host table E.
  • DBE-6986 MySQL: The ROW_FORMAT clause/syntax is now supported.
  • DBE-10603 Microsoft SQL Server: Quick Definition now works as expected.
  • DBE-9087 PostgreSQL: When using the REFERENCING clause, the trigger’s DDL is generated correctly.
  • DBE-12404 Db2: We fixed an issue with interrupting object introspection. If the user permissions did not allow retrieving a list of database users, the rest of the database objects were not loaded either. Now everything except the list of users will be loaded.
  • DBE-17330 MySQL: The DDL of a table is refreshed after changing a comment in the Modify dialog.
  • DBE-15555 Redshift: We fixed a performance issue. Introspection time is now significantly decreased.

Connectivity

  • DBE-16417 Microsoft SQL Server: Current schema detection now works for any database.
  • DBE-11012 SQLite: The SQLite native library is now unpacked to the system folder.
  • DBE-7466 Microsoft SQL Server: The issue with connecting via pg_bouncer has been fixed.

Object editor

  • DBE-16393: We’ve added a source editor to the Modify view.

  • DBE-17329 PostgreSQL: Virtual view creation is now also available in read-only mode.

Data editor/viewer

  • DBE-3572: We’ve added an Alternate row colors setting for results tables. When the checkbox is enabled, rows will have alternating colors.

  • DBE-16250: There are no more empty spaces in in-editor results, as the table now adjusts its height to match the height of the results.

  • DBE-17434: The correct font color is used in the data editor header.
  • DBE-17292 PostgreSQL: The Quick Doc window doesn't freeze anymore when counting rows.
  • Support request: Image preview works correctly in the value editor.
  • DBE-16576 PostgreSQL: It's possible to update a value in a view with the ENUM column.
  • DBE-14722 Oracle: JSON columns are now supported.
  • DBE-14303 BigQuery: The precision for milliseconds in the TIMESTAMP values is no longer lost.
  • DBE-13329 MongoDB: We added the Change Default action to configure the default page size.

Query console

  • DBE-14074: Named parameters are detected correctly.
  • DBE-10555: Whenever you copy and paste something, the IDE now correctly analyzes the selection (instead of the cursor position).
  • DBE-17362: The schema switcher works properly in the new UI.
  • DBE-12109 Oracle: Semicolons are no longer omitted in Oracle Aggregate Functions.
  • DBE-16871 BigQuery: The Unexpected value error no longer pops up when previewing a table.
  • DBE-17479: Failing queries with the Read access is allowed from inside read-action (or EDT) only notification in the Query console has been fixed.
  • DBE-12787, DBE-12109 Oracle: The CREATE PROCEDURE and CREATE FUNCTION now end with ";" – as expected.
  • MongoDB: Loss of values in IN (...) if there are more than 10 has been fixed.

SQL Resolve

  • DBE-16831: A setting to specify the default resolve mode used in the console has been added to Preferences | Database | Query execution | Other.

  • DBE-5497 Oracle: We fixed a few problems with Oracle collection methods:
    • Public synonyms are now correctly placed in the PUBLIC schema.
    • Recursive references to nested routines are resolved correctly.
    • Cursor parameter references qualified by a cursor name are resolved correctly.
    • Incorrect usages of %TYPE are reported as warnings.
  • DBE-12772 Oracle: We fixed the resolution of standard attributes for collection types (for example, COUNT).
  • DBE-12758 Oracle: Type attributes are now supported.
  • DBE-11949 Oracle: Named arguments in type constructor calls are resolved correctly.
  • DBE-16452 Oracle: Shortcut navigation now works for packages.

Navigation and search

  • DBE-12015 Oracle: When navigating to a routine, you are now taken by default to its implementation instead of its header.

Diagrams

  • DBE-17137: We fixed a bug where the IDE would show the Explain Plan diagram only for the first of several queries.
  • DBE-16238: Errors no longer appear while saving a diagram.

SQL Generation

  • DBE-17229: The Schema diff viewer now works properly – previously it opened empty if there were database or server objects included.
  • Microsoft SQL Server, PostgreSQL, Db2: You can now use the Specify next value for sequences option to control the behavior of sequences that have a start value.

If the Specify next value for sequences option is not enabled, DataGrip generates the DDL of the sequence, adding the start value to the START WITH start_value.

When the Specify next value for sequences option is enabled, DataGrip adds the next value that the sequence should have to the DDL, with a few differences for the following databases:

  • Microsoft SQL Server: Instead of the sequence start value, the next sequence value is specified in the RESTART WITH clause in the CREATE and ALTER statements.
  • PostgreSQL: Instead of the sequence start value, the next sequence value is specified in the START WITH clause in the CREATE statement. The start value is specified in the START WITH clause, and the next value is in the RESTART WITH clause in the ALTER statement.
  • Db2: Instead of the sequence start value, the next sequence value is specified in the START WITH clause in the CREATE statement. The next value is specified in the RESTART WITH clause in the ALTER statement (changing the start value is not allowed in Db2).