Skip to content

Releases: tconbeer/harlequin

v1.25.2

31 Oct 20:29
76d8df1
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.25.2] - 2024-10-31

Bug Fixes

  • Fixes a bug where string data was rendered as Rich Markup (#647 - thank you @burncitiesburn!).
  • Fixes a bug where None could be inconsistently displayed as "None" or the correct ∅ null (#658, #655 - thank you, @sgpeter1!).
  • harlequin --config now supports the NO_COLOR environment variable (the rest of the app already supported it) (#552 - thank you @glujan!).

[1.25.1] - 2024-10-31

Bug Fixes

  • Fixes a hang and crash caused by an upstream bug in rendering zero-width containers (#659, #668, #672).

[1.25.0] - 2024-10-09

Features

  • Harlequin's Data Catalog is now interactive! Adapters can define interactions on catalog nodes, which can be selected via a context menu by right-clicking on nodes in the context menu or pressing . (this binding is configurable via the data_catalog.show_context_menu action) (#213).
  • For adapters that support it, Harlequin's Data Catalog now loads lazily. This should dramatically improve Data Catalog load time for catalogs with thousands of nodes. The Data Catalog is no longer cached (#491 - thank you @rymurr!).
  • The DuckDB and SQLite adapters now support lazy-loading and a wide range of interactions, including useing database and schemas, previewing data, dropping objects, and showing DDL for objects.

Bug Fixes

  • Fixes a crash on Windows caused by automatically downloading the 2024b tzdata file from IANA, which includes a single poorly-formatted date that breaks PyArrow's upstream tzdata parser (#652 - thank you @paulrobello and @alexmalins!).
  • Fixes a crash caused by pressing ctrl+g when the goto input was already open (#654).
  • Fixes a crash caused by copying or pasting on certain systems where Pyperclip doesn't properly catch and reraise errors (#649).

[1.24.1] - 2024-09-25

Bug Fixes

  • DuckDB & SQLite adapters: fix bug to properly resolve initialization script paths starting with ~ (i.e. user's home dir) supplied to --init-path (#646).

[1.24.0] - 2024-08-19

Features

  • For adapters that support canceling queries, Harlequin will now display a "Cancel Query" button while queries are running.
  • Two new Actions are available for key bindings: run_query (with a global app scope, in addition to the existing code_editor.run_query action) and cancel_query.
  • Adapters may now implement a connection_id property to improve Harlequin's ability to persist the data catalog and query history across Harlequin invocations (#410).
  • Adapters may now implement a HarlequinConnection.cancel() method to cancel all in-flight queries (#333).
  • Queries can now be canceled when using the DuckDB or SQLite adapters.

Bug Fixes

  • Harlequin no longer constrains the version of the adapter when the adapter is installed as an extra; Harlequin will install the latest available version that does not conflict with other dependencies.
  • The DuckDB and SQLite adapters now use only the resolved file path to the database file to load the data catalog and query history from disk (ignoring other connection options). This should improve cache hits. They will no longer attempt to load a cached catalog or history for in-memory connections.

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindin...
Read more

v1.25.1

31 Oct 18:22
22b7c79
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.25.1] - 2024-10-31

Bug Fixes

  • Fixes a hang and crash caused by an upstream bug in rendering zero-width containers (#659, #668, #672).

[1.25.0] - 2024-10-09

Features

  • Harlequin's Data Catalog is now interactive! Adapters can define interactions on catalog nodes, which can be selected via a context menu by right-clicking on nodes in the context menu or pressing . (this binding is configurable via the data_catalog.show_context_menu action) (#213).
  • For adapters that support it, Harlequin's Data Catalog now loads lazily. This should dramatically improve Data Catalog load time for catalogs with thousands of nodes. The Data Catalog is no longer cached (#491 - thank you @rymurr!).
  • The DuckDB and SQLite adapters now support lazy-loading and a wide range of interactions, including useing database and schemas, previewing data, dropping objects, and showing DDL for objects.

Bug Fixes

  • Fixes a crash on Windows caused by automatically downloading the 2024b tzdata file from IANA, which includes a single poorly-formatted date that breaks PyArrow's upstream tzdata parser (#652 - thank you @paulrobello and @alexmalins!).
  • Fixes a crash caused by pressing ctrl+g when the goto input was already open (#654).
  • Fixes a crash caused by copying or pasting on certain systems where Pyperclip doesn't properly catch and reraise errors (#649).

[1.24.1] - 2024-09-25

Bug Fixes

  • DuckDB & SQLite adapters: fix bug to properly resolve initialization script paths starting with ~ (i.e. user's home dir) supplied to --init-path (#646).

[1.24.0] - 2024-08-19

Features

  • For adapters that support canceling queries, Harlequin will now display a "Cancel Query" button while queries are running.
  • Two new Actions are available for key bindings: run_query (with a global app scope, in addition to the existing code_editor.run_query action) and cancel_query.
  • Adapters may now implement a connection_id property to improve Harlequin's ability to persist the data catalog and query history across Harlequin invocations (#410).
  • Adapters may now implement a HarlequinConnection.cancel() method to cancel all in-flight queries (#333).
  • Queries can now be canceled when using the DuckDB or SQLite adapters.

Bug Fixes

  • Harlequin no longer constrains the version of the adapter when the adapter is installed as an extra; Harlequin will install the latest available version that does not conflict with other dependencies.
  • The DuckDB and SQLite adapters now use only the resolved file path to the database file to load the data catalog and query history from disk (ignoring other connection options). This should improve cache hits. They will no longer attempt to load a cached catalog or history for in-memory connections.

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable a...
Read more

v1.25.0

09 Oct 22:13
c6282f5
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.25.0] - 2024-10-09

Features

  • Harlequin's Data Catalog is now interactive! Adapters can define interactions on catalog nodes, which can be selected via a context menu by right-clicking on nodes in the context menu or pressing . (this binding is configurable via the data_catalog.show_context_menu action) (#213).
  • For adapters that support it, Harlequin's Data Catalog now loads lazily. This should dramatically improve Data Catalog load time for catalogs with thousands of nodes. The Data Catalog is no longer cached (#491 - thank you @rymurr!).
  • The DuckDB and SQLite adapters now support lazy-loading and a wide range of interactions, including useing database and schemas, previewing data, dropping objects, and showing DDL for objects.

Bug Fixes

  • Fixes a crash on Windows caused by automatically downloading the 2024b tzdata file from IANA, which includes a single poorly-formatted date that breaks PyArrow's upstream tzdata parser (#652 - thank you @paulrobello and @alexmalins!).
  • Fixes a crash caused by pressing ctrl+g when the goto input was already open (#654).
  • Fixes a crash caused by copying or pasting on certain systems where Pyperclip doesn't properly catch and reraise errors (#649).

[1.24.1] - 2024-09-25

Bug Fixes

  • DuckDB & SQLite adapters: fix bug to properly resolve initialization script paths starting with ~ (i.e. user's home dir) supplied to --init-path (#646).

[1.24.0] - 2024-08-19

Features

  • For adapters that support canceling queries, Harlequin will now display a "Cancel Query" button while queries are running.
  • Two new Actions are available for key bindings: run_query (with a global app scope, in addition to the existing code_editor.run_query action) and cancel_query.
  • Adapters may now implement a connection_id property to improve Harlequin's ability to persist the data catalog and query history across Harlequin invocations (#410).
  • Adapters may now implement a HarlequinConnection.cancel() method to cancel all in-flight queries (#333).
  • Queries can now be canceled when using the DuckDB or SQLite adapters.

Bug Fixes

  • Harlequin no longer constrains the version of the adapter when the adapter is installed as an extra; Harlequin will install the latest available version that does not conflict with other dependencies.
  • The DuckDB and SQLite adapters now use only the resolved file path to the database file to load the data catalog and query history from disk (ignoring other connection options). This should improve cache hits. They will no longer attempt to load a cached catalog or history for in-memory connections.

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespac...
Read more

v1.24.1

25 Sep 15:40
436d460
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.24.1] - 2024-09-25

Bug Fixes

  • DuckDB & SQLite adapters: fix bug to properly resolve initialization script paths starting with ~ (i.e. user's home dir) supplied to --init-path (#646).

[1.24.0] - 2024-08-19

Features

  • For adapters that support canceling queries, Harlequin will now display a "Cancel Query" button while queries are running.
  • Two new Actions are available for key bindings: run_query (with a global app scope, in addition to the existing code_editor.run_query action) and cancel_query.
  • Adapters may now implement a connection_id property to improve Harlequin's ability to persist the data catalog and query history across Harlequin invocations (#410).
  • Adapters may now implement a HarlequinConnection.cancel() method to cancel all in-flight queries (#333).
  • Queries can now be canceled when using the DuckDB or SQLite adapters.

Bug Fixes

  • Harlequin no longer constrains the version of the adapter when the adapter is installed as an extra; Harlequin will install the latest available version that does not conflict with other dependencies.
  • The DuckDB and SQLite adapters now use only the resolved file path to the database file to load the data catalog and query history from disk (ignoring other connection options). This should improve cache hits. They will no longer attempt to load a cached catalog or history for in-memory connections.

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) ex...
Read more

v1.24.0

19 Aug 21:02
a9a525d
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.24.0] - 2024-08-19

Features

  • For adapters that support canceling queries, Harlequin will now display a "Cancel Query" button while queries are running.
  • Two new Actions are available for key bindings: run_query (with a global app scope, in addition to the existing code_editor.run_query action) and cancel_query.
  • Adapters may now implement a connection_id property to improve Harlequin's ability to persist the data catalog and query history across Harlequin invocations (#410).
  • Adapters may now implement a HarlequinConnection.cancel() method to cancel all in-flight queries (#333).
  • Queries can now be canceled when using the DuckDB or SQLite adapters.

Bug Fixes

  • Harlequin no longer constrains the version of the adapter when the adapter is installed as an extra; Harlequin will install the latest available version that does not conflict with other dependencies.
  • The DuckDB and SQLite adapters now use only the resolved file path to the database file to load the data catalog and query history from disk (ignoring other connection options). This should improve cache hits. They will no longer attempt to load a cached catalog or history for in-memory connections.

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError ([#465](https://github.com/tco...
Read more

v1.23.2

15 Aug 21:34
4c12bb3
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.23.2] - 2024-08-15

Bug Fixes

  • Fixes an issue where uncommenting a line using the uncomment action could indent the line by an additional space (#616 - thank you @harrymconner!).
  • The (empty) results viewer will no longer be focused after executing only DDL queries (queries that do not return any data) (#609).

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError (#465)

[1.15.0] - 2024-02-12

Features

  • The Data Exporter has been refactored to work with any adapter.
  • The Data Exporter now supports two additional formats: Feather and ORC (ORC is not supported on Windows).

Bug Fixes

  • The Query Editor no longer loses focus after pressing escape (regression since 1.14.0).

[1.14.0] - 2024-02-07

Features

  • The Databricks adapter is now installable as an extra; use pip install harlequin[databricks]. Thank you @alexmalins!
  • In the Results Viewer, values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned. Null values are now shown as a dim ∅ null, instead of a blank cell.
  • Adds a --locale option to override the system locale for number formatting.

Bug Fixes

  • The result counts in the Query History view now contain thousands separators (#437 - thank you, @code-master-ajay!).
  • Harlequin no longer crashes when executing SQLite queries that return multiple types in a single column (#453).

Performance

  • Harlequin now starts much f...
Read more

v1.23.1

23 Jul 15:51
ed75fb5
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.23.1] - 2024-07-23

Bug Fixes

  • Harlequin no longer crashes when attempting to display negative datetime values (#568).

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError (#465)

[1.15.0] - 2024-02-12

Features

  • The Data Exporter has been refactored to work with any adapter.
  • The Data Exporter now supports two additional formats: Feather and ORC (ORC is not supported on Windows).

Bug Fixes

  • The Query Editor no longer loses focus after pressing escape (regression since 1.14.0).

[1.14.0] - 2024-02-07

Features

  • The Databricks adapter is now installable as an extra; use pip install harlequin[databricks]. Thank you @alexmalins!
  • In the Results Viewer, values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned. Null values are now shown as a dim ∅ null, instead of a blank cell.
  • Adds a --locale option to override the system locale for number formatting.

Bug Fixes

  • The result counts in the Query History view now contain thousands separators (#437 - thank you, @code-master-ajay!).
  • Harlequin no longer crashes when executing SQLite queries that return multiple types in a single column (#453).

Performance

  • Harlequin now starts much faster, especially when restoring multiple buffers from the cache.

[1.13.0] - 2024-01-26

Features

  • Adds a Query History Viewer: press F8 to view a list of up to 500 previously-executed queries (#259).

Bug Fixes

  • The new --show-files and --show-s3 options are now correctly grouped under "Harlequin Options" in harlequin --help; installed adapters are now alphabetically sorted.

...

Read more

v1.23.0

11 Jul 21:22
fc1904c
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.23.0] - 2024-07-11

Features

Changes

  • Harlequin's Footer has been re-designed. In the footer, CTRL+ key presses are now represented by a carat, ^. For example, instead of CTRL+Q Quit the footer now reads ^q Quit.
  • The tooltip for overflowing data cells has been improved to better format the data contained in the cell.

Bug Fixes

  • Fixed a bug where the main panel would resize while the code editor was being mounted at app start-up.
  • Fixed a bug that could cause a crash if data table cell contents contained a string that could be interpreted as bad Rich Markup (#569 - thank you @cmdkev!)

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError (#465)

[1.15.0] - 2024-02-12

Features

  • The Data Exporter has been refactored to work with any adapter.
  • The Data Exporter now supports two additional formats: Feather and ORC (ORC is not supported on Windows).

Bug Fixes

  • The Query Editor no longer loses focus after pressing escape (regression since 1.14.0).

[1.14.0] - 2024-02-07

Features

  • The Databricks adapter is now installable as an extra; use pip install harlequin[databricks]. Thank you @alexmalins!
  • In the Results Viewer, values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned. Null values are now shown as a dim ∅ null, instead of a blank cell.
  • Adds a --locale option to override the system locale for number formatting.

Bug Fixes

  • The result counts in the Query History view now contain thousands separators (#437 - thank you, @code-master-ajay!).
  • Harlequin no longer crashes when executing SQLite queries that return multiple types in a single column (#453).

Performance

  • Harlequin now starts much faster, especially when restoring multiple buffers from the cache.

[1.13.0] - 2024-01-26

Features

  • Adds a Query History Viewer: press F8 to view a list of up to 500 previously-executed queries (#259).

Bug Fixes

  • The new --show-files and --show-s3 options are now correctly grouped under "Harlequin Options" in harlequin --help; installed adapters are now alphabetically sorted.

[1.12.0] - 2024-01-22

Features

  • Adds an option, --show-files (alias -f), which will display the passed directory in the Data Catalog, alongside the connected database sche...
Read more

v1.22.2

09 Jul 18:42
106540b
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.22.2] - 2024-07-09

Bug Fixes

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError (#465)

[1.15.0] - 2024-02-12

Features

  • The Data Exporter has been refactored to work with any adapter.
  • The Data Exporter now supports two additional formats: Feather and ORC (ORC is not supported on Windows).

Bug Fixes

  • The Query Editor no longer loses focus after pressing escape (regression since 1.14.0).

[1.14.0] - 2024-02-07

Features

  • The Databricks adapter is now installable as an extra; use pip install harlequin[databricks]. Thank you @alexmalins!
  • In the Results Viewer, values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned. Null values are now shown as a dim ∅ null, instead of a blank cell.
  • Adds a --locale option to override the system locale for number formatting.

Bug Fixes

  • The result counts in the Query History view now contain thousands separators (#437 - thank you, @code-master-ajay!).
  • Harlequin no longer crashes when executing SQLite queries that return multiple types in a single column (#453).

Performance

  • Harlequin now starts much faster, especially when restoring multiple buffers from the cache.

[1.13.0] - 2024-01-26

Features

  • Adds a Query History Viewer: press F8 to view a list of up to 500 previously-executed queries (#259).

Bug Fixes

  • The new --show-files and --show-s3 options are now correctly grouped under "Harlequin Options" in harlequin --help; installed adapters are now alphabetically sorted.

[1.12.0] - 2024-01-22

Features

  • Adds an option, --show-files (alias -f), which will display the passed directory in the Data Catalog, alongside the connected database schema, in a second tab. Like database catalog items, you can use ctrl+enter, ctrl+j, or double-click to insert the path into the query editor.
  • Adds an option, --show-s3 (alias --s3), which will display objects from the passed URI in the Data Catalog (in another tab). Uses the credentials from the AWS CLI's default profile. Use --show-s3 all to show all objects in all buckets for the currently-authenticated user, or pass buckets and key prefixes to restrict the catalog. For example, these all work:
    harlequin --show-s3 my-bucket
    harlequin --show-s3 my-bucket/my-nested/key-prefix
    harlequin --show-s3 s3://my-bucket
    harlequin --show-s3 https://my-storage.com/my-bucket/my-prefix
    harlequin --show-s3 https://my-bucket.s3.amazonaws.com/my-prefix
    harlequin --show-s3 https://my-bucket.storag...
Read more

v1.22.1

28 Jun 19:22
8e75eed
Compare
Choose a tag to compare

Harlequin CHANGELOG

All notable changes to this project will be documented in this file.

[Unreleased]

[1.22.1] - 2024-06-28

Bug Fixes

  • Harlequin no longer hard-codes the ctrl+q binding to the Quit action (previously this could not be changed with a keymap). If your keymap does not define a binding for Quit, Harlequin will use ctrl+q so that you can always exit the app, even with a bad keymap.

[1.22.0] - 2024-06-27

Features

  • Harlequin now loads key bindings from keymap plug-ins, and accepts a --keymap_name CLI option to specify a keymap to be loaded. This option can be repeated to load (and merge) multiple keymaps.
  • Harlequin now also loads key bindings from keymaps configured in Harlequin config files or pyproject.toml files. To merge user-defined keymaps with keymap plug-ins, repeat the --keymap-name option. For example: --keymap-name vscode --keymap-name my_custom_keymap. For more information on user-defined keymaps, see Harlequin's docs.
  • Harlequin ships with a new app for creating keymaps to customize keybindings. You can run it with harlequin --keys. The new app will load any existing keymap config and allow you to edit individual bindings. On quitting the app, it will write the new keymap to a file, so you can use it the next time you start Harlequin.

Changed

  • The default key bindings have been refactored to a plug-in in a separate package (harlequin_vscode) that is distributed with Harlequin.

[1.21.0] - 2024-06-17

  • The Cassandra adapter is now installable as an extra; use pip install harlequin[cassandra].
  • The NebulaGraph adapter is now installable as an extra; use pip install harlequin[nebulagraph].

[1.20.0] - 2024-04-29

Features

  • For adapters that support it, Harlequin now provides a buttons to toggle the transaction mode of the database connection, and commit and roll back transactions (#334).
  • Adapters can now implement HarlequinConnection.transaction_mode and HarlequinConnection.toggle_transaction_mode() to enable the new Transaction Mode UI for their adapter.

Changed

  • SQLite adapter: The adapter no longer accepts an --isolation-level option on Python 3.12 or higher; instead, the adapter allows autocommit configuration via the Harlequin UI.

[1.19.0] - 2024-04-25

Features

  • SQLite adapter: Harlequin now executes an initialization script on start-up of the SQLite adapter. By default, it executes the script found at ~/.sqliterc. To execute a different script, start Harlequin with the --init-path option (aliases -i/-init):

    harlequin -a sqlite --init-path ./my-project-script

    To start Harlequin without executing an initialization script, use the --no-init flag:

    harlequin -a sqlite --no-init

    Note: SQLite initialization scripts can contain dot commands or SQL statements. If Harlequin encounters a dot command, it will attempt to rewrite it as a SQL statement, and then execute the rewritten statement. Otherwise, it will ignore the dot command. Currently, Harlequin can only rewrite .open and .load commands.

    (#325)

  • SQLite adapter: Adds a new CLI option, --extension or -e, which will load a SQLite extension. Note: SQLite extensions are not supported by Python on most platforms by default. See here for more details (#533).

[1.18.0] - 2024-04-19

Features

  • The Query Editor's Open and Save dialogs now display the full computed file path that will be opened or saved (tconbeer/textual-textarea#232 - thank you @bjornasm!)
  • The Query Editor adds a "Find" action with ctrl+f and "Find Next" action with F3.
  • The Query Editor adds a "Go To Line" action with ctrl+g.
  • The Query Editor adds bindings for ctrl+shift+home/end to select text while moving the cursor to the start/end of the document.

Bug Fixes

  • Fixes a crash from initializing the Error Modal incorrectly from the Query Editor.
  • Fixes a crash from saving to a path in a non-existent directory.

Changes

  • The Query Editor uses a slightly different implementation of undo and redo, with improved performance and some subtly different behavior (#240.

[1.17.0] - 2024-04-16

Features

  • A new HarlequinConnection.close() method can be implemented by adapters to gracefully close database connections when the application exits.
  • The ADBC adapter is now installable as an extra; use pip install harlequin[adbc].

Bug Fixes

  • Fixes broken link on clipboard error message (#509)

[1.16.2] - 2024-03-29

Bug Fixes

  • If the cursor is after the final semicolon in the query editor, and there is only whitespace after the semicolon, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.

[1.16.1] - 2024-03-27

Bug Fixes

  • Pressing F8 on the history screen no longer causes a crash (#485)

[1.16.0] - 2024-02-22

Changes

  • The default search path and priority for config files has changed, to better align with the standard defined by each operating system. Harlequin now loads config files from the following locations (and merges them, with items listed first taking priority):
    1. The file located at the path provided by the --config-path CLI option.
    2. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the current working directory.
    3. Files named harlequin.toml, .harlequin.toml, or config.toml in the user's default config directory, in the harlequin subdirectory. For example:
      • Linux: $XDG_CONFIG_HOME/harlequin/config.toml or ~/.config/harlequin/config.toml
      • Mac: ~/Library/Application Support/harlequin/config.toml
      • Windows: ~\AppData\Local\harlequin\config.toml
    4. Files named harlequin.toml, .harlequin.toml, or pyproject.toml in the user's home directory (~).
      (#471)

Features

  • harlequin --config option now accepts the --config-path CLI option (#466).
  • harlequin --config now defaults to updating the nearest (highest priority) existing config file in the default search path, instead of ./.harlequin.toml.

Bug Fixes

  • harlequin --config creates a new file (parent folder as well, if non-existent) instead of crashing with FileNotFoundError (#465)

[1.15.0] - 2024-02-12

Features

  • The Data Exporter has been refactored to work with any adapter.
  • The Data Exporter now supports two additional formats: Feather and ORC (ORC is not supported on Windows).

Bug Fixes

  • The Query Editor no longer loses focus after pressing escape (regression since 1.14.0).

[1.14.0] - 2024-02-07

Features

  • The Databricks adapter is now installable as an extra; use pip install harlequin[databricks]. Thank you @alexmalins!
  • In the Results Viewer, values are now formatted based on their type. Numbers have separators based on the locale, and numbers, dates/times/etc., and bools are right-aligned. Null values are now shown as a dim ∅ null, instead of a blank cell.
  • Adds a --locale option to override the system locale for number formatting.

Bug Fixes

  • The result counts in the Query History view now contain thousands separators (#437 - thank you, @code-master-ajay!).
  • Harlequin no longer crashes when executing SQLite queries that return multiple types in a single column (#453).

Performance

  • Harlequin now starts much faster, especially when restoring multiple buffers from the cache.

[1.13.0] - 2024-01-26

Features

  • Adds a Query History Viewer: press F8 to view a list of up to 500 previously-executed queries (#259).

Bug Fixes

  • The new --show-files and --show-s3 options are now correctly grouped under "Harlequin Options" in harlequin --help; installed adapters are now alphabetically sorted.

[1.12.0] - 2024-01-22

Features

  • Adds an option, --show-files (alias -f), which will display the passed directory in the Data Catalog, alongside the connected database schema, in a second tab. Like database catalog items, you can use ctrl+enter, ctrl+j, or double-click to insert the path into the query editor.
  • Adds an option, --show-s3 (alias --s3), which will display objects from the passed URI in the Data Catalog (in another tab). Uses the credentials from the AWS CLI's default profile. Use --show-s3 all to show all objects in all buckets for the currently-authenticated user, or pass buckets and key prefixes to restrict the catalog. For example, these all work:
    harlequin --show-s3 my-bucket
    harlequin --show-s3 my-bucket/my-nested/key-prefix
    harlequin --show-s3 s3://my-bucket
    harlequin --show-s3 https://my-storage.com/my-bucket/my-prefix
    harlequin --show-s3 https://my-bucket.s3.amazonaws.com/my-prefix
    harlequin --show-s3 https://my-bucket.storage.googleapis.com/my-prefix
  • Items in the Data Catalog can now be copied to the clipboard with ctrl+c.

[1.11.0] - 2024-01-12

Features

  • Harlequin now shows a more helpful error message when attempting...
Read more