Releases: tconbeer/harlequin
v1.14.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[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" inharlequin --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 to open a sqlite file with the duckdb adapter or vice versa (#401).
- ctrl+r forces a refresh of the Data Catalog (the catalog is automatically refreshed after DDL queries are executed in Harlequin) (#375).
- At startup, Harlequin attempts to load a cached version of the Data Catalog. The Data Catalog will be updated in the background. A loading indicator will be displayed if there is no cached catalog for the connection parameters (#397).
Bug Fixes
- The Data Catalog no longer shows the loading state after an error loading the catalog.
- Harlequin now exits if attempting to open an invalid file with the sqlite adapter.
[1.10.0] - 2024-01-11
Features
- Harlequin now loads immediately and connects to your database in the background (#393).
- Harlequin shows a loading indicator before the Data Catalog is hydrated for the first time (#396).
Bug Fixes
- Fixes a bug where
harlequin --config
would crash if configuring an adapter that declared no options.
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
...
v1.13.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[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" inharlequin --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 to open a sqlite file with the duckdb adapter or vice versa (#401).
- ctrl+r forces a refresh of the Data Catalog (the catalog is automatically refreshed after DDL queries are executed in Harlequin) (#375).
- At startup, Harlequin attempts to load a cached version of the Data Catalog. The Data Catalog will be updated in the background. A loading indicator will be displayed if there is no cached catalog for the connection parameters (#397).
Bug Fixes
- The Data Catalog no longer shows the loading state after an error loading the catalog.
- Harlequin now exits if attempting to open an invalid file with the sqlite adapter.
[1.10.0] - 2024-01-11
Features
- Harlequin now loads immediately and connects to your database in the background (#393).
- Harlequin shows a loading indicator before the Data Catalog is hydrated for the first time (#396).
Bug Fixes
- Fixes a bug where
harlequin --config
would crash if configuring an adapter that declared no options.
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multipl...
v1.12.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[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 to open a sqlite file with the duckdb adapter or vice versa (#401).
- ctrl+r forces a refresh of the Data Catalog (the catalog is automatically refreshed after DDL queries are executed in Harlequin) (#375).
- At startup, Harlequin attempts to load a cached version of the Data Catalog. The Data Catalog will be updated in the background. A loading indicator will be displayed if there is no cached catalog for the connection parameters (#397).
Bug Fixes
- The Data Catalog no longer shows the loading state after an error loading the catalog.
- Harlequin now exits if attempting to open an invalid file with the sqlite adapter.
[1.10.0] - 2024-01-11
Features
- Harlequin now loads immediately and connects to your database in the background (#393).
- Harlequin shows a loading indicator before the Data Catalog is hydrated for the first time (#396).
Bug Fixes
- Fixes a bug where
harlequin --config
would crash if configuring an adapter that declared no options.
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. ([#315](https:...
v1.11.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.11.0] - 2024-01-12
Features
- Harlequin now shows a more helpful error message when attempting to open a sqlite file with the duckdb adapter or vice versa (#401).
- ctrl+r forces a refresh of the Data Catalog (the catalog is automatically refreshed after DDL queries are executed in Harlequin) (#375).
- At startup, Harlequin attempts to load a cached version of the Data Catalog. The Data Catalog will be updated in the background. A loading indicator will be displayed if there is no cached catalog for the connection parameters (#397).
Bug Fixes
- The Data Catalog no longer shows the loading state after an error loading the catalog.
- Harlequin now exits if attempting to open an invalid file with the sqlite adapter.
[1.10.0] - 2024-01-11
Features
- Harlequin now loads immediately and connects to your database in the background (#393).
- Harlequin shows a loading indicator before the Data Catalog is hydrated for the first time (#396).
Bug Fixes
- Fixes a bug where
harlequin --config
would crash if configuring an adapter that declared no options.
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be ...
v1.10.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.10.0] - 2024-01-11
Features
- Harlequin now loads immediately and connects to your database in the background (#393).
- Harlequin shows a loading indicator before the Data Catalog is hydrated for the first time (#396).
Bug Fixes
- Fixes a bug where
harlequin --config
would crash if configuring an adapter that declared no options.
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pre...
v1.9.2
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.9.2] - 2024-01-10
Features
- The ODBC adapter is now installable as an extra; use
pip install harlequin[odbc]
.
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.
Refactoring
- Harlequin's DuckDB integration has been refactored into a more general-purpose database adapter interface (#263).
- Harlequin's DuckDB adapter is now loaded as a plug-in (#279)
[1.1.1] - 2023-10-09
Bug Fixes
- Harlequin no longer crashes if the data returned by DuckDB contains NoneType or complex ...
v1.9.1
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.9.1] - 2024-01-09
Bug Fixes
- Improves compatibility for adapter return types to accept a sequence of any iterable (tconbeer/textual-fastdatatable#68).
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.
Refactoring
- Harlequin's DuckDB integration has been refactored into a more general-purpose database adapter interface (#263).
- Harlequin's DuckDB adapter is now loaded as a plug-in (#279)
[1.1.1] - 2023-10-09
Bug Fixes
- Harlequin no longer crashes if the data returned by DuckDB contains NoneType or complex (Struct, Map, List) columns (#265 - thank you [@sjdurfey](https://github.com...
v1.9.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.9.0] - 2024-01-08
Features
- Improves keyboard navigation of the Results Viewer by adding key bindings, including ctrl+right/left/up/down/home/end, tab, and ctrl+a.
- The Trino adapter is now installable as an extra; use
pip install harlequin[trino]
. - Harlequin will automatically download a missing timezone database on Windows. Prevent this behavior with
--no-download-tzdata
.
Bug Fixes
- Fixes a crash when selecting data from a timestamptz field (#382) (or another field with an invalid Arrow data type).
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.
Refactoring
- Harlequin's DuckDB integration has been refactored into a more general-purpose database adapter interface (#263).
- Harlequin's DuckDB adapter is now loaded as a plug-in (#279)
[1.1.1] - 2023-10-09
Bug Fixes
- Harlequin no longer crashes if the data returned by DuckDB contains NoneType or complex (Struct, Map, List) columns (#265 - thank you @sjdurfey!).
Testing
- Harlequin now uses snapshot testing on screenshots to prevent regresssions (#252).
- Harlequin no longer installs extensions or connects to Mo...
v1.8.0
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.8.0] - 2023-12-21
Features
- Select a range of cells in the Results Viewer by clicking and dragging or by holding shift while moving the cursor with the keyboard.
- Copy selected cells from the Results Viewer by pressing ctrl+c.
- Very long values in the Results Viewer are now truncated, with an elipsis (
…
). The full value is shown in a tooltip when hovering over a truncated value. (The full value will also be copied to the clipboard). - The BigQuery adapter is now installable as an extra; use
pip install harlequin[bigquery]
.
Bug Fixes
- Fixes an issue on Windows where pressing shift or ctrl would hide the member autocomplete menu.
- Fixes flaky query execution behavior on some platforms.
Testing
- tests/functional_tests/test_app.py has been refactored into many smaller files.
- Fixes an issue with cache tests where the user's main harlequin cache was used instead of a mocked cache location.
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.
Refactoring
- Harlequin's DuckDB integration has been refactored into a more general-purpose database adapter interface (#263).
- Harlequin's DuckDB adapter is now loaded as a plug-in (#279)
[1.1.1] - 2023-10-09
Bug Fixes
- Harlequin no longer crashes if the data returned by DuckDB contains NoneType or complex (Struct, Map, List) columns (#265 - thank you @sjdurfey!).
Testing
- Harlequin now uses snapshot testing on screenshots to prevent regresssions (#252).
- Harlequin no longer installs extensions or connects to MotherDuck in CI, due to flaky failures around the time of DuckDB releases (#262).
[1.1.0] - 2023-10-02
Features
-
Harlequin now executes an initialization script on start-up. By default, it executes the script found at
~/.duckdbrc
. To execute a different script, start Harlequin with the--init-path
option:harlequin --init-path ./my-project-script.sql
To start Harlequin without executing an initialization script, use the
--no-init
flag:harlequin --no-init
Note: DuckDB initialization s...
v1.7.3
Harlequin CHANGELOG
All notable changes to this project will be documented in this file.
[Unreleased]
[1.7.3] - 2023-12-15
Bug Fixes
- Fixes an issue where completions were truncated improperly in the autocomplete menu.
Testing
- Prevents limit input cursor blink when running tests in headless mode, for less flaky tests.
[1.7.2] - 2023-12-14
Features
- The MySQL adapter is now installable as an extra; use
pip install harlequin[mysql]
.
[1.7.1] - 2023-12-14
Bug Fixes
- Fixes a crash when using
harlequin-postgres
and executing a select statement that returns zero records.
[1.7.0] - 2023-12-13
Features
- AUTOCOMPLETE! Harlequin's query editor will now offer completions in a drop-down for SQL keywords, functions, and database objects (like tables, views, columns). With the autocomplete list open, use up, down, PgUp, PgDn, to select an option and enter or Tab to insert it into the editor.
- Harlequin now uses a new TextArea widget for its code editor. This improves performance for long queries, adds line numbers in a gutter, and changes the underlying engine for syntax highlighting from Pygments to Tree Sitter (tconbeer/textual-textarea#123).
- In the Query Editor: double-click to select a word, triple-click to select a line, and quadruple-click to select the entire query (tconbeer/textual-textarea#111, tconbeer/textual-textarea#112).
Changes
- Changes the default theme to
harlequin
.
Adapter API Changes
- Many key types are now exported from the main
harlequin
package:HarlequinAdapter
,HarlequinConnection
,HarlequinCursor
,HarlequinAdapterOption
,HarlequinCopyFormat
,HarlequinCompletion
. HarlequinConnection
s may now (optionally) define aget_completions()
method, which should return a list ofHarlequinCompletion
instances; each returned completion will be available to users in the autocompletion list.
Bug Fixes
- Fixes a bug that was causing an empty line to appear at the bottom of the Query Editor pane.
[1.6.0] - 2023-12-07
Features
- Harlequin can now be configured using a TOML file. The config file can both specify options for Harlequin (like the theme and row limit) and also for installed adapters (like the host, username, and password for a database connection). The config file can define multiple "profiles" (sets of configuration), and you can select the profile to use when starting Harlequin with the
--profile
option (alias-P
). By default, Harlequin searches the current directory and home directories for files called either.harlequin.toml
orpyproject.toml
, and merges the config it finds in them. You can specify a different path using the--config-path
option. Values loaded from config files can be overridden by passing CLI options (#206). - Harlequin now ships with a wizard to make it easy to create or update config files. Simply run Harlequin with the
--config
option. - Adds a
harlequin
theme. You can use it withharlequin -t harlequin
.
[1.5.0] - 2023-11-28
Breaking Changes
- The SQLite adapter no longer provides a
check-same-thread
option; the established connection sets this value to False to enable Harlequin features.
Features
- The Postgres adapter is now installable as an extra; use
pip install harlequin[postgres]
.
Bug Fixes
- Harlequin no longer becomes unresponsive when loading a large data catalog or executing long-running queries (#236, #332, #331).
- Fixes a flaky test that was causing intermittent CI failures.
[1.4.1] - 2023-11-20
Bug Fixes
- Adds a
py.typed
file to theharlequin
package.
[1.4.0] - 2023-11-18
Features
- Harlequin now ships with an experimental SQLite adapter and can be used to query any SQLite database (including an in-memory database). You can select the adapter by starting Harlequin with
harlequin -a sqlite
(for an in-memory session) orharlequin -a sqlite my.db
. harlequin --help
is all-new, with a glow-up provided byrich-click
. Options for each adapter are separated into their own panels.harlequin --version
now shows the versions of installed database adapters (#317).
Refactoring
- The code for the DuckDB adapter has been moved from
/plugins/harlequin_duckdb
to/src/harlequin_duckdb
. - The unused
export_options.py
module has been removed (#327).
[1.3.1] - 2023-11-13
Bug Fixes
- When running multiple queries, Harlequin now activates the results tab for the last query, instead of the first one.
- Queries that return duplicate column names are now displayed correctly in the Results Viewer (tconbeer/textual-fastdatatable#26).
- List types returned by DuckDB no longer display as
?
, but instead as[#]
,[s]
, etc. (#315). - Map types returned by DuckDB now display as
{m}
, to differentiate them from structs ({}
). - The Results Viewer no longer displays "Query Returned No Records" before the first query is executed.
- The data returned by HarlequinCursor.fetchall() no longer needs to be a PyArrow Table (#281).
[1.3.0] - 2023-11-06
Features
- Adds an
--adapter
CLI option (alias-a
) for selecting an installed adapter plug-in.
Bug Fixes
- Fixes a crash that could happen when a query returned no records (tconbeer/textual-fastdatatable#19).
Adapter API Changes
- The function signature for HarlequinConnection.copy() has changed to add a
format_name
positional argument. - The HarlequinAdapter.COPY_OPTIONS class variable has been renamed to HarlequinAdapter.COPY_FORMATS, and its
type has changed. - The function signature for HarlequinAdapter.connect() has changed to return only a HarlequinConnection; HarlequinConnection now accepts an
init_message
kwarg that will be displayed to the user as a notification.
Refactoring
- Harlequin's CLI now dynamically loads the available options from the installed adapters (#276).
- Harlequin now dynamically loads data export options from the selected adapter (#275).
[1.2.0] - 2023-10-22
[1.2.0-alpha.1] - 2023-10-22
Bug Fixes
- Harlequin's query notifications no longer count whitespace-only queries (#268).
- Harlequin's DataCatalog now displays "db" next to database names and "sch" next to schema names. Empty databases and schemas no longer have an arrow to expand them.
- If the cursor is after the final semicolon in the query editor, Harlequin will now execute the last query before the semicolon, instead of doing nothing when clicking Run Query or pressing ctrl+j.
Refactoring
- Harlequin's DuckDB integration has been refactored into a more general-purpose database adapter interface (#263).
- Harlequin's DuckDB adapter is now loaded as a plug-in (#279)
[1.1.1] - 2023-10-09
Bug Fixes
- Harlequin no longer crashes if the data returned by DuckDB contains NoneType or complex (Struct, Map, List) columns (#265 - thank you @sjdurfey!).
Testing
- Harlequin now uses snapshot testing on screenshots to prevent regresssions (#252).
- Harlequin no longer installs extensions or connects to MotherDuck in CI, due to flaky failures around the time of DuckDB releases (#262).
[1.1.0] - 2023-10-02
Features
-
Harlequin now executes an initialization script on start-up. By default, it executes the script found at
~/.duckdbrc
. To execute a different script, start Harlequin with the--init-path
option:harlequin --init-path ./my-project-script.sql
To start Harlequin without executing an initialization script, use the
--no-init
flag:harlequin --no-init
Note: DuckDB 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
commands. -
Harlequin now displays notifications after completing successful queries (#235 - thank you @natir!), saving the contents of a buffer (#226), and receiving an error from the system clipboard.
-
Harlequin now loads data from a completed query up to 1,000x faster by using a new DataTable widget (#181). By default, the Results Viewer is now limited to 100,000 records, instead of 10,000. This limit can be cha...