Skip to content

Releases: tconbeer/harlequin

v2.5.1

19 Dec 20:26
adf8ea7

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.5.1] - 2025-12-19

Bug Fixes

[2.5.0] - 2025-12-17

  • Allows setting the config path using the HARLEQUIN_CONFIG_PATH environment variable (#897)

[2.4.1] - 2025-10-30

Bug Fixes

  • Fixes a bug that was preventing the Database Catalog from being populated on Python 3.12+ (#883 - thank you @alex-lucem!).

[2.4.0] - 2025-10-29

Features

  • Adds support for Python 3.14 for most Harlequin users (#852, #879, #880 - thank you @smartinussen and especially @branchvincent!). NOTE: The databricks extra will not install the Databricks adapter on Python 3.14; Databricks users should continue to use Python 3.10-3.13. uv makes that easy with uv tool install --python 3.13 'harlequin[databricks]' See this issue for more information.

[2.3.0] - 2025-10-24

Breaking Changes

  • Drops support for Python 3.9.

Bug Fixes

  • Harlequin will no longer execute an empty query; the Run Query button will appear disabled if the buffer is empty (#873).

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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 inst...
Read more

v2.5.0

17 Dec 16:49
bf5ba77

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.5.0] - 2025-12-17

  • Allows setting the config path using the HARLEQUIN_CONFIG_PATH environment variable (#897)

[2.4.1] - 2025-10-30

Bug Fixes

  • Fixes a bug that was preventing the Database Catalog from being populated on Python 3.12+ (#883 - thank you @alex-lucem!).

[2.4.0] - 2025-10-29

Features

  • Adds support for Python 3.14 for most Harlequin users (#852, #879, #880 - thank you @smartinussen and especially @branchvincent!). NOTE: The databricks extra will not install the Databricks adapter on Python 3.14; Databricks users should continue to use Python 3.10-3.13. uv makes that easy with uv tool install --python 3.13 'harlequin[databricks]' See this issue for more information.

[2.3.0] - 2025-10-24

Breaking Changes

  • Drops support for Python 3.9.

Bug Fixes

  • Harlequin will no longer execute an empty query; the Run Query button will appear disabled if the buffer is empty (#873).

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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-1...

Read more

v2.4.1

30 Oct 20:53
2f18f9d

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.4.1] - 2025-10-30

Bug Fixes

  • Fixes a bug that was preventing the Database Catalog from being populated on Python 3.12+ (#883 - thank you @alex-lucem!).

[2.4.0] - 2025-10-29

Features

  • Adds support for Python 3.14 for most Harlequin users (#852, #879, #880 - thank you @smartinussen and especially @branchvincent!). NOTE: The databricks extra will not install the Databricks adapter on Python 3.14; Databricks users should continue to use Python 3.10-3.13. uv makes that easy with uv tool install --python 3.13 'harlequin[databricks]' See this issue for more information.

[2.3.0] - 2025-10-24

Breaking Changes

  • Drops support for Python 3.9.

Bug Fixes

  • Harlequin will no longer execute an empty query; the Run Query button will appear disabled if the buffer is empty (#873).

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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

Read more

v2.4.0

29 Oct 18:18
bac4033

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.4.0] - 2025-10-29

Features

  • Adds support for Python 3.14 for most Harlequin users (#852, #879, #880 - thank you @smartinussen and especially @branchvincent!). NOTE: The databricks extra will not install the Databricks adapter on Python 3.14; Databricks users should continue to use Python 3.10-3.13. uv makes that easy with uv tool install --python 3.13 'harlequin[databricks]' See this issue for more information.

[2.3.0] - 2025-10-24

Breaking Changes

  • Drops support for Python 3.9.

Bug Fixes

  • Harlequin will no longer execute an empty query; the Run Query button will appear disabled if the buffer is empty (#873).

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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](https://github.com/tconbeer/harlequ...
Read more

v2.3.0

24 Oct 22:35
52fa431

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.3.0] - 2025-10-24

Breaking Changes

  • Drops support for Python 3.9.

Bug Fixes

  • Harlequin will no longer execute an empty query; the Run Query button will appear disabled if the buffer is empty (#873).

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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 mai...
Read more

v2.2.1

16 Oct 14:50
0dfa3fb

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.2.1] - 2025-10-16

Bug Fixes

  • Fixes installation from an sdist, which was broken in 2.2.0 (#863 - thank you @xhochy!).

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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 - tha...
Read more

v2.2.0

16 Oct 02:59
bbc263b

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.2.0] - 2025-10-16

Features

  • Adds a "Debug Information" screen to make it possible to view Harlequin and Adapter config from within Harlequin by pressing f12 (#564, #807 - thank you, @vkhitrin!).

Development

  • This project is now built using uv instead of Poetry. If you are just a user of Harlequin, this should make no difference -- you can still find this project on PyPI and install it however you like (although we recommend uv for that also).

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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

  • Improves support for system clipboard on Wayland (#585 - thank you [@sa...
Read more

v2.1.3

12 Sep 22:24
712d420

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.1.3] - 2025-09-12

Bug Fixes

  • Prevents a large number of UserWarning messages from being raised by Click (when multiple adapters are installed) by pinning Click to an earlier version that didn't show such warnings (#829 - thank you, @dusktreader!).

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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...
Read more

v2.1.2

17 Apr 22:28
5f18365

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.1.2] - 2025-04-17

Bug Fixes

  • Fixes a bug in harlequin --config where connection strings containing spaces were improperly split into multiple strings (#800 - thank you @Bento-HS!).
  • Fixes a few bugs with headers for exported data: Harlequin will now use the column name as the export column name for all adapters; CSV export now respects setting the header option to False; and datasets with repeated column names can now be exported (#779).

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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.
  • ...
Read more

v2.1.1

17 Mar 18:04
5ada457

Choose a tag to compare

Harlequin CHANGELOG

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

[Unreleased]

[2.1.1] - 2025-03-17

Bug Fixes

  • Fixes a crash caused by a missing FILE_ICON property of the S3Tree (#786 - thank you @nyc-de!).

[2.1.0] - 2025-03-10

Extras

  • Adds back the nebulagraph extra (thank you @wey-gu!)

[2.0.5] - 2025-02-13

Bug Fixes

  • Pins the tree-sitter and tree-sitter-sql versions to avoid a crash caused by a mismatch between those versions.

[2.0.4] - 2025-02-11

Bug Fixes

  • Harlequin now uses a SQL parser to split the text editor's contents into distinct statements; this fixes a bug where queries could not contain a string literal with a semicolon (like ';') (#348).

[2.0.3] - 2025-02-07

Dependencies

  • Updates the numpy dependency pin to make it more likely that uv tool install harlequin never builds numpy from source (#754).

[2.0.2] - 2025-02-07

Bug Fixes

  • Harlequin now supports infinity and -infinity timestamps (from Postgres and DuckDB), as well as other timestamps that may have previously overflowed Python's native types and been shown as null (#690 - thank you @yrashk!).
  • Harlequin will no longer show a traceback for exceptions that occur after App shutdown has started (#745).
  • Fixes a crash on Windows at start-up due to NoMatches on the ContentSwitcher (#742).
  • Harlequin once again uses the latest version of the IANA TZDATA database for its Windows installations (#662).

[2.0.1] - 2025-01-29

Extras

  • Adds back the cassandra extra (thank you @vkhitrin!)

[2.0.0] - 2025-01-07

Breaking Changes

  • Drops support for Python 3.8.
  • Drops support for Pygments themes in favor of Textual themes. Use harlequin --config to update your config files with a new theme. The default theme, harlequin, remains unchanged.
  • Removes the cassandra and nebulagraph extras, due to package compatibility issues.

Features

  • Adds fuzzy matching for autocomplete (#671).
  • Adds support for Python 3.13.

[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[cassan...
Read more