DataGrip 2019.2 RC

Hello! This is the release candidate for DataGrip 2019.2! Only small fixes have been made.

– Services tool window now has a quick shortcut: Cmd/Alt+8. IDEA-218447
– Fixed layout problems with result tabs. DBE-5983
– Data editor works again if the tab is named. DBE-8717
– SQL formatter doesn’t break CREATE TABLE statement. DBE-6776
– No more freezes when formatter is used in language injections: DBE-8257
– [Oracle] DDL script for VIEW doesn’t miss column names anymore. DBE-6261
– [Oracle] Long names are not truncated in Oracle 12. StackOverflow question

DataGrip team

Posted in Uncategorized | 4 Comments

DataGrip 2019.2 EAP 3

Hello! Please welcome the newest build of our DataGrip 2019.2 EAP.

Objects from system catalogs in coding assistance

Nearly in every database there is a system catalog – the place where a relational database management system stores schema metadata, such as information about tables and columns, built-in functions, etc.

Objects from these catalogs are needed to provide coding assistance. It’s nice to have them in code completion, and code that uses them should not be red.

Before, the only way to have system catalogs in coding assistance was to add them to the database explorer. So, DataGrip actually retrieved information about them from the database (always the same, by the way!), which took time. Also, they were visible in the database explorer, but that’s not always necessary.

This kind of schemas have the lightning icon in the schema chooser. Now, if you don’t check them, DataGrip will not introspect and show them but will use the information about their objects in coding assistance. To have this possible, DataGrip uses its internal data about system catalogs for each database.

MinCatalogs

Some examples of system catalogs for several databases:

PostgreSQL: pg_catalog, information_schema
SQL Server: INFORMATION_SCHEMA
Oracle: SYS, SYSTEM
MySQL: information_schema
DB2: SYSCAT, SYSFUN, SYSIBM, SYSIBMADM, SYSPROC, SYSPUBLIC, SYSSTAT, SYSTOOLS

Force Refresh

A new action is available for the data source or schema, called Force Refresh. It clears the data source information that DataGrip caches, and refreshes it from scratch.

ForceRefresh

Easily change the results page size

Now, to define how many lines you want to be retrieved from the database, you can do it from the result-set’s toolbar.

PageSize

Name your results tabs

Another super-cool improvement for results: tab naming! Just use the comment before the query.

PrefixNames

If you don’t want any comment to become a tab name, use the Prefix in settings: only words coming after that prefix word will be used as titles.

PrefixSettings

Now you can see which particular statements DataGrip will run to perform a data search.

FTSPreview

Fold big numbers

If you want to improve the readability of big numbers, fold them with the shortcut: Ctrl/Cmd+Minus.

Folding

That’s all for this new EAP! Stay tuned for the next EAP release coming your way. 2019.2 is going to be cool!

The DataGrip Team

Posted in Uncategorized | 9 Comments

DataGrip 2019.2 EAP 2

Hello! Please welcome the newest build of our DataGrip 2019.2 EAP.

The Full-text Search dialog has a nice new look.

FTS

The whole mechanism has had several improvements made to it:

– In PostgreSQL, MySQL, and MariaDB you can now switch it to only search in columns that are indexed. To use this mode, choose ‘Only columns with full-text search indexes’ in Search in the drop-down menu.

The query in PostgreSQL will be: where col @@ plainto_tsquery('query')
The query in MySQL and mariaDB will be: where match(col) against ('query' in natural language mode)

– The search looks in columns which don’t support the LIKE operator, for instance, columns of JSON type. Values in these columns are converted to string type beforehand.

– In Cassandra, DataGrip creates several queries for one table, because the OR condition isn’t supported by the database.

Database tree

Drag-and-drop now works for creating groups in the database explorer.

If you want to create a new group, just drag-and-drop one data source onto the other.
If you want to place the data source into an existing group, drag-and-drop it there.

DragnDrop

Working with queries

Before, when working in the read-only mode we had some inconsistency: if a user wanted to run an update query from the read-only mode, we turned off only the IDE-level mode, but not the JDBC one (DBE-8145). Now though, we turn off both so you can run the query if you really need to.

ReadOnlyMode

A new action is available: Select current statement. You can get to it from Find Action (Ctrl/Cmd+Shift+A) or assign it a shortcut of its own.

SelectCurrentStatement

New combined items are now in code completion: IS NULL and IS NOT NULL.

INN

And we’ve added another intention action: now you can convert GROUP BY to DISTINCT if all the columns of a SELECT clause are presented in a GROUP BY clause.

GroupByIntention

That’s all for this new EAP! Stay tuned for the next EAP release coming your way; 2019.2 is going to be cool.

DataGrip team.

Posted in Uncategorized | 2 Comments

DataGrip 2019.1.4

Hi! This is what you can expect in the newest update for DataGrip 2019.1.

— We hope that, finally, all the performance problems on startup are fixed! JBR-1393
— The Filter History is preserved in the data editor after a restart DBE-8318
— Boolean values can be edited when creating a new row DBE-7701
— [Oracle] DataGrip doesn’t hang when working with big packages DBE-8499
— [Apache Ignite] Data editor now works DBE-8453

Posted in Uncategorized | 6 Comments

DataGrip 2019.2 EAP

Hello! No long preamble, we have begun our DataGrip 2019.2 EAP! Let’s look at what’s inside.

tKxcasig

Services tool window

All our IDEs now have a new tool window called Services. In DataGrip, you can observe and manage all the connections there. Here is how it looks:

Services

Every connection has its own node under the corresponding data source. If the small green light on the icon is on, it means that the connection is alive. You can close any of them.

You can view all the service types as nodes, or you can alter the view to see them as tabs. Use the Show in New Tab action from the toolbar or simply drag and drop the needed node on to the edge of the Services tool window.

The query result is now attached to the particular console under its connection in the
Service view. We realize that the UI has changed a bit, so please provide us with feedback. During the EAP there is still the chance to test and apply changes quickly. For now, if you want to have more room for the results, change the size of the left panel.

Query live timer

The Services tool window also provides you with some very requested functionality: a query live timer. As you can see, to the right of every connection which runs a query there is information about the time it has taken.

Now there is the ability to search for some data even if you don’t know where it is located. To do this, select the data sources or groups of data sources you want to search through and invoke Full-text search from the context menu. There is a shortcut as well: Ctrl/Cmd+Alt+Shift+F.

FTSInvoke

Then you will see the dialog you should put the string you need into. Here you can see the list of data sources to search through and also define some options for the search.

FTSDialog

As soon as you have started the search, DataGrip performs queries against all the tables and views in these data sources. These queries just search for the string using the LIKE operator.

After you see the results you can open them.

FTSResults

After clicking on the result, the data editor will open. The filter will be pre-defined to give you only those strings where the data is found. If you cannot locate the data because of the number of columns, use text search in the data editor: Ctrl/Cmd+F.

FTSResultsData

Filtering by a data source in search and navigation

When you are locating an object in the GoTo pop-up, sometimes many similar objects are present in the list. It frequently happens when you have many mirrors: production, staging, test, etc.

In DataGrip 2019.2, you can choose where to search: in a particular data source or in a group of them.

ScopesNavigation

The same works for Find In Path which is extremely useful when searching for source code inside of DDLs of other objects.

ScopesFindInPath

Code analysis

First, we integrated a quick-fix into the inspection tooltip. Now, if DataGrip knows how to fix the problem, you will know about it by just hovering the mouse over the warning. To fix the problem just click on the link at the bottom left corner of the tooltip or press Alt+Shift+Enter.

ActionsPopup

Alt+Enter still works for getting the list of all the possible quick-fixes.

Also, we’ve introduced several new inspections.

Unnecessary usage of CASE

When you use CASE construction DataGrip analyzes whether they can be transformed into more readable ones.

To IF:

InspCaseToIf

Or to COALESCE:

InspCaseToCoal

Possible truncation of the string

DataGrip detects the length of the string when assigning a value to the variable and warns you if it will be truncated.

InspStringWillBeTrunc

Database tree view

Quick backup of the table

It was possible to copy tables via drag-n-drop, but it didn’t work when copying to the same schema. In fact, this could have been very handy if you ever needed to create a quick backup of the table before any crucial data manipulations. So we’ve now made it work!

QuickBackup

Live connections

From 2019.2 the small green light indicates if there is an alive connection to the data source.

DataBaseTree

Table comments

If you wish to see comments of the tables in the tree view toggle View | Appearance | Descriptions in Tree Views option.

CommentsInTree

Miscellaneous

New option to control the behavior of Move Caret to Next Word

The default behavior of the Move Caret to Next Word action is changed: the IDE will move the caret to the end of the current word.

To change the behavior of the caret movement actions, go to Preferences/Settings | Editor | General.

CaretOptions

People usually perform this action by pressing Ctr+Arrows on Windows and Linux and
Opt+Arrows on Mac. It has different default behavior in different operating systems. In Datagrip we used Windows-like behavior and we changed it to the Mac-like one.

This how it was before:

MoveCaretBefore

And now it’s like this:

MoveCaretAfter

Anyway, if you like the previous behavior, you can always customize it.

Editable columns in Cassandra

In Cassandra now you can edit these types of columns: set, list, map, tuple, udt, inet, uuid, and timeuuid.

CassandraEdits

Other

— The upcoming DataGrip 2019.2 will run under JetBrains Runtime 11, the uncertified fork of OpenJDK 11, by default.
Jump outside closing bracket/quote with Tab option is enabled by default.
Surround a selection with a quote or brace option is enabled by default.
Introduce alias action is added to the refactoring menu.
— DataGrip works with PostgreSQL 12: DBE-8384.

DataGrip team

Posted in EAP, Features | Tagged | 6 Comments

DataGrip 2019.1.3

Hi! This is the third update for DataGrip 2019.1.

First, there are no more freezes after sleep! https://youtrack.jetbrains.com/issue/IDEA-210361

Also, we’ve fixed the annoying indentation in SQL Server that was happening after starting a new line.

Other fixes:

IDEA-176926 The All Places scope now includes scratch files and consoles. This is more important for anyone using the database plugin in other IDEs, and not DataGrip itself. In DataGrip scratches and consoles were already part of the All Places scope.
DBE-7993 The Formatter keeps the line break before INTO.
DBE-8223 The Formatter doesn’t break the code by quoting local variables.
DBE-8248 The Sublime keymap is bundled.
DBE-8133 Export into INSERT statements works again for Cassandra.

Posted in Uncategorized | Leave a comment

DataGrip 2019.1.2

Hi! This is the second update for DataGrip 2019.1.

Formatter

First and foremost, now the code style can be configured separately for different dialects.

CodeSTy

Please note, you can paste examples of your code to the preview panel on the right-hand side to check that the style you have configured formats the SQL correctly. More dialects come later.

Code insight

DBE-1837: Columns from outer queries are now highlighted.

Screenshot 2019-04-30 13.14.04

DBE-3778: Better support for aggregate functions. DataGrip will warn if you use them in the wrong place.

Screenshot 2019-04-30 13.47.50

DBE-5368: Unnecessary keywords for ORDER BY are highlighted

Screenshot 2019-04-30 13.49.49

Using the HAVING clause with no aggregates will also generate a warning

Screenshot 2019-04-30 14.05.28

Snowflake

We’re continuing to improve the Snowflake native introspection. Warehouses and stored procedures are now supported!

Important fixes

DBE-8217 [Cassandra] Support for lightweight transactions
DBE-8037 [MySQL] Support for JSON_TABLE()
DBE-8180 No more freezes when pasting big chunks of text

Posted in Uncategorized | Leave a comment

DataGrip 2019.1.1

Hi! This is the first update for DataGrip 2019.1. We’ve made some improvements regarding positional column references.

Column references are resolved in GROUP BY (before the resolve worked only in ORDER BY).

Screenshot 2019-04-25 16.32.11

If the column reference is unresolved, DataGrip will highlight it.

Screenshot 2019-04-24 16.44.28

By the way, unresolved references are now highlighted in red. This is consistent with all our IDEs. Red helps draw your attention to something that’s not normal, and generally, unresolved references are not normal! Have everything resolved makes navigation and code insight features work as they should.

We’ve also introduced a couple of intention actions:

  • Replace column number with a name
  • Replace column name with an ordinal number

IntentionRefs

It is also possible to set the timezone for the session.

Untitled-2

And a few other important fixes:

DBE-3024 The first version of the native introspection for Snowflake was introduced
DBE-2056 [SQLite]: ROWID is shown in the column list
DBE-3315 COUNT(*) works for queries with JOINs and GROUP BY
DBE-4533 Access to the last page of the query is not slow anymore

That does it. Cheers!

The DataGrip Team

Posted in Uncategorized | Leave a comment

DataGrip 2019.1

Hello everybody!

We are excited to release DataGrip 2019.1 today! As usual, we thank all our early adopters who have helped us make the IDE better during this release cycle.

image

If you wish to see the detailed overview of this update, please visit our What’s new page. Read on for a list of all the enhancements waiting for you in 2019.1.

Support for new databases

In this release cycle, we focused a lot on supporting several new databases.

Greenplum is an analytics database based on PostgreSQL. It is currently developed by Pivotal and the open source community.

Vertica is column-oriented storage designed to handle large volumes of data.

Apache Hive is a data warehouse built on top of Apache Hadoop for providing data query and analysis.

Snowflake is a cloud-based data-warehouse. In 2019.1 DataGrip supports only SQL dialect, the introspection support comes later.

ThreeGraces

Connectivity

— The connection dialog has a new look.
— Startup scripts.
— Keep-alive and auto-disconnect options.
— Now you can choose not to remember your password at all. (In previous versions, unselecting Remember password meant that it was remembered only until the next DatGrip restart.)
— Possibility to save password until you disconnect from the data source.
— Possibility to set an empty password.
— Separate section for DDL data sources in the connection dialog.
— DataGrip offers to download drivers after you click Test Connection.
Test Connections results are now inline.

Options

Navigation and search

— New Recent Locations popup.
— Better usability for Find in Path.
— All navigation actions work from the Go-to popup.

Recent

Code insight

— Code completion supports combined statements for CREATE and DROP, i.e. CREATE TABLE.
— New inspections: Illegal cursor state, Named arguments should be used, and Usages of GOTO statements.
— [MariaDB] Oracle mode support.

CompletionCreate

Working with files

— The Default Directory setting works.
Save console as… uses the default directory and respects the last choice.
Detach directory in the Files tool window.
— Files can be formatted from the context menu without opening them.

Detach

Database tree view

— [DB2] New objects are displayed in the database tree view: trigger, method, module, data type, variable, sequence, role, and others.
— The database tree view keeps the data source name at the top as you scroll.
— Logo icons are added for Firebird, Presto, Teradata, Snowflake, and Informix.
— Library of cutom icons.

DB2

Other

— Customizable IDE themes.
— The filter in the data editor suggests the current clipboard value.
— [MySQL] We’ve finally fixed the problem with NULL instead of the empty date for all connectors.
— [MySQL; MariaDB] Support for DEFINER attributes.
— [SQL Server] No more wrong COUNT() results.

ThemePurple

And more…

You already know all of this, but still:
— Get your 30-day trial of DataGrip.
— Tweet @ us!
— Discuss anything in the forum.
— Report bugs to our issue tracker.

Thanks for reading this!

Your DataGrip Team
_
JetBrains
The Drive to Develop

Posted in Features, Releases | Tagged | Leave a comment

DataGrip 2019.1 EAP 3

Let’s have a look at what’s new and improved in DataGrip 2019.1 EAP 3.

Connectivity

A new option in Save password: For Session. It will save your password until you disconnect from the data source.

PassSave

Test connection results are now inline and can be copied to the clipboard via a small dedicated button. The link to the troubleshooting page is also added.

TestConnectionRes

Find in path

DataGrip can search in source codes of the objects. This was available only if you chose the All Places scope. We’ve cleaned up this UI a little bit and removed the Module and Project tabs.

A new scope, Attached Directories, is available. Use it if you want to search through files in the Files tool window.

FindInPath

Go-to popup

All navigation actions now work from here.

FindTable_blog

For instance, if you’re searching for a table, see what you can open from right here:

Table’s DDL: Ctrl/Cmd+B.
Table’s data: F4 (Enter does the same for tables).
Modify Table dialog: Ctrl/Cmd+F6.
Locate in… popup: Alt+F1 (Use it to see the object in the database tree view).
Quick doc popup: Ctrl+Q/F1.
SQL generator: Alt+Ctrl/Cmd+G.

There are many more actions related to the objects you see here!

Also, don’t forget about Navigation settings in Database | General. Feel free to create your own flow, as DataGrip now really does cover all possible use cases.

NavigationOptions

Code insight

We added the support for Snowflake SQL.

Screenshot 2019-03-28 14.46.47

The support for database objects comes later. Now JDBC-based introspection works.

New inspections

DataGrip will warn you if the cursor you use is not opened when inside a procedure or function.

InspectionCursor_blog

The next two new inspections are turned off by default as only some developers want these things to be reported.

InspectionsList

Named arguments should be used

NamedParams

Usages of GOTO statements

This inspection has three options:
-Report all GOTO statements;
-Report uses of GOTO statements to exit a loop;
-Report backward GOTO statements;

GotoInspection

Customizable themes

This release adds the possibility to fully customize the appearance of the IDE as now you’ll have the power to design your own theme from scratch. We’ve created a few brand new themes to get you started. They can be downloaded as plugins:

ThemesAsPlugins

Here’s what they look like:

Dark Purple theme

ThemePurple

Cyan Light theme

ThemeCyan

We’ve made significant changes in our codebase so that you can tweak the entire IDE appearance, including icon colors, radio buttons, arrows, the color scheme, and everything else you can think of. You can literally change the color of anything.

You can create your own theme plugin using the DevKit and modify the IDE appearance via a JSON file. Here are some links that you may find useful:

That’s it!

Your feedback is extremely welcome in our twitter or forum! By the way, this version introduces a handy feedback method: just click Help -> Report problem… to raise a new issue in our issue tracker!

DataGrip team

Posted in Uncategorized | Leave a comment