{"id":195805,"date":"2021-10-27T17:07:15","date_gmt":"2021-10-27T16:07:15","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=datagrip&#038;p=195805"},"modified":"2021-11-09T11:12:26","modified_gmt":"2021-11-09T10:12:26","slug":"datagrip-2021-3-eap-2","status":"publish","type":"datagrip","link":"https:\/\/blog.jetbrains.com\/en\/datagrip\/2021\/10\/27\/datagrip-2021-3-eap-2","title":{"rendered":"DataGrip 2021.3 EAP 2"},"content":{"rendered":"\n<p>Hello! Another <a href=\"https:\/\/www.jetbrains.com\/idea\/nextversion\/\" target=\"_blank\" rel=\"noopener\">EAP build<\/a> for 2021.3 is available! We would appreciate it if you would try it out and share your feedback with us.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check for boolean expressions<\/h2>\n\n\n\n<p>One of our users <a href=\"https:\/\/twitter.com\/squatto\/status\/1441091114006581255\" class=\"ek-link\" target=\"_blank\" rel=\"noopener\">tweeted<\/a> about an unfortunate situation: he executed the <em>UPDATE<\/em> query on a production database with the condition <em>WHERE id &#8211; 3727 <\/em>and got millions of rows updated! We were also surprised that MySQL allows that, but c&#8217;est la vie.<\/p>\n\n\n\n<p>We wouldn&#8217;t be the DataGrip team if we wouldn&#8217;t add an inspection for that! Please welcome the check for boolean expressions in WHERE and HAVING clauses.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1270\" height=\"594\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/image-25.png\" alt=\"\" class=\"wp-image-195927\"\/><\/figure>\n\n\n\n<p>If the expression doesn&#8217;t seem to be explicitly boolean, we highlight it in yellow and warn you before you run such a query. It works for ClickHouse, Couchbase, Db2, H2, Hive\/Spark, MySQL\/MariaDB, Redshift, SQLite, and Vertica. In all other databases, this will be highlighted as an error.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">New database diff window<\/h2>\n\n\n\n<p>The new database diff window is under construction, but you can already try it. Please share your feedback with us and report any issues you find to our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/DBE\" target=\"_blank\" rel=\"noopener\">tracker<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"1360\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/image-26.png\" alt=\"\" class=\"wp-image-195938\"\/><\/figure>\n\n\n\n<p>Just to remind you: to compare two schemas or objects, select them and press <em>Ctrl\/Cmd + D.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foreign key navigation by several values<\/h2>\n\n\n\n<p>In the data editor, you can now select several values and navigate to the related data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1270\" height=\"1520\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/SeveralKeys.gif\" alt=\"\" class=\"wp-image-196001\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Automatic column types in CSV files<\/h2>\n\n\n\n<p>We now automatically detect column types in CSV files. The main benefit of this is that you can sort data by numeric values. Before, they were treated as text and sorting wasn&#8217;t natural.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1270\" height=\"859\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/image-27.png\" alt=\"\" class=\"wp-image-195950\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Extract function for queries<\/h2>\n\n\n\n<p>Now queries can be extracted as a table function. To do this, select the query, invoke the <em>Refactor<\/em> menu, and use <em>Extract Routine<\/em>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1270\" height=\"1408\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/Extract.gif\" alt=\"\" class=\"wp-image-196073\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">[PostgreSQL] Ability to hide system schemas and template databases<\/h2>\n\n\n\n<p>Internal system schemas (like <em>pg_toast <\/em>or <em>pg_temp<\/em>) and template databases used to be hidden from the schemas list. It&#8217;s now possible to show them with the help of the corresponding options in the Schemas tab.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-editorskit-shadow\"><img decoding=\"async\" loading=\"lazy\" width=\"1270\" height=\"1394\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/10\/image-28.png\" alt=\"\" class=\"wp-image-195983\"\/><\/figure>\n\n\n\n<p>Don&#8217;t forget to click <em>Refresh<\/em> after you change these options.<\/p>\n\n\n\n<p>That&#8217;s it for today! As usual, we would appreciate your feedback in the <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/DBE\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a>, on <a href=\"https:\/\/twitter.com\/datagrip\" target=\"_blank\" rel=\"noopener\">Twitter<\/a>, or in the comments below.<\/p>\n\n\n\n<p>The DataGrip team<\/p>\n","protected":false},"author":395,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","categories":[826],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/195805"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/datagrip"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/395"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=195805"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/195805\/revisions"}],"predecessor-version":[{"id":196084,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/195805\/revisions\/196084"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=195805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=195805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=195805"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=195805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}