diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 7853e8e8..7203a09a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.6.0
+ rev: v0.6.1
hooks:
- id: ruff-format
- id: ruff
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c374fe5c..273f3893 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+### 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).
+- 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.
+- The DuckDB and SQLite adapters now support lazy-loading and a wide range of interactions, including `use`ing database and schemas, previewing data, dropping objects, and showing DDL for objects.
+
+
## [1.24.1] - 2024-09-25
### Bug Fixes
diff --git a/poetry.lock b/poetry.lock
index e25b3b5b..2c6db418 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2422,64 +2422,6 @@ files = [
{file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"},
]
-[[package]]
-name = "pandas"
-version = "2.1.0"
-description = "Powerful data structures for data analysis, time series, and statistics"
-optional = true
-python-versions = ">=3.9"
-files = [
- {file = "pandas-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:40dd20439ff94f1b2ed55b393ecee9cb6f3b08104c2c40b0cb7186a2f0046242"},
- {file = "pandas-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d4f38e4fedeba580285eaac7ede4f686c6701a9e618d8a857b138a126d067f2f"},
- {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e6a0fe052cf27ceb29be9429428b4918f3740e37ff185658f40d8702f0b3e09"},
- {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d81e1813191070440d4c7a413cb673052b3b4a984ffd86b8dd468c45742d3cc"},
- {file = "pandas-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eb20252720b1cc1b7d0b2879ffc7e0542dd568f24d7c4b2347cb035206936421"},
- {file = "pandas-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:38f74ef7ebc0ffb43b3d633e23d74882bce7e27bfa09607f3c5d3e03ffd9a4a5"},
- {file = "pandas-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cda72cc8c4761c8f1d97b169661f23a86b16fdb240bdc341173aee17e4d6cedd"},
- {file = "pandas-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d97daeac0db8c993420b10da4f5f5b39b01fc9ca689a17844e07c0a35ac96b4b"},
- {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8c58b1113892e0c8078f006a167cc210a92bdae23322bb4614f2f0b7a4b510f"},
- {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:629124923bcf798965b054a540f9ccdfd60f71361255c81fa1ecd94a904b9dd3"},
- {file = "pandas-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:70cf866af3ab346a10debba8ea78077cf3a8cd14bd5e4bed3d41555a3280041c"},
- {file = "pandas-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d53c8c1001f6a192ff1de1efe03b31a423d0eee2e9e855e69d004308e046e694"},
- {file = "pandas-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86f100b3876b8c6d1a2c66207288ead435dc71041ee4aea789e55ef0e06408cb"},
- {file = "pandas-2.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28f330845ad21c11db51e02d8d69acc9035edfd1116926ff7245c7215db57957"},
- {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a6ccf0963db88f9b12df6720e55f337447aea217f426a22d71f4213a3099a6"},
- {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99e678180bc59b0c9443314297bddce4ad35727a1a2656dbe585fd78710b3b9"},
- {file = "pandas-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b31da36d376d50a1a492efb18097b9101bdbd8b3fbb3f49006e02d4495d4c644"},
- {file = "pandas-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0164b85937707ec7f70b34a6c3a578dbf0f50787f910f21ca3b26a7fd3363437"},
- {file = "pandas-2.1.0.tar.gz", hash = "sha256:62c24c7fc59e42b775ce0679cfa7b14a5f9bfb7643cfbe708c960699e05fb918"},
-]
-
-[package.dependencies]
-numpy = {version = ">=1.23.2", markers = "python_version >= \"3.11\""}
-python-dateutil = ">=2.8.2"
-pytz = ">=2020.1"
-tzdata = ">=2022.1"
-
-[package.extras]
-all = ["PyQt5 (>=5.15.6)", "SQLAlchemy (>=1.4.36)", "beautifulsoup4 (>=4.11.1)", "bottleneck (>=1.3.4)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=0.8.1)", "fsspec (>=2022.05.0)", "gcsfs (>=2022.05.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.8.0)", "matplotlib (>=3.6.1)", "numba (>=0.55.2)", "numexpr (>=2.8.0)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pandas-gbq (>=0.17.5)", "psycopg2 (>=2.9.3)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.5)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "pyxlsb (>=1.0.9)", "qtpy (>=2.2.0)", "s3fs (>=2022.05.0)", "scipy (>=1.8.1)", "tables (>=3.7.0)", "tabulate (>=0.8.10)", "xarray (>=2022.03.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)", "zstandard (>=0.17.0)"]
-aws = ["s3fs (>=2022.05.0)"]
-clipboard = ["PyQt5 (>=5.15.6)", "qtpy (>=2.2.0)"]
-compression = ["zstandard (>=0.17.0)"]
-computation = ["scipy (>=1.8.1)", "xarray (>=2022.03.0)"]
-consortium-standard = ["dataframe-api-compat (>=0.1.7)"]
-excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.10)", "pyxlsb (>=1.0.9)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.3)"]
-feather = ["pyarrow (>=7.0.0)"]
-fss = ["fsspec (>=2022.05.0)"]
-gcp = ["gcsfs (>=2022.05.0)", "pandas-gbq (>=0.17.5)"]
-hdf5 = ["tables (>=3.7.0)"]
-html = ["beautifulsoup4 (>=4.11.1)", "html5lib (>=1.1)", "lxml (>=4.8.0)"]
-mysql = ["SQLAlchemy (>=1.4.36)", "pymysql (>=1.0.2)"]
-output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.8.10)"]
-parquet = ["pyarrow (>=7.0.0)"]
-performance = ["bottleneck (>=1.3.4)", "numba (>=0.55.2)", "numexpr (>=2.8.0)"]
-plot = ["matplotlib (>=3.6.1)"]
-postgresql = ["SQLAlchemy (>=1.4.36)", "psycopg2 (>=2.9.3)"]
-spss = ["pyreadstat (>=1.1.5)"]
-sql-other = ["SQLAlchemy (>=1.4.36)"]
-test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"]
-xml = ["lxml (>=4.8.0)"]
-
[[package]]
name = "pandas"
version = "2.1.4"
@@ -3047,7 +2989,7 @@ textual = ">=0.28.0"
type = "git"
url = "https://github.com/tconbeer/pytest-textual-snapshot.git"
reference = "main"
-resolved_reference = "f8f09d0a5fc375430859e3ee707c5da745c83368"
+resolved_reference = "c470cccb2d8641046debe0569201d12d5b0bdf60"
[[package]]
name = "python-dateutil"
diff --git a/src/harlequin/actions.py b/src/harlequin/actions.py
index db5481f1..fe6e545f 100644
--- a/src/harlequin/actions.py
+++ b/src/harlequin/actions.py
@@ -15,6 +15,7 @@
ResultsTable,
ResultsViewer,
)
+from harlequin.components.data_catalog import ContextMenu
if TYPE_CHECKING:
from textual.widget import Widget
@@ -225,6 +226,10 @@ class Action:
"data_catalog.focus_results_viewer": Action(
target=DataCatalog, action="focus_results_viewer"
),
+ "data_catalog.show_context_menu": Action(
+ target=HarlequinTree, action="show_context_menu", show=True
+ ),
+ "data_catalog.hide_context_menu": Action(target=ContextMenu, action="hide"),
#######################################################
# ResultsViewer ACTIONS
#######################################################
diff --git a/src/harlequin/app.py b/src/harlequin/app.py
index 9ee6aee5..5aa3aeda 100644
--- a/src/harlequin/app.py
+++ b/src/harlequin/app.py
@@ -8,6 +8,7 @@
from pathlib import Path
from typing import (
TYPE_CHECKING,
+ Callable,
Dict,
List,
Optional,
@@ -38,8 +39,16 @@
from harlequin.adapter import HarlequinAdapter, HarlequinCursor
from harlequin.app_base import AppBase
from harlequin.autocomplete import completer_factory
+from harlequin.autocomplete.completers import MemberCompleter, WordCompleter
from harlequin.bindings import bind
-from harlequin.catalog import Catalog, NewCatalog
+from harlequin.catalog import (
+ Catalog,
+ CatalogItem,
+ Interaction,
+ NewCatalog,
+ NewCatalogItems,
+ TCatalogItem_contra,
+)
from harlequin.catalog_cache import (
CatalogCache,
get_catalog_cache,
@@ -57,7 +66,11 @@
RunQueryBar,
export_callback,
)
+from harlequin.components.confirm_modal import ConfirmModal
+from harlequin.components.data_catalog import ContextMenu
+from harlequin.components.data_catalog.tree import HarlequinTree
from harlequin.copy_formats import HARLEQUIN_COPY_FORMATS, WINDOWS_COPY_FORMATS
+from harlequin.driver import HarlequinDriver
from harlequin.editor_cache import BufferState, Cache
from harlequin.editor_cache import write_cache as write_editor_cache
from harlequin.exception import (
@@ -147,6 +160,15 @@ def __init__(self, new_mode: HarlequinTransactionMode | None) -> None:
self.new_mode = new_mode
+class CompletersReady(Message):
+ def __init__(
+ self, word_completer: WordCompleter, member_completer: MemberCompleter
+ ) -> None:
+ super().__init__()
+ self.word_completer = word_completer
+ self.member_completer = member_completer
+
+
class Harlequin(AppBase):
"""
The SQL IDE for your Terminal.
@@ -180,7 +202,6 @@ def __init__(
)
self.adapter = adapter
self.connection_hash = connection_hash
- self.catalog: Catalog | None = None
self.history: History | None = None
self.theme = theme
self.show_files = show_files
@@ -199,6 +220,7 @@ def __init__(
)
self.query_timer: Union[float, None] = None
self.connection: HarlequinConnection | None = None
+ self.harlequin_driver = HarlequinDriver(app=self)
if keymap_names is None:
keymap_names = ("vscode",)
@@ -361,22 +383,24 @@ def initialize_app(self, message: DatabaseConnected) -> None:
self.notify("Database Connected.")
self.update_schema_data()
- @on(DataCatalog.NodeSubmitted)
- def insert_node_into_editor(self, message: DataCatalog.NodeSubmitted) -> None:
+ @on(HarlequinTree.NodeSubmitted)
+ def insert_node_into_editor(self, message: HarlequinTree.NodeSubmitted) -> None:
message.stop()
if self.editor is None:
# recycle message while editor loads
- self.post_message(message=message)
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.1, callback=callback)
return
self.editor.insert_text_at_selection(text=message.insert_name)
self.editor.focus()
- @on(DataCatalog.NodeCopied)
- def copy_node_name(self, message: DataCatalog.NodeCopied) -> None:
+ @on(HarlequinTree.NodeCopied)
+ def copy_node_name(self, message: HarlequinTree.NodeCopied) -> None:
message.stop()
if self.editor is None:
# recycle message while we wait for the editor to load
- self.post_message(message=message)
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.1, callback=callback)
return
self.editor.text_input.clipboard = message.copy_name
if (
@@ -390,6 +414,55 @@ def copy_node_name(self, message: DataCatalog.NodeCopied) -> None:
else:
self.notify("Selected label copied to clipboard.")
+ @on(HarlequinDriver.InsertTextAtSelection)
+ def driver_insert_text_into_editor(
+ self, message: HarlequinDriver.InsertTextAtSelection
+ ) -> None:
+ message.stop()
+ if self.editor is None:
+ # recycle message while editor loads
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.1, callback=callback)
+ return
+ self.editor.insert_text_at_selection(text=message.text)
+ self.editor.focus()
+
+ @on(HarlequinDriver.InsertTextInNewBuffer)
+ async def driver_insert_text_in_new_buffer(
+ self, message: HarlequinDriver.InsertTextInNewBuffer
+ ) -> None:
+ message.stop()
+ if self.editor is None:
+ # recycle message while editor loads
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.1, callback=callback)
+ return
+ await self.editor_collection.insert_buffer_with_text(query_text=message.text)
+
+ @on(HarlequinDriver.ConfirmAndExecute)
+ def driver_confirm_and_execute(
+ self, message: HarlequinDriver.ConfirmAndExecute
+ ) -> None:
+ message.stop()
+
+ def screen_callback(dismiss_value: bool | None) -> None:
+ if dismiss_value:
+ self._execute_callback(callback=message.callback)
+
+ self.push_screen(
+ ConfirmModal(prompt=message.instructions), callback=screen_callback
+ )
+
+ @on(HarlequinDriver.Notify)
+ def driver_notify(self, message: HarlequinDriver.Notify) -> None:
+ message.stop()
+ self.notify(message=message.notify_message, severity=message.severity)
+
+ @on(HarlequinDriver.Refreshcatalog)
+ def driver_refresh_catalog(self, message: HarlequinDriver.Refreshcatalog) -> None:
+ message.stop()
+ self.update_schema_data()
+
@on(EditorCollection.EditorSwitched)
def update_internal_editor_state(
self, message: EditorCollection.EditorSwitched
@@ -440,7 +513,8 @@ def copy_data_to_clipboard(self, message: DataTable.SelectionCopied) -> None:
message.stop()
if self.editor is None:
# recycle the message while we wait for the editor to load
- self.post_message(message=message)
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.1, callback=callback)
return
# Excel, sheets, and Snowsight all use a TSV format for copying tabular data
text = os.linesep.join("\t".join(map(str, row)) for row in message.values)
@@ -487,8 +561,8 @@ async def _handle_worker_error(self, message: Worker.StateChanged) -> None:
)
self.exit(return_code=2, message=pretty_error_message(error))
- @on(DataCatalog.CatalogError)
- def handle_catalog_error(self, message: DataCatalog.CatalogError) -> None:
+ @on(HarlequinTree.CatalogError)
+ def handle_catalog_error(self, message: HarlequinTree.CatalogError) -> None:
self._push_error_modal(
title=f"Catalog Error: {message.catalog_type}",
header=f"Could not populate the {message.catalog_type} data catalog",
@@ -518,12 +592,33 @@ def handle_data_load_error(self, message: DataTable.DataLoadError) -> None:
error=message.error,
)
+ @on(ContextMenu.ExecuteInteraction)
+ def execute_interaction_in_thread(
+ self, message: ContextMenu.ExecuteInteraction
+ ) -> None:
+ self._execute_interaction(
+ interaction=message.interaction,
+ item=message.item,
+ driver=self.harlequin_driver,
+ )
+
@on(NewCatalog)
- def update_tree_and_completers(self, message: NewCatalog) -> None:
- self.catalog = message.catalog
+ def handle_new_catalog(self, message: NewCatalog) -> None:
self.data_catalog.update_database_tree(message.catalog)
self.update_completers(message.catalog)
+ @on(NewCatalogItems)
+ def handle_new_catalog_item(self, message: NewCatalogItems) -> None:
+ if (
+ self.editor_collection.word_completer is not None
+ and self.editor_collection.member_completer is not None
+ ):
+ self.extend_completers(parent=message.parent, items=message.items)
+ else:
+ # recycle message while completers are built
+ callback = partial(self.post_message, message)
+ self.set_timer(delay=0.5, callback=callback)
+
@on(QueriesExecuted)
def fetch_data_or_reset_table(self, message: QueriesExecuted) -> None:
if message.cursors: # select query
@@ -684,6 +779,11 @@ def update_transaction_button_label(self, message: TransactionModeChanged) -> No
self.run_query_bar.commit_button.add_class("hidden")
self.run_query_bar.rollback_button.add_class("hidden")
+ @on(CompletersReady)
+ def update_editor_completers(self, message: CompletersReady) -> None:
+ self.editor_collection.word_completer = message.word_completer
+ self.editor_collection.member_completer = message.member_completer
+
def action_noop(self) -> None:
"""
A no-op action to unmap keys.
@@ -830,7 +930,7 @@ async def action_quit(self) -> None:
write_editor_cache(Cache(focus_index=focus_index, buffers=buffers))
update_catalog_cache(
connection_hash=self.connection_hash,
- catalog=self.catalog,
+ catalog=None, # TODO: cache completions instead.
s3_tree=self.data_catalog.s3_tree,
history=self.history,
)
@@ -982,13 +1082,18 @@ def _fetch_data(
ResultsFetched(cursors=cursors, data=data, errors=errors, elapsed=elapsed)
)
- @work(
- thread=True,
- exclusive=True,
- exit_on_error=True,
- group="completer_builders",
- description="building completers",
- )
+ def extend_completers(self, parent: CatalogItem, items: list[CatalogItem]) -> None:
+ if (
+ self.editor_collection.word_completer is not None
+ and self.editor_collection.member_completer is not None
+ ):
+ self.editor_collection.word_completer.extend_catalog(
+ parent=parent, items=items
+ )
+ self.editor_collection.member_completer.extend_catalog(
+ parent=parent, items=items
+ )
+
def update_completers(self, catalog: Catalog) -> None:
if self.connection is None:
return
@@ -999,14 +1104,28 @@ def update_completers(self, catalog: Catalog) -> None:
self.editor_collection.word_completer.update_catalog(catalog=catalog)
self.editor_collection.member_completer.update_catalog(catalog=catalog)
else:
- extra_completions = self.connection.get_completions()
- word_completer, member_completer = completer_factory(
- catalog=catalog,
- extra_completions=extra_completions,
- type_color=self.app_colors.gray,
+ self._build_completers(catalog)
+
+ @work(
+ thread=True,
+ exclusive=True,
+ exit_on_error=True,
+ group="completer_builders",
+ description="building completers",
+ )
+ def _build_completers(self, catalog: Catalog) -> None:
+ assert self.connection is not None
+ extra_completions = self.connection.get_completions()
+ word_completer, member_completer = completer_factory(
+ catalog=catalog,
+ extra_completions=extra_completions,
+ type_color=self.app_colors.gray,
+ )
+ self.post_message(
+ CompletersReady(
+ word_completer=word_completer, member_completer=member_completer
)
- self.editor_collection.word_completer = word_completer
- self.editor_collection.member_completer = member_completer
+ )
@work(thread=True, exclusive=True, exit_on_error=False, group="schema_updaters")
def update_schema_data(self) -> None:
@@ -1096,6 +1215,53 @@ def rollback(self) -> None:
self.notify(f"Transaction rolled back in {elapsed:.2f} seconds.")
self.update_schema_data()
+ @work(
+ thread=True,
+ exclusive=True,
+ exit_on_error=False,
+ group="interactions",
+ description="_execute_interaction",
+ )
+ def _execute_interaction(
+ self,
+ interaction: Interaction,
+ item: TCatalogItem_contra,
+ driver: HarlequinDriver,
+ ) -> None:
+ try:
+ interaction(item=item, driver=driver)
+ except Exception as e:
+ self.call_from_thread(
+ self._push_error_modal,
+ title="Data Catalog Interaction Error",
+ header=(
+ "Harlequin could not execute an interaction from your data catalog."
+ ),
+ error=e,
+ )
+
+ @work(
+ thread=True,
+ exclusive=True,
+ exit_on_error=False,
+ group="interactions",
+ )
+ def _execute_callback(
+ self,
+ callback: Callable[[], None],
+ ) -> None:
+ try:
+ callback()
+ except Exception as e:
+ self.call_from_thread(
+ self._push_error_modal,
+ title="Data Catalog Interaction Error",
+ header=(
+ "Harlequin could not execute an interaction from your data catalog."
+ ),
+ error=e,
+ )
+
def _get_keymap(self, keymap_name: str) -> "HarlequinKeyMap" | None:
try:
keymap = self.all_keymaps[keymap_name]
diff --git a/src/harlequin/app.tcss b/src/harlequin/app.tcss
index 14dd5f7a..7bf09130 100644
--- a/src/harlequin/app.tcss
+++ b/src/harlequin/app.tcss
@@ -54,6 +54,7 @@ Lazy {
DataCatalog {
height: 1fr;
width: 1fr;
+ layers: main overlay;
}
DataCatalog DatabaseTree,
@@ -84,6 +85,37 @@ DataCatalog * .directory-tree--hidden {
color: $text-muted;
}
+DataCatalog ContextMenu {
+ layer: overlay;
+ display: none;
+ padding: 1 1;
+ border: none;
+ color: $text;
+ margin: 0 2;
+ overflow: hidden auto;
+ width: 1fr;
+ max-width: 100%;
+ max-height: 10;
+ background: $background-lighten-2 ;
+ &.open {
+ display: block;
+ }
+ &:focus{
+ background: $secondary ;
+ }
+ &>.option-list--option-hover {
+ color: $background;
+ background: $secondary;
+ text-style: bold;
+ }
+ &>.option-list--option-highlighted {
+ color: $background;
+ background: $secondary;
+ text-style: reverse bold;
+ }
+}
+
+
/* RIGHT HAND CONTAINER */
#main_panel {
width: 3fr;
@@ -553,3 +585,57 @@ HistoryScreen OptionList > .option-list--option-hover-highlighted {
color: auto;
text-style: none;
}
+
+
+/* ConfirmModal */
+
+ConfirmModal {
+ align: center middle;
+ padding: 0;
+}
+
+ConfirmModal Vertical#outer {
+ border: round $border-color-focus;
+ background: $background;
+ margin: 2 0;
+ padding: 1 1;
+ height: auto;
+ max-height: 30;
+ width: auto;
+ max-width: 88;
+}
+
+ConfirmModal Label {
+ width: 100%;
+ text-align: center;
+
+}
+
+ConfirmModal Horizontal#button_row {
+ height: auto;
+ width: auto;
+ align: center bottom;
+ margin: 2 0 1 0;
+}
+
+ConfirmModal Horizontal#button_row Button {
+ background: $primary;
+ height: 3;
+ margin: 0 4;
+ padding: 0 1;
+ min-width: 16;
+ border: none;
+ &:hover {
+ background: $secondary;
+ }
+ &:focus {
+ text-style: reverse;
+ }
+}
+
+ConfirmModal Horizontal#button_row Button#no{
+ background: $error;
+ &:hover {
+ background: $secondary;
+ }
+}
diff --git a/src/harlequin/autocomplete/completers.py b/src/harlequin/autocomplete/completers.py
index 46aa611d..a65716c1 100644
--- a/src/harlequin/autocomplete/completers.py
+++ b/src/harlequin/autocomplete/completers.py
@@ -62,6 +62,18 @@ def update_catalog(self, catalog: Catalog) -> None:
self._extra_completions,
)
+ def extend_catalog(self, parent: CatalogItem, items: list[CatalogItem]) -> None:
+ # TODO: dedupe/merge on the parent's unique key, so we can load items from
+ # a cache and update them later when they are lazy-loaded.
+ new_completions = _build_children_completions(items=items, context=parent.label)
+ self._catalog_completions.extend(new_completions)
+ self.completions = self._merge_completions(
+ self._keyword_completions,
+ self._function_completions,
+ self._catalog_completions,
+ self._extra_completions,
+ )
+
@staticmethod
def _merge_completions(
*completion_lists: list[HarlequinCompletion],
diff --git a/src/harlequin/catalog.py b/src/harlequin/catalog.py
index d3d48987..c4fee5ab 100644
--- a/src/harlequin/catalog.py
+++ b/src/harlequin/catalog.py
@@ -1,34 +1,93 @@
+from __future__ import annotations
+
from dataclasses import dataclass, field
-from typing import List
+from typing import TYPE_CHECKING, ClassVar, Generic, Protocol, Sequence, TypeVar
from textual.message import Message
+if TYPE_CHECKING:
+ from harlequin.adapter import HarlequinConnection
+ from harlequin.driver import HarlequinDriver
+
@dataclass
class CatalogItem:
"""
- A representation of a database object.
+ A basic representation of a database object for Harlequin's Data Catalog.
Args:
qualified_identifier (str): The fully-scoped and (optionally) quoted database
identifier for this object. Should be globally unique for the Connection.
e.g., a postgres table: "mydb"."myschema"."mytable"
query_name (str): The text to be inserted into the query editor for this
- object.
+ object. This is typically the qualified_indentifier, but often
+ for columns it is just the quoted name of the column (without
+ the qualifying schema/table/etc).
label (str): The unqualified name for this object, to appear in the Data
Catalog widget.
type_label (str): A short (1-3 chars) label denoting the type of this object
or the data it contains. e.g., ("t") for "table" or "##" for
"bigint column".
children (list[CatalogItem]): Other nodes nested under this one (e.g.,
- a list of columns if this is a table.)
+ a list of columns if this is a table.). If the list is empty and
+ a CatalogItem subclass implements the `fetch_children()` method,
+ Harlequin will attempt to call that method to lazy-load children.
"""
qualified_identifier: str
query_name: str
label: str
type_label: str
- children: List["CatalogItem"] = field(default_factory=list)
+ children: list["CatalogItem"] = field(default_factory=list)
+
+
+TCatalogItem_contra = TypeVar(
+ "TCatalogItem_contra", bound=CatalogItem, contravariant=True
+)
+TAdapterConnection_contra = TypeVar(
+ "TAdapterConnection_contra", bound="HarlequinConnection", contravariant=True
+)
+
+
+class Interaction(Protocol[TCatalogItem_contra]):
+ def __call__(
+ self,
+ item: TCatalogItem_contra,
+ driver: "HarlequinDriver",
+ ) -> None: ...
+
+
+@dataclass
+class InteractiveCatalogItem(CatalogItem, Generic[TAdapterConnection_contra]):
+ """
+ An advanced representation of a database object that can lazy-load its
+ children and provide other interactions via a context menu. Subclass
+ this class and define the INTERACTIONS class variable to populate
+ Harlequin's context menu.
+
+ Each list item is a tuple with a label (for the context menu) and a
+ callable that takes three arguments: the CatalogItem node that is clicked
+ on, the initialized HarlequinConnection, and a HarlequinDriver that
+ provides a simplified interface to the Harlequin App and allows the
+ interactions to do things like insert text into the editor, show
+ a confirmation modal, and display a notification (toast).
+ """
+
+ INTERACTIONS: ClassVar[Sequence[tuple[str, Interaction]] | None] = None
+ loaded: bool = False
+ """
+ Harlequin will set loaded to True after calling fetch_children. You
+ can prevent calls to fetch_children by initializing loaded=True.
+ """
+ connection: TAdapterConnection_contra | None = None
+
+ def fetch_children(self) -> Sequence[CatalogItem]:
+ """
+ Returns a list of CatalogItems (or subclass instances, like other
+ InteractiveCatalogItems) to be shown under this item in the catalog
+ tree viewer. Return an empty list if this item has no children.
+ """
+ return []
@dataclass
@@ -42,10 +101,17 @@ class Catalog:
a database object, like a database, schema, table, or column.
"""
- items: List[CatalogItem]
+ items: list[CatalogItem]
class NewCatalog(Message):
def __init__(self, catalog: Catalog) -> None:
self.catalog = catalog
super().__init__()
+
+
+class NewCatalogItems(Message):
+ def __init__(self, parent: CatalogItem, items: list[CatalogItem]) -> None:
+ self.parent = parent
+ self.items = items
+ super().__init__()
diff --git a/src/harlequin/catalog_cache.py b/src/harlequin/catalog_cache.py
index 04a3679f..443343d4 100644
--- a/src/harlequin/catalog_cache.py
+++ b/src/harlequin/catalog_cache.py
@@ -41,8 +41,8 @@ class CatalogCache:
history: dict[str, History]
def get_db(self, connection_hash: str) -> Catalog | None:
- if connection_hash:
- return self.databases.get(connection_hash, None)
+ # if connection_hash:
+ # return self.databases.get(connection_hash, None)
return None
def get_history(self, connection_hash: str) -> History | None:
@@ -84,8 +84,8 @@ def update_catalog_cache(
cache = _load_cache()
if cache is None:
cache = CatalogCache(databases={}, s3={}, history={})
- if catalog is not None and connection_hash:
- cache.databases[connection_hash] = catalog
+ # if catalog is not None and connection_hash:
+ # cache.databases[connection_hash] = catalog
if s3_tree is not None and s3_tree.catalog_data is not None:
cache.s3[s3_tree.cache_key] = s3_tree.catalog_data
if history is not None and connection_hash:
diff --git a/src/harlequin/components/confirm_modal.py b/src/harlequin/components/confirm_modal.py
new file mode 100644
index 00000000..722db28b
--- /dev/null
+++ b/src/harlequin/components/confirm_modal.py
@@ -0,0 +1,34 @@
+from __future__ import annotations
+
+from textual import on
+from textual.app import ComposeResult
+from textual.containers import Horizontal, Vertical
+from textual.screen import ModalScreen
+from textual.widgets import Button, Label
+
+
+class ConfirmModal(ModalScreen[bool]):
+ def __init__(self, prompt: str) -> None:
+ super().__init__()
+ self.prompt = prompt
+
+ def compose(self) -> ComposeResult:
+ with Vertical(id="outer"):
+ yield Label(self.prompt, id="prompt_label")
+ with Horizontal(id="button_row"):
+ yield Button(label="No", id="no")
+ yield Button(label="Yes", variant="primary", id="yes")
+
+ @on(Button.Pressed, "#yes")
+ def save_from_button(self) -> None:
+ self.action_continue()
+
+ @on(Button.Pressed, "#no")
+ def cancel_from_button(self) -> None:
+ self.action_cancel()
+
+ def action_continue(self) -> None:
+ self.dismiss(True)
+
+ def action_cancel(self) -> None:
+ self.dismiss(False)
diff --git a/src/harlequin/components/data_catalog.py b/src/harlequin/components/data_catalog.py
deleted file mode 100644
index 6637ed92..00000000
--- a/src/harlequin/components/data_catalog.py
+++ /dev/null
@@ -1,476 +0,0 @@
-from __future__ import annotations
-
-from pathlib import Path
-from typing import ClassVar, Generic, List, Set, Tuple, Union
-from urllib.parse import urlsplit
-
-from rich.text import TextType
-from textual import on, work
-from textual.css.query import NoMatches
-from textual.events import Click
-from textual.message import Message
-from textual.widgets import (
- DirectoryTree,
- TabbedContent,
- TabPane,
- Tabs,
- Tree,
-)
-from textual.widgets._directory_tree import DirEntry
-from textual.widgets._tree import EventTreeDataType, TreeNode
-from textual.worker import Worker, WorkerState
-
-from harlequin.catalog import Catalog, CatalogItem
-from harlequin.catalog_cache import CatalogCache, recursive_dict
-from harlequin.messages import WidgetMounted
-
-try:
- import boto3
-except ImportError:
- boto3 = None # type: ignore
-
-
-class DataCatalog(TabbedContent, can_focus=True):
- BORDER_TITLE = "Data Catalog"
-
- class NodeSubmitted(Generic[EventTreeDataType], Message):
- def __init__(self, node: TreeNode[EventTreeDataType]) -> None:
- self.node: TreeNode[EventTreeDataType] = node
- super().__init__()
-
- @property
- def insert_name(self) -> str:
- if not self.node.data:
- return ""
- elif isinstance(self.node.data, CatalogItem):
- return self.node.data.query_name
- elif isinstance(self.node.data, DirEntry):
- return f"'{self.node.data.path}'"
- else:
- return str(self.node.data)
-
- class NodeCopied(Generic[EventTreeDataType], Message):
- def __init__(self, node: TreeNode[EventTreeDataType]) -> None:
- self.node: TreeNode[EventTreeDataType] = node
- super().__init__()
-
- @property
- def copy_name(self) -> str:
- if not self.node.data:
- return ""
- elif isinstance(self.node.data, CatalogItem):
- return self.node.data.query_name
- elif isinstance(self.node.data, DirEntry):
- return str(self.node.data.path)
- else:
- return str(self.node.data)
-
- class CatalogError(Message):
- def __init__(self, catalog_type: str, error: BaseException) -> None:
- self.catalog_type = catalog_type
- self.error = error
- super().__init__()
-
- def __init__(
- self,
- *titles: TextType,
- initial: str = "",
- name: Union[str, None] = None,
- id: Union[str, None] = None, # noqa: A002
- classes: Union[str, None] = None,
- disabled: bool = False,
- show_files: Path | None = None,
- show_s3: str | None = None,
- type_color: str = "#888888",
- ):
- super().__init__(
- *titles,
- initial=initial,
- name=name,
- id=id,
- classes=classes,
- disabled=disabled,
- )
- self.show_files = show_files
- self.show_s3 = show_s3
- self.type_color = type_color
-
- def on_mount(self) -> None:
- self.database_tree = DatabaseTree(type_color=self.type_color)
- self.add_pane(TabPane("Databases", self.database_tree))
- if self.show_files is not None:
- self.file_tree: FileTree | None = FileTree(path=self.show_files)
- self.add_pane(TabPane("Files", self.file_tree))
- else:
- self.file_tree = None
-
- if self.show_s3 is not None and boto3 is not None:
- self.s3_tree: S3Tree | None = S3Tree(uri=self.show_s3)
- self.add_pane(TabPane("S3", self.s3_tree))
- elif self.show_s3 is not None and boto3 is None:
- self.post_message(
- DataCatalog.CatalogError(
- catalog_type="s3",
- error=Exception(
- "Could not load s3 catalog because boto3 is not available.\n\n"
- "Re-install harlequin with the s3 extra, like this:\n"
- "pip install harlequin[s3]"
- ),
- )
- )
- self.s3_tree = None
- else:
- self.s3_tree = None
-
- if self.show_files is None and self.show_s3 is None:
- self.add_class("hide-tabs")
- self.query_one(Tabs).can_focus = False
- self.post_message(WidgetMounted(widget=self))
-
- def on_focus(self) -> None:
- try:
- active_widget = self.query_one(f"#{self.active}").children[0]
- except NoMatches:
- self.database_tree.focus()
- else:
- active_widget.focus()
-
- @on(TabbedContent.TabActivated)
- def focus_on_widget_in_active_pane(self) -> None:
- self.focus()
-
- def update_database_tree(self, catalog: Catalog) -> None:
- self.database_tree.update_tree(catalog)
-
- def update_file_tree(self) -> None:
- if self.file_tree is not None:
- self.file_tree.reload()
-
- def update_s3_tree(self) -> None:
- if self.s3_tree is not None:
- self.s3_tree.reload()
-
- def load_s3_tree_from_cache(self, cache: CatalogCache) -> None:
- if self.show_s3 is None or self.s3_tree is None:
- return
- cache_data = cache.get_s3(self.s3_tree.cache_key)
- if cache_data is None:
- return
- self.s3_tree.build_tree(data=cache_data)
-
- def action_switch_tab(self, offset: int) -> None:
- if not self.active:
- return
- if self.tab_count == 1:
- return
- tab_number = int(self.active.split("-")[1])
- unsafe_tab_number = tab_number + offset
- if unsafe_tab_number < 1:
- new_tab_number = self.tab_count
- elif unsafe_tab_number > self.tab_count:
- new_tab_number = 1
- else:
- new_tab_number = unsafe_tab_number
- self.active = f"tab-{new_tab_number}"
- self.focus()
-
- def action_focus_results_viewer(self) -> None:
- if hasattr(self.app, "action_focus_results_viewer"):
- self.app.action_focus_results_viewer()
-
- def action_focus_query_editor(self) -> None:
- if hasattr(self.app, "action_focus_query_editor"):
- self.app.action_focus_query_editor()
-
-
-class HarlequinTree(Tree, inherit_bindings=False):
- double_click: int | None = None
-
- async def on_click(self, event: Click) -> None:
- meta = event.style.meta
- click_line: Union[int, None] = meta.get("line", None)
- if (
- self.double_click is not None
- and click_line is not None
- and self.double_click == click_line
- ):
- event.prevent_default()
- node = self.get_node_at_line(click_line)
- if node is not None:
- self.post_message(DataCatalog.NodeSubmitted(node=node))
- node.expand()
- else:
- self.double_click = click_line
- self.set_timer(
- delay=0.5, callback=self._clear_double_click, name="double_click_timer"
- )
-
- def _clear_double_click(self) -> None:
- self.double_click = None
-
- def action_submit(self) -> None:
- if self.cursor_node is not None:
- self.post_message(DataCatalog.NodeSubmitted(node=self.cursor_node))
-
- def action_copy(self) -> None:
- if self.cursor_node is not None:
- self.post_message(DataCatalog.NodeCopied(node=self.cursor_node))
-
-
-class DatabaseTree(HarlequinTree, Tree[CatalogItem], inherit_bindings=False):
- def __init__(
- self,
- type_color: str = "#888888",
- data: CatalogItem | None = None,
- name: str | None = None,
- id: str | None = None, # noqa: A002
- classes: str | None = None,
- disabled: bool = False,
- ) -> None:
- self.type_color = type_color
- super().__init__(
- "Root", data, name=name, id=id, classes=classes, disabled=disabled
- )
-
- def update_tree(self, catalog: Catalog) -> None:
- tree_state = self._get_node_states(self.root)
- expanded_nodes: Set[str] = set(tree_state[0])
- # todo: tree's select_node() not working
- # unless the tree is modified, the selection will stay
- # in the same place
- # selected_node = tree_state[1]
- self.clear()
- if catalog.items:
- self._build_subtree(catalog.items, self.root, expanded_nodes)
- self.loading = False
-
- def on_mount(self) -> None:
- self.loading = True
- self.show_root = False
- self.guide_depth = 3
- self.root.expand()
- self.post_message(WidgetMounted(widget=self))
-
- def _build_item_label(self, label: str, type_label: str) -> str:
- return f"{label} [{self.type_color}]{type_label}[/]" if type_label else label
-
- def _build_subtree(
- self,
- items: List[CatalogItem],
- parent: TreeNode[CatalogItem],
- expanded_nodes: Set[str],
- ) -> None:
- for item in items:
- if item.children:
- new_node = parent.add(
- label=self._build_item_label(item.label, item.type_label),
- data=item,
- expand=item.qualified_identifier in expanded_nodes,
- )
- self._build_subtree(item.children, new_node, expanded_nodes)
- else:
- parent.add_leaf(
- label=self._build_item_label(item.label, item.type_label), data=item
- )
-
- @classmethod
- def _get_node_states(
- cls, node: TreeNode[CatalogItem]
- ) -> Tuple[List[str], Union[str, None]]:
- expanded_nodes = []
- selected_node = None
- if node.is_expanded and node.data is not None:
- expanded_nodes.append(node.data.qualified_identifier)
- if node._selected and node.data is not None:
- selected_node = node.data.qualified_identifier
- for child in node.children:
- expanded_children, selected_child = cls._get_node_states(child)
- expanded_nodes.extend(expanded_children)
- selected_node = selected_child or selected_node
- return expanded_nodes, selected_node
-
-
-class FileTree(HarlequinTree, DirectoryTree, inherit_bindings=False):
- COMPONENT_CLASSES: ClassVar[set[str]] = {
- "directory-tree--extension",
- "directory-tree--file",
- "directory-tree--folder",
- "directory-tree--hidden",
- }
-
- def on_mount(self) -> None:
- self.guide_depth = 3
- self.root.expand()
- self.post_message(WidgetMounted(widget=self))
-
-
-class S3Tree(HarlequinTree, Tree[str], inherit_bindings=False):
- COMPONENT_CLASSES: ClassVar[set[str]] = {
- "directory-tree--extension",
- "directory-tree--file",
- "directory-tree--folder",
- "directory-tree--hidden",
- }
-
- class DataReady(Message):
- def __init__(self, data: dict) -> None:
- self.data = data
- super().__init__()
-
- def __init__(
- self,
- uri: str,
- data: CatalogItem | None = None,
- name: str | None = None,
- id: str | None = None, # noqa: A002
- classes: str | None = None,
- disabled: bool = False,
- ) -> None:
- self.endpoint_url, self.bucket, self.prefix = self._parse_s3_uri(uri)
- self.catalog_data: dict | None = None
- super().__init__(
- "Root", data, name=name, id=id, classes=classes, disabled=disabled
- )
-
- render_label = DirectoryTree.render_label
-
- def on_mount(self) -> None:
- self.guide_depth = 3
- self.show_root = False
- self.root.data = self.endpoint_url or "s3:/"
- self.reload()
- self.post_message(WidgetMounted(widget=self))
-
- @property
- def cache_key(self) -> tuple[str | None, str | None, str | None]:
- return (self.endpoint_url, self.bucket, self.prefix)
-
- @on(DataReady)
- def build_tree_from_message_data(self, message: S3Tree.DataReady) -> None:
- self.build_tree(message.data)
-
- def build_tree(self, data: dict) -> None:
- self.catalog_data = data
- self.clear()
- self._build_subtree(data=data, parent=self.root)
- self.root.expand()
- self.loading = False
-
- @on(Worker.StateChanged)
- async def handle_worker_state_change(self, message: Worker.StateChanged) -> None:
- if message.state == WorkerState.ERROR:
- await self._handle_worker_error(message)
-
- async def _handle_worker_error(self, message: Worker.StateChanged) -> None:
- if (
- message.worker.name == "_reload_objects"
- and message.worker.error is not None
- ):
- self.post_message(
- DataCatalog.CatalogError(catalog_type="s3", error=message.worker.error)
- )
- self.loading = False
-
- @staticmethod
- def _parse_s3_uri(uri: str) -> tuple[str | None, str | None, str | None]:
- """
- Any of these are acceptable:
- my-bucket
- my-bucket/my-prefix
- s3://my-bucket
- s3://my-bucket/my-prefix
- https://my-storage.com/my-bucket/
- https://my-storage.com/my-bucket/my-prefix
- https://my-bucket.s3.amazonaws.com/my-prefix
- https://my-bucket.storage.googleapis.com/my-prefix
- """
-
- def _is_prefixed_aws_url(netloc: str) -> bool:
- parts = netloc.split(".")
- print(parts)
- if ".".join(parts[1:]) == "s3.amazonaws.com":
- return True
- return False
-
- def _is_prefixed_gcs_url(netloc: str) -> bool:
- parts = netloc.split(".")
- if ".".join(parts[1:]) == "storage.googleapis.com":
- return True
- return False
-
- if uri == "all":
- # special keyword so we list all buckets
- return None, None, None
-
- scheme, netloc, path, *_ = urlsplit(uri)
- path = path.lstrip("/")
- bucket: str | None
-
- if not scheme:
- assert not netloc
- endpoint_url = None
- bucket = path.split("/")[0]
- prefix = "/".join(path.split("/")[1:])
- elif scheme == "s3":
- endpoint_url = None
- bucket = netloc
- prefix = path
- elif _is_prefixed_aws_url(netloc):
- endpoint_url = None
- bucket = netloc.split(".")[0]
- prefix = path
- elif _is_prefixed_gcs_url(netloc):
- endpoint_url = "https://storage.googleapis.com"
- bucket = netloc.split(".")[0]
- prefix = path
- else:
- endpoint_url = f"{scheme}://{netloc}"
- bucket = path.split("/")[0] or None
- prefix = "/".join(path.split("/")[1:])
-
- return endpoint_url, bucket, prefix
-
- def reload(self) -> None:
- self.loading = True
- self._reload_objects()
-
- @work(thread=True, exclusive=True, exit_on_error=False)
- def _reload_objects(self) -> None:
- if boto3 is None:
- return
-
- data = {}
- s3 = boto3.resource("s3", endpoint_url=self.endpoint_url)
- if self.bucket is None:
- buckets = [b for b in s3.buckets.all()]
- else:
- buckets = [s3.Bucket(self.bucket)]
- for bucket in buckets:
- data[bucket.name] = recursive_dict()
- object_gen = (
- bucket.objects.filter(Prefix=self.prefix)
- if self.prefix
- else bucket.objects.all()
- )
- for obj in object_gen:
- key_parts = obj.key.split("/")
- target = data[bucket.name]
- for part in key_parts:
- target = target[part]
-
- self.post_message(S3Tree.DataReady(data=data))
-
- def _build_subtree(
- self,
- data: dict[str, dict],
- parent: TreeNode[str],
- ) -> None:
- for k in data:
- if data[k]:
- new_node = parent.add(
- label=k,
- data=f"{parent.data}/{k}",
- )
- self._build_subtree(data[k], new_node)
- else:
- parent.add_leaf(label=k, data=f"{parent.data}/{k}")
diff --git a/src/harlequin/components/data_catalog/__init__.py b/src/harlequin/components/data_catalog/__init__.py
new file mode 100644
index 00000000..cb93d0d8
--- /dev/null
+++ b/src/harlequin/components/data_catalog/__init__.py
@@ -0,0 +1,247 @@
+from __future__ import annotations
+
+from pathlib import Path
+from typing import TYPE_CHECKING, ClassVar, Sequence
+
+from rich.markup import escape
+from rich.text import TextType
+from textual import on
+from textual.css.query import NoMatches
+from textual.message import Message
+from textual.widgets import (
+ DirectoryTree,
+ OptionList,
+ TabbedContent,
+ TabPane,
+ Tabs,
+)
+from textual.widgets._tree import TreeNode
+
+from harlequin.catalog import Catalog, CatalogItem, InteractiveCatalogItem
+from harlequin.catalog_cache import CatalogCache
+from harlequin.components.data_catalog.database_tree import DatabaseTree
+from harlequin.components.data_catalog.s3_tree import S3Tree as S3Tree
+from harlequin.components.data_catalog.tree import HarlequinTree as HarlequinTree
+from harlequin.messages import WidgetMounted
+
+if TYPE_CHECKING:
+ from harlequin.catalog import Interaction
+ from harlequin.driver import HarlequinDriver
+
+try:
+ import boto3
+except ImportError:
+ boto3 = None # type: ignore
+
+
+def insert_name_at_cursor(item: CatalogItem, driver: HarlequinDriver) -> None:
+ driver.insert_text_at_selection(text=item.query_name)
+
+
+class ContextMenu(OptionList):
+ class ExecuteInteraction(Message):
+ def __init__(self, interaction: "Interaction", item: CatalogItem) -> None:
+ self.interaction = interaction
+ self.item = item
+ super().__init__()
+
+ DEFAULT_INTERACTIONS: list[tuple[str, "Interaction"]] = [
+ ("Insert Name at Cursor", insert_name_at_cursor),
+ ]
+
+ def __init__(self) -> None:
+ self.interactions: list[tuple[str, "Interaction"]] = self.DEFAULT_INTERACTIONS
+ self.item: CatalogItem | None = None
+ super().__init__()
+
+ def reload(self, node: TreeNode) -> None:
+ self.clear_options()
+
+ if not isinstance(node.data, CatalogItem):
+ return
+
+ self.item = node.data
+
+ other_interactions: Sequence[tuple[str, "Interaction"]] = []
+
+ if isinstance(node.data, InteractiveCatalogItem):
+ if node.data.INTERACTIONS is not None:
+ other_interactions = node.data.INTERACTIONS
+
+ self.interactions = [*self.DEFAULT_INTERACTIONS, *other_interactions]
+
+ for label, _ in self.interactions:
+ self.add_option(escape(label))
+
+ assert isinstance(self.parent, TabPane)
+ parent_height = self.parent.scrollable_content_region.height
+ context_menu_height = self.option_count + 2
+ scroll_offset = node.tree.scroll_offset.y
+ if (node.line - scroll_offset + context_menu_height) < parent_height:
+ self.styles.offset = (0, node.line - scroll_offset + 1)
+ else:
+ self.styles.offset = (0, node.line - scroll_offset - context_menu_height)
+
+ self.add_class("open")
+ self.highlighted = 0
+ self.focus()
+
+ @on(OptionList.OptionSelected)
+ def execute_interaction(self, event: OptionList.OptionSelected) -> None:
+ if event.option_list is not self or self.item is None:
+ return
+ _, interaction = self.interactions[event.option_index]
+ self.post_message(
+ self.ExecuteInteraction(interaction=interaction, item=self.item)
+ )
+ self.remove_class("open")
+
+ def on_blur(self) -> None:
+ self.action_hide()
+
+ def action_hide(self) -> None:
+ self.remove_class("open")
+
+
+class DataCatalog(TabbedContent, can_focus=True):
+ BORDER_TITLE = "Data Catalog"
+
+ def __init__(
+ self,
+ *titles: TextType,
+ initial: str = "",
+ name: str | None = None,
+ id: str | None = None, # noqa: A002
+ classes: str | None = None,
+ disabled: bool = False,
+ show_files: Path | None = None,
+ show_s3: str | None = None,
+ type_color: str = "#888888",
+ ):
+ super().__init__(
+ *titles,
+ initial=initial,
+ name=name,
+ id=id,
+ classes=classes,
+ disabled=disabled,
+ )
+ self.show_files = show_files
+ self.show_s3 = show_s3
+ self.type_color = type_color
+
+ def on_mount(self) -> None:
+ self.database_tree = DatabaseTree(type_color=self.type_color)
+ self.database_context_menu = ContextMenu()
+ self.add_pane(
+ TabPane("Databases", self.database_tree, self.database_context_menu)
+ )
+ if self.show_files is not None:
+ self.file_tree: FileTree | None = FileTree(path=self.show_files)
+ self.add_pane(TabPane("Files", self.file_tree))
+ else:
+ self.file_tree = None
+
+ if self.show_s3 is not None and boto3 is not None:
+ self.s3_tree: S3Tree | None = S3Tree(uri=self.show_s3)
+ self.add_pane(TabPane("S3", self.s3_tree))
+ elif self.show_s3 is not None and boto3 is None:
+ self.post_message(
+ S3Tree.CatalogError(
+ catalog_type="s3",
+ error=Exception(
+ "Could not load s3 catalog because boto3 is not available.\n\n"
+ "Re-install harlequin with the s3 extra, like this:\n"
+ "pip install harlequin[s3]"
+ ),
+ )
+ )
+ self.s3_tree = None
+ else:
+ self.s3_tree = None
+
+ if self.show_files is None and self.show_s3 is None:
+ self.add_class("hide-tabs")
+ self.query_one(Tabs).can_focus = False
+ self.post_message(WidgetMounted(widget=self))
+
+ def on_focus(self) -> None:
+ try:
+ active_widget = self.query_one(f"#{self.active}").children[0]
+ except NoMatches:
+ self.database_tree.focus()
+ else:
+ active_widget.focus()
+
+ @on(TabbedContent.TabActivated)
+ def focus_on_widget_in_active_pane(self) -> None:
+ self.focus()
+
+ @on(HarlequinTree.HideContextMenu)
+ def hide_context_menu(self, event: HarlequinTree.HideContextMenu) -> None:
+ event.stop()
+ self.database_context_menu.remove_class("open")
+
+ @on(HarlequinTree.ShowContextMenu)
+ def load_interactions_and_show_context_menu(
+ self, event: HarlequinTree.ShowContextMenu
+ ) -> None:
+ event.stop()
+ self.database_context_menu.reload(node=event.node)
+
+ def update_database_tree(self, catalog: Catalog) -> None:
+ self.database_tree.catalog = catalog
+
+ def update_file_tree(self) -> None:
+ if self.file_tree is not None:
+ self.file_tree.reload()
+
+ def update_s3_tree(self) -> None:
+ if self.s3_tree is not None:
+ self.s3_tree.reload()
+
+ def load_s3_tree_from_cache(self, cache: CatalogCache) -> None:
+ if self.show_s3 is None or self.s3_tree is None:
+ return
+ cache_data = cache.get_s3(self.s3_tree.cache_key)
+ if cache_data is None:
+ return
+ self.s3_tree.build_tree(data=cache_data)
+
+ def action_switch_tab(self, offset: int) -> None:
+ if not self.active:
+ return
+ if self.tab_count == 1:
+ return
+ tab_number = int(self.active.split("-")[1])
+ unsafe_tab_number = tab_number + offset
+ if unsafe_tab_number < 1:
+ new_tab_number = self.tab_count
+ elif unsafe_tab_number > self.tab_count:
+ new_tab_number = 1
+ else:
+ new_tab_number = unsafe_tab_number
+ self.active = f"tab-{new_tab_number}"
+ self.focus()
+
+ def action_focus_results_viewer(self) -> None:
+ if hasattr(self.app, "action_focus_results_viewer"):
+ self.app.action_focus_results_viewer()
+
+ def action_focus_query_editor(self) -> None:
+ if hasattr(self.app, "action_focus_query_editor"):
+ self.app.action_focus_query_editor()
+
+
+class FileTree(HarlequinTree, DirectoryTree, inherit_bindings=False):
+ COMPONENT_CLASSES: ClassVar[set[str]] = {
+ "directory-tree--extension",
+ "directory-tree--file",
+ "directory-tree--folder",
+ "directory-tree--hidden",
+ }
+
+ def on_mount(self) -> None:
+ self.guide_depth = 3
+ self.root.expand()
+ self.post_message(WidgetMounted(widget=self))
diff --git a/src/harlequin/components/data_catalog/database_tree.py b/src/harlequin/components/data_catalog/database_tree.py
new file mode 100644
index 00000000..4cef9f22
--- /dev/null
+++ b/src/harlequin/components/data_catalog/database_tree.py
@@ -0,0 +1,366 @@
+from __future__ import annotations
+
+from asyncio import PriorityQueue
+from contextlib import suppress
+from pathlib import Path
+from typing import TYPE_CHECKING, Generator, Iterable, TypeVar
+
+from rich.text import TextType
+from textual import work
+from textual.await_complete import AwaitComplete
+from textual.reactive import var
+from textual.widgets._tree import Tree, TreeNode
+from textual.worker import WorkerCancelled, WorkerFailed, get_current_worker
+
+from harlequin.catalog import (
+ Catalog,
+ CatalogItem,
+ InteractiveCatalogItem,
+ NewCatalogItems,
+)
+from harlequin.components.data_catalog.tree import HarlequinTree
+from harlequin.messages import WidgetMounted
+
+if TYPE_CHECKING:
+ from typing_extensions import Self
+
+
+class DatabaseTree(HarlequinTree[CatalogItem], inherit_bindings=False):
+ catalog: var[Catalog | None] = var["Catalog | None"](
+ None, init=False, always_update=True
+ )
+
+ def __init__(
+ self,
+ type_color: str = "#888888",
+ name: str | None = None,
+ id: str | None = None, # noqa: A002
+ classes: str | None = None,
+ disabled: bool = False,
+ ) -> None:
+ self._load_queue: PriorityQueue[
+ tuple[int, str, int, TreeNode[InteractiveCatalogItem]]
+ ] = PriorityQueue()
+ """
+ _load_queue is a priority queue, ordered by a priority int,
+ then the string label of the node, then the id of the node,
+ which should prevent any comparisons between TreeNodes, which
+ do not implement cmp operators.
+ """
+ self.type_color = type_color
+ super().__init__(
+ label="Root",
+ data=CatalogItem(
+ qualified_identifier="__root__",
+ query_name="",
+ label="Root",
+ type_label="",
+ children=[],
+ ),
+ name=name,
+ id=id,
+ classes=classes,
+ disabled=disabled,
+ )
+
+ def on_mount(self) -> None:
+ self.loading = True
+ self.show_root = False
+ self.guide_depth = 3
+ self.root.expand()
+ self.post_message(WidgetMounted(widget=self))
+
+ def _build_item_label(self, label: str, type_label: str) -> str:
+ return f"{label} [{self.type_color}]{type_label}[/]" if type_label else label
+
+ async def watch_catalog(self, catalog: Catalog | None) -> None:
+ """Watch for changes to the `catalog` of the database tree.
+
+ If the Catalog is changed the directory tree will be repopulated using
+ the new value as the root.
+ """
+ assert isinstance(self.root.data, CatalogItem)
+ self.root.data.children = catalog.items if catalog is not None else []
+ await self.reload()
+ # add the root's children to the prefetch queue
+ for child in self.root.children:
+ if isinstance(child.data, InteractiveCatalogItem) and not child.data.loaded:
+ self._add_to_load_queue(child) # type: ignore[arg-type]
+ self.loading = False
+
+ def _add_to_load_queue(
+ self, node: TreeNode[InteractiveCatalogItem], priority: int = 100
+ ) -> AwaitComplete:
+ """Add the given node to the load priority queue.
+
+ The return value can optionally be awaited until the queue is empty.
+
+ Args:
+ node: The node to add to the load queue.
+ priority: An order for this node to be loaded; lowest first.
+
+ Returns:
+ An optionally awaitable object that can be awaited until the
+ load queue has finished processing.
+ """
+ assert node.data is not None
+ if not node.data.loaded:
+ with suppress(TypeError):
+ # typeError will be raised if this node already exists in the queue,
+ # since TreeNodes do not implement cmp operators.
+ self._load_queue.put_nowait((priority, str(node.label), id(node), node))
+
+ return AwaitComplete(self._load_queue.join())
+
+ def reload(self) -> AwaitComplete:
+ """Reload the `DirectoryTree` contents.
+
+ Returns:
+ An optionally awaitable that ensures the tree has finished reloading.
+ """
+ # Orphan the old queue...
+ self._load_queue = PriorityQueue()
+ # ... reset the root node ...
+ processed = self.reload_node(self.root)
+ # ... and replace the old loader with a new one.
+ self._loader()
+ return processed
+
+ def clear_node(self, node: TreeNode[CatalogItem]) -> Self:
+ """Clear all nodes under the given node.
+
+ Returns:
+ The `Tree` instance.
+ """
+ self._clear_line_cache()
+ node.remove_children()
+ self._updates += 1
+ self.refresh()
+ return self
+
+ def reset_node(
+ self,
+ node: TreeNode[CatalogItem],
+ label: TextType,
+ data: CatalogItem | None = None,
+ ) -> Self:
+ """Clear the subtree and reset the given node.
+
+ Args:
+ node: The node to reset.
+ label: The label for the node.
+ data: Optional data for the node.
+
+ Returns:
+ The `Tree` instance.
+ """
+ self.clear_node(node)
+ node.label = label
+ node.data = data
+ return self
+
+ async def _reload(self, node: TreeNode[CatalogItem]) -> None:
+ """Reloads the subtree rooted at the given node while preserving state.
+
+ After reloading the subtree, nodes that were expanded and still exist
+ will remain expanded and the highlighted node will be preserved, if it
+ still exists. If it doesn't, highlighting goes up to the first parent
+ directory that still exists.
+
+ Args:
+ node: The root of the subtree to reload.
+ """
+ async with self.lock:
+ # Track nodes that were expanded before reloading.
+ currently_open: set[str] = set()
+ to_check: list[TreeNode[CatalogItem]] = [node]
+ while to_check:
+ checking = to_check.pop()
+ if checking.allow_expand and checking.is_expanded:
+ if checking.data:
+ currently_open.add(checking.data.qualified_identifier)
+ to_check.extend(checking.children)
+
+ # Track node that was highlighted before reloading.
+ highlighted_identifier: None | str = None
+ if self.cursor_line > -1:
+ highlighted_node = self.get_node_at_line(self.cursor_line)
+ if highlighted_node is not None and highlighted_node.data is not None:
+ highlighted_identifier = highlighted_node.data.qualified_identifier
+
+ if node.data is not None:
+ self.reset_node(
+ node,
+ self._build_item_label(node.data.label, node.data.type_label),
+ node.data,
+ )
+
+ # Reopen nodes that were expanded and still exist.
+ to_reopen = [node]
+ while to_reopen:
+ reopening = to_reopen.pop()
+ if not reopening.data:
+ continue
+ if reopening.allow_expand and (
+ reopening.data.qualified_identifier in currently_open
+ or reopening == node
+ ):
+ try:
+ content = await self._load_children(reopening).wait()
+ except (WorkerCancelled, WorkerFailed):
+ continue
+ self._populate_node(reopening, content)
+ to_reopen.extend(reopening.children)
+ reopening.expand()
+
+ if highlighted_identifier is None:
+ return
+
+ # Restore the highlighted path and consider the parents as fallbacks.
+ looking = [node]
+
+ def parents(qualified_identifier: str) -> Generator[str, None, None]:
+ parent = qualified_identifier
+ while parent := parent.rpartition(".")[0]:
+ yield parent
+ yield "__root__"
+
+ highlight_candidates = set(parents(highlighted_identifier))
+ highlight_candidates.add(highlighted_identifier)
+ best_found: None | TreeNode[CatalogItem] = None
+ while looking:
+ checking = looking.pop()
+ checking_path = (
+ checking.data.qualified_identifier
+ if checking.data is not None
+ else None
+ )
+ if checking_path in highlight_candidates:
+ best_found = checking
+ if checking_path == highlighted_identifier:
+ break
+ if checking.allow_expand and checking.is_expanded:
+ looking.extend(checking.children)
+ if best_found is not None:
+ # We need valid lines. Make sure the tree lines have been computed:
+ _ = self._tree_lines
+ self.cursor_line = best_found.line
+
+ def reload_node(self, node: TreeNode[CatalogItem]) -> AwaitComplete:
+ """Reload the given node's contents.
+
+ The return value may be awaited to ensure the DirectoryTree has reached
+ a stable state and is no longer performing any node reloading (of this node
+ or any other nodes).
+
+ Args:
+ node: The root of the subtree to reload.
+
+ Returns:
+ An optionally awaitable that ensures the subtree has finished reloading.
+ """
+ return AwaitComplete(self._reload(node))
+
+ TCatalogItem_co = TypeVar("TCatalogItem_co", bound=CatalogItem, covariant=True)
+
+ def _populate_node(
+ self, node: TreeNode[TCatalogItem_co], content: Iterable[TCatalogItem_co]
+ ) -> None:
+ """Populate the given tree node with the given directory content.
+
+ Args:
+ node: The Tree node to populate.
+ content: The collection of `Path` objects to populate the node with.
+ """
+ node.remove_children()
+ for item in content:
+ node.add(
+ self._build_item_label(item.label, item.type_label),
+ data=item,
+ allow_expand=bool(item.children) or not getattr(item, "loaded", True),
+ )
+
+ @work(thread=True, exit_on_error=False, description="_load_children")
+ def _load_children(self, node: TreeNode[CatalogItem]) -> list[CatalogItem]:
+ """Load the children for a given node.
+
+ Args:
+ node: The node to load the children for.
+
+ Returns:
+ The list of entries within the directory associated with the node.
+ """
+ assert node.data is not None
+ if (
+ not node.data.children
+ and isinstance(node.data, InteractiveCatalogItem)
+ and not node.data.loaded
+ ):
+ try:
+ children = list(node.data.fetch_children())
+ except BaseException as e:
+ self.post_message(self.CatalogError(catalog_type="database", error=e))
+ return []
+ else:
+ node.data.children = children
+ self.post_message(NewCatalogItems(parent=node.data, items=children))
+ finally:
+ node.data.loaded = True
+ node.allow_expand = bool(node.data.children)
+
+ return sorted(
+ node.data.children,
+ key=lambda catalog_item: catalog_item.label,
+ )
+
+ @work(name="_database_tree_background_loader", exclusive=True)
+ async def _loader(self) -> None:
+ """Background loading queue processor."""
+ worker = get_current_worker()
+ while not worker.is_cancelled:
+ # Get the next node that needs loading off the queue. Note that
+ # this blocks if the queue is empty.
+ *_, node = await self._load_queue.get()
+ content: list[Path] = []
+ async with self.lock:
+ try:
+ # Spin up a short-lived thread that will load the content of
+ # the directory associated with that node.
+ content = await self._load_children(node).wait()
+ except WorkerCancelled:
+ # The worker was cancelled, that would suggest we're all
+ # done here and we should get out of the loader in general.
+ break
+ except WorkerFailed:
+ # This particular worker failed to start. We don't know the
+ # reason so let's no-op that (for now anyway).
+ pass
+ else:
+ # We're still here and we have directory content, get it into
+ # the tree.
+ if content:
+ self._populate_node(node, content)
+ finally:
+ # Mark this iteration as done.
+ self._load_queue.task_done()
+
+ async def _on_tree_node_expanded(
+ self, event: Tree.NodeExpanded[CatalogItem]
+ ) -> None:
+ event.stop()
+ node = event.node
+ if node.data is None:
+ return
+ if isinstance(node.data, InteractiveCatalogItem) and not node.data.loaded:
+ # if this node isn't loaded yet, add it to the front of the queue
+ await self._add_to_load_queue(node, priority=0) # type: ignore[arg-type]
+ if (
+ isinstance(node.data, CatalogItem)
+ and node.data.children
+ and not node.children
+ ):
+ self._populate_node(node, content=node.data.children)
+ # pre-fetch the node's grandchildren
+ for child in node.children:
+ if isinstance(child.data, InteractiveCatalogItem):
+ self._add_to_load_queue(child) # type: ignore[arg-type]
diff --git a/src/harlequin/components/data_catalog/file_tree.py b/src/harlequin/components/data_catalog/file_tree.py
new file mode 100644
index 00000000..0bb2cede
--- /dev/null
+++ b/src/harlequin/components/data_catalog/file_tree.py
@@ -0,0 +1,24 @@
+from __future__ import annotations
+
+from typing import ClassVar
+
+from textual.widgets import (
+ DirectoryTree,
+)
+
+from harlequin.components.data_catalog.tree import HarlequinTree as HarlequinTree
+from harlequin.messages import WidgetMounted
+
+
+class FileTree(HarlequinTree, DirectoryTree, inherit_bindings=False):
+ COMPONENT_CLASSES: ClassVar[set[str]] = {
+ "directory-tree--extension",
+ "directory-tree--file",
+ "directory-tree--folder",
+ "directory-tree--hidden",
+ }
+
+ def on_mount(self) -> None:
+ self.guide_depth = 3
+ self.root.expand()
+ self.post_message(WidgetMounted(widget=self))
diff --git a/src/harlequin/components/data_catalog/s3_tree.py b/src/harlequin/components/data_catalog/s3_tree.py
new file mode 100644
index 00000000..1a929726
--- /dev/null
+++ b/src/harlequin/components/data_catalog/s3_tree.py
@@ -0,0 +1,193 @@
+from __future__ import annotations
+
+from typing import ClassVar
+from urllib.parse import urlsplit
+
+from textual import on, work
+from textual.message import Message
+from textual.widgets import (
+ DirectoryTree,
+)
+from textual.widgets._tree import TreeNode
+from textual.worker import Worker, WorkerState
+
+from harlequin.catalog_cache import recursive_dict
+from harlequin.components.data_catalog.tree import HarlequinTree as HarlequinTree
+from harlequin.messages import WidgetMounted
+
+try:
+ import boto3
+except ImportError:
+ boto3 = None # type: ignore
+
+
+class S3Tree(HarlequinTree[str], inherit_bindings=False):
+ COMPONENT_CLASSES: ClassVar[set[str]] = {
+ "directory-tree--extension",
+ "directory-tree--file",
+ "directory-tree--folder",
+ "directory-tree--hidden",
+ }
+
+ class DataReady(Message):
+ def __init__(self, data: dict) -> None:
+ self.data = data
+ super().__init__()
+
+ def __init__(
+ self,
+ uri: str,
+ data: str | None = None,
+ name: str | None = None,
+ id: str | None = None, # noqa: A002
+ classes: str | None = None,
+ disabled: bool = False,
+ ) -> None:
+ self.endpoint_url, self.bucket, self.prefix = self._parse_s3_uri(uri)
+ self.catalog_data: dict | None = None
+ super().__init__(
+ "Root", data, name=name, id=id, classes=classes, disabled=disabled
+ )
+
+ render_label = DirectoryTree.render_label # type: ignore[assignment]
+
+ def on_mount(self) -> None:
+ self.guide_depth = 3
+ self.show_root = False
+ self.root.data = self.endpoint_url or "s3:/"
+ self.reload()
+ self.post_message(WidgetMounted(widget=self))
+
+ @property
+ def cache_key(self) -> tuple[str | None, str | None, str | None]:
+ return (self.endpoint_url, self.bucket, self.prefix)
+
+ @on(DataReady)
+ def build_tree_from_message_data(self, message: S3Tree.DataReady) -> None:
+ self.build_tree(message.data)
+
+ def build_tree(self, data: dict) -> None:
+ self.catalog_data = data
+ self.clear()
+ self._build_subtree(data=data, parent=self.root)
+ self.root.expand()
+ self.loading = False
+
+ @on(Worker.StateChanged)
+ async def handle_worker_state_change(self, message: Worker.StateChanged) -> None:
+ if message.state == WorkerState.ERROR:
+ await self._handle_worker_error(message)
+
+ async def _handle_worker_error(self, message: Worker.StateChanged) -> None:
+ if (
+ message.worker.name == "_reload_objects"
+ and message.worker.error is not None
+ ):
+ self.post_message(
+ self.CatalogError(catalog_type="s3", error=message.worker.error)
+ )
+ self.loading = False
+
+ @staticmethod
+ def _parse_s3_uri(uri: str) -> tuple[str | None, str | None, str | None]:
+ """
+ Any of these are acceptable:
+ my-bucket
+ my-bucket/my-prefix
+ s3://my-bucket
+ s3://my-bucket/my-prefix
+ https://my-storage.com/my-bucket/
+ https://my-storage.com/my-bucket/my-prefix
+ https://my-bucket.s3.amazonaws.com/my-prefix
+ https://my-bucket.storage.googleapis.com/my-prefix
+ """
+
+ def _is_prefixed_aws_url(netloc: str) -> bool:
+ parts = netloc.split(".")
+ print(parts)
+ if ".".join(parts[1:]) == "s3.amazonaws.com":
+ return True
+ return False
+
+ def _is_prefixed_gcs_url(netloc: str) -> bool:
+ parts = netloc.split(".")
+ if ".".join(parts[1:]) == "storage.googleapis.com":
+ return True
+ return False
+
+ if uri == "all":
+ # special keyword so we list all buckets
+ return None, None, None
+
+ scheme, netloc, path, *_ = urlsplit(uri)
+ path = path.lstrip("/")
+ bucket: str | None
+
+ if not scheme:
+ assert not netloc
+ endpoint_url = None
+ bucket = path.split("/")[0]
+ prefix = "/".join(path.split("/")[1:])
+ elif scheme == "s3":
+ endpoint_url = None
+ bucket = netloc
+ prefix = path
+ elif _is_prefixed_aws_url(netloc):
+ endpoint_url = None
+ bucket = netloc.split(".")[0]
+ prefix = path
+ elif _is_prefixed_gcs_url(netloc):
+ endpoint_url = "https://storage.googleapis.com"
+ bucket = netloc.split(".")[0]
+ prefix = path
+ else:
+ endpoint_url = f"{scheme}://{netloc}"
+ bucket = path.split("/")[0] or None
+ prefix = "/".join(path.split("/")[1:])
+
+ return endpoint_url, bucket, prefix
+
+ def reload(self) -> None:
+ self.loading = True
+ self._reload_objects()
+
+ @work(thread=True, exclusive=True, exit_on_error=False)
+ def _reload_objects(self) -> None:
+ if boto3 is None:
+ return
+
+ data = {}
+ s3 = boto3.resource("s3", endpoint_url=self.endpoint_url)
+ if self.bucket is None:
+ buckets = [b for b in s3.buckets.all()]
+ else:
+ buckets = [s3.Bucket(self.bucket)]
+ for bucket in buckets:
+ data[bucket.name] = recursive_dict()
+ object_gen = (
+ bucket.objects.filter(Prefix=self.prefix)
+ if self.prefix
+ else bucket.objects.all()
+ )
+ for obj in object_gen:
+ key_parts = obj.key.split("/")
+ target = data[bucket.name]
+ for part in key_parts:
+ target = target[part]
+
+ self.post_message(S3Tree.DataReady(data=data))
+
+ def _build_subtree(
+ self,
+ data: dict[str, dict],
+ parent: TreeNode[str],
+ ) -> None:
+ for k in data:
+ if data[k]:
+ new_node = parent.add(
+ label=k,
+ data=f"{parent.data}/{k}",
+ )
+ self._build_subtree(data[k], new_node)
+ else:
+ parent.add_leaf(label=k, data=f"{parent.data}/{k}")
diff --git a/src/harlequin/components/data_catalog/tree.py b/src/harlequin/components/data_catalog/tree.py
new file mode 100644
index 00000000..e8ad2b9c
--- /dev/null
+++ b/src/harlequin/components/data_catalog/tree.py
@@ -0,0 +1,116 @@
+from __future__ import annotations
+
+from typing import Generic, TypeVar, Union
+
+from textual.events import Click
+from textual.message import Message
+from textual.widgets import (
+ Tree,
+)
+from textual.widgets._directory_tree import DirEntry
+from textual.widgets._tree import EventTreeDataType, TreeNode
+
+from harlequin.catalog import CatalogItem
+
+TTreeNode = TypeVar("TTreeNode")
+
+
+class HarlequinTree(Tree[TTreeNode], inherit_bindings=False):
+ double_click: int | None = None
+
+ class CatalogError(Message):
+ def __init__(self, catalog_type: str, error: BaseException) -> None:
+ self.catalog_type = catalog_type
+ self.error = error
+ super().__init__()
+
+ class NodeSubmitted(Generic[EventTreeDataType], Message):
+ def __init__(self, node: TreeNode[EventTreeDataType]) -> None:
+ self.node: TreeNode[EventTreeDataType] = node
+ super().__init__()
+
+ @property
+ def insert_name(self) -> str:
+ if not self.node.data:
+ return ""
+ elif isinstance(self.node.data, CatalogItem):
+ return self.node.data.query_name
+ elif isinstance(self.node.data, DirEntry):
+ return f"'{self.node.data.path}'"
+ else:
+ return str(self.node.data)
+
+ class NodeCopied(Generic[EventTreeDataType], Message):
+ def __init__(self, node: TreeNode[EventTreeDataType]) -> None:
+ self.node: TreeNode[EventTreeDataType] = node
+ super().__init__()
+
+ @property
+ def copy_name(self) -> str:
+ if not self.node.data:
+ return ""
+ elif isinstance(self.node.data, CatalogItem):
+ return self.node.data.query_name
+ elif isinstance(self.node.data, DirEntry):
+ return str(self.node.data.path)
+ else:
+ return str(self.node.data)
+
+ class ShowContextMenu(Message):
+ def __init__(self, node: TreeNode) -> None:
+ self.node = node
+ super().__init__()
+
+ class HideContextMenu(Message):
+ pass
+
+ def on_focus(self) -> None:
+ if self.cursor_line < 0:
+ self.cursor_line = 0
+
+ async def on_click(self, event: Click) -> None:
+ meta = event.style.meta
+ click_line: Union[int, None] = meta.get("line", None)
+ if event.button == 1: # left button click
+ self.post_message(self.HideContextMenu())
+ if (
+ self.double_click is not None
+ and click_line is not None
+ and self.double_click == click_line
+ ):
+ event.prevent_default()
+ node = self.get_node_at_line(click_line)
+ if node is not None:
+ self.post_message(self.NodeSubmitted(node=node))
+ node.expand()
+ else:
+ self.double_click = click_line
+ self.set_timer(
+ delay=0.5,
+ callback=self._clear_double_click,
+ name="double_click_timer",
+ )
+ elif event.button == 3 and click_line is not None: # right click
+ node = self.get_node_at_line(click_line)
+ if node is not None and isinstance(node.data, CatalogItem):
+ self.post_message(self.ShowContextMenu(node=node))
+
+ def _clear_double_click(self) -> None:
+ self.double_click = None
+
+ def action_submit(self) -> None:
+ if self.cursor_node is not None:
+ self.post_message(self.NodeSubmitted(node=self.cursor_node))
+
+ def action_copy(self) -> None:
+ if self.cursor_node is not None:
+ self.post_message(self.NodeCopied(node=self.cursor_node))
+
+ def action_show_context_menu(self) -> None:
+ if self.cursor_node is not None and isinstance(
+ self.cursor_node.data, CatalogItem
+ ):
+ self.post_message(self.ShowContextMenu(node=self.cursor_node))
+
+ def action_hide_context_menu(self) -> None:
+ self.post_message(self.HideContextMenu())
diff --git a/src/harlequin/driver.py b/src/harlequin/driver.py
new file mode 100644
index 00000000..2c89f077
--- /dev/null
+++ b/src/harlequin/driver.py
@@ -0,0 +1,82 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Callable
+
+from textual.message import Message
+
+if TYPE_CHECKING:
+ from textual.notifications import SeverityLevel
+
+ from harlequin.app import Harlequin
+
+
+class HarlequinDriver:
+ """
+ Provides an interface for Data Catalog interactions to drive
+ the Harlequin UI. These will always be called from worker
+ threads, so they use Messages to update the main Harlequin
+ state.
+ """
+
+ class ConfirmAndExecute(Message):
+ def __init__(self, callback: Callable[[], None], instructions: str) -> None:
+ super().__init__()
+ self.callback = callback
+ self.instructions = instructions
+
+ class InsertTextAtSelection(Message):
+ def __init__(self, text: str) -> None:
+ super().__init__()
+ self.text = text
+
+ class InsertTextInNewBuffer(Message):
+ def __init__(self, text: str) -> None:
+ super().__init__()
+ self.text = text
+
+ class Notify(Message):
+ def __init__(self, notify_message: str, severity: "SeverityLevel") -> None:
+ super().__init__()
+ self.notify_message = notify_message
+ self.severity = severity
+
+ class Refreshcatalog(Message):
+ pass
+
+ def __init__(self, app: Harlequin) -> None:
+ self.app = app
+
+ def insert_text_at_selection(self, text: str) -> None:
+ """
+ Insert text at the cursor in Harlequin's editor.
+ """
+ self.app.post_message(self.InsertTextAtSelection(text=text))
+
+ def insert_text_in_new_buffer(self, text: str) -> None:
+ """
+ Create a new buffer (tab) in Harlequin's editor and insert the text.
+ """
+ self.app.post_message(self.InsertTextInNewBuffer(text=text))
+
+ def confirm_and_execute(
+ self, callback: Callable[[], None], instructions: str = "Are you sure?"
+ ) -> None:
+ """
+ Display a confirmation modal in Harlequin; If the user selects "Yes",
+ then Harlequin will invoke the callback.
+ """
+ self.app.post_message(
+ self.ConfirmAndExecute(callback=callback, instructions=instructions)
+ )
+
+ def notify(self, message: str, severity: "SeverityLevel" = "information") -> None:
+ """
+ Show a toast notification in Harlequin.
+ """
+ self.app.post_message(self.Notify(notify_message=message, severity=severity))
+
+ def refresh_catalog(self) -> None:
+ """
+ Force a refresh of the catalog.
+ """
+ self.app.post_message(self.Refreshcatalog())
diff --git a/src/harlequin_duckdb/adapter.py b/src/harlequin_duckdb/adapter.py
index a01f26a6..e9ddaf82 100644
--- a/src/harlequin_duckdb/adapter.py
+++ b/src/harlequin_duckdb/adapter.py
@@ -16,6 +16,7 @@
HarlequinConnectionError,
HarlequinQueryError,
)
+from harlequin_duckdb.catalog import DatabaseCatalogItem
from harlequin_duckdb.cli_options import DUCKDB_OPTIONS
from harlequin_duckdb.completions import get_completion_data
@@ -55,6 +56,17 @@ def fetchall(self) -> AutoBackendType | None:
) from e
return result
+ def fetchone(self) -> tuple | None:
+ try:
+ result = self.relation.fetchone()
+ except duckdb.InterruptException:
+ return None
+ except duckdb.Error as e:
+ raise HarlequinQueryError(
+ msg=str(e), title="DuckDB raised an error when running your query:"
+ ) from e
+ return result
+
class DuckDbConnection(HarlequinConnection):
RELATION_TYPE_MAPPING = {
@@ -126,52 +138,9 @@ def cancel(self) -> None:
def get_catalog(self) -> Catalog:
catalog_items: list[CatalogItem] = []
databases = self._get_databases()
- for (database,) in databases:
- database_identifier = f'"{database}"'
- schemas = self._get_schemas(database)
- schema_items: list[CatalogItem] = []
- for (schema,) in schemas:
- schema_identifier = f'{database_identifier}."{schema}"'
- tables = self._get_tables(database, schema)
- table_items: list[CatalogItem] = []
- for table, kind in tables:
- table_identifier = f'{schema_identifier}."{table}"'
- columns = self._get_columns(database, schema, table)
- column_items = [
- CatalogItem(
- qualified_identifier=f'{table_identifier}."{col[0]}"',
- query_name=f'"{col[0]}"',
- label=col[0],
- type_label=self._short_column_type(col[1]),
- )
- for col in columns
- ]
- table_items.append(
- CatalogItem(
- qualified_identifier=table_identifier,
- query_name=table_identifier,
- label=table,
- type_label=self._short_relation_type(kind),
- children=column_items,
- )
- )
- schema_items.append(
- CatalogItem(
- qualified_identifier=schema_identifier,
- query_name=schema_identifier,
- label=schema,
- type_label="sch",
- children=table_items,
- )
- )
+ for (database_label,) in databases:
catalog_items.append(
- CatalogItem(
- qualified_identifier=database_identifier,
- query_name=database_identifier,
- label=database,
- type_label="db",
- children=schema_items,
- )
+ DatabaseCatalogItem.from_label(label=database_label, connection=self)
)
return Catalog(items=catalog_items)
diff --git a/src/harlequin_duckdb/catalog.py b/src/harlequin_duckdb/catalog.py
new file mode 100644
index 00000000..67b424a8
--- /dev/null
+++ b/src/harlequin_duckdb/catalog.py
@@ -0,0 +1,231 @@
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import TYPE_CHECKING
+
+from harlequin.catalog import InteractiveCatalogItem
+from harlequin_duckdb.interactions import (
+ execute_drop_schema_statement,
+ execute_drop_table_statement,
+ execute_drop_view_statement,
+ execute_use_statement,
+ insert_columns_at_cursor,
+ show_describe_relation,
+ show_export_database,
+ show_select_star,
+ show_summarize_relation,
+ show_table_ddl,
+ show_view_ddl,
+)
+
+if TYPE_CHECKING:
+ from harlequin_duckdb.adapter import DuckDbConnection
+
+
+@dataclass
+class ColumnCatalogItem(InteractiveCatalogItem["DuckDbConnection"]):
+ parent: "RelationCatalogItem" | None = None
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "RelationCatalogItem",
+ label: str,
+ type_label: str,
+ ) -> "ColumnCatalogItem":
+ column_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ column_query_name = f'"{label}"'
+ return cls(
+ qualified_identifier=column_qualified_identifier,
+ query_name=column_query_name,
+ label=label,
+ type_label=type_label,
+ connection=parent.connection,
+ parent=parent,
+ loaded=True,
+ )
+
+
+@dataclass
+class RelationCatalogItem(InteractiveCatalogItem["DuckDbConnection"]):
+ INTERACTIONS = [
+ ("Insert Columns at Cursor", insert_columns_at_cursor),
+ ("Preview Data", show_select_star),
+ ("Describe", show_describe_relation),
+ ("Summarize", show_summarize_relation),
+ ]
+ parent: "SchemaCatalogItem" | None = None
+
+ def fetch_children(self) -> list[ColumnCatalogItem]:
+ if self.parent is None or self.parent.parent is None or self.connection is None:
+ return []
+ result = self.connection._get_columns(
+ self.parent.parent.label, self.parent.label, self.label
+ )
+ return [
+ ColumnCatalogItem.from_parent(
+ parent=self,
+ label=column_name,
+ type_label=self.connection._short_column_type(column_type),
+ )
+ for column_name, column_type in result
+ ]
+
+
+class ViewCatalogItem(RelationCatalogItem):
+ INTERACTIONS = RelationCatalogItem.INTERACTIONS + [
+ ("Show DDL", show_view_ddl),
+ ("Drop View", execute_drop_view_statement),
+ ]
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "SchemaCatalogItem",
+ label: str,
+ ) -> "ViewCatalogItem":
+ relation_query_name = f'"{parent.label}"."{label}"'
+ relation_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=relation_qualified_identifier,
+ query_name=relation_query_name,
+ label=label,
+ type_label="v",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+
+class TableCatalogItem(RelationCatalogItem):
+ INTERACTIONS = RelationCatalogItem.INTERACTIONS + [
+ ("Show DDL", show_table_ddl),
+ ("Drop Table", execute_drop_table_statement),
+ ]
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "SchemaCatalogItem",
+ label: str,
+ ) -> "TableCatalogItem":
+ relation_query_name = f'"{parent.label}"."{label}"'
+ relation_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=relation_qualified_identifier,
+ query_name=relation_query_name,
+ label=label,
+ type_label="t",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+
+class TempTableCatalogItem(TableCatalogItem):
+ INTERACTIONS = RelationCatalogItem.INTERACTIONS + [
+ ("Show DDL", show_table_ddl),
+ ("Drop Table", execute_drop_table_statement),
+ ]
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "SchemaCatalogItem",
+ label: str,
+ ) -> "TempTableCatalogItem":
+ relation_query_name = f'"{parent.label}"."{label}"'
+ relation_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=relation_qualified_identifier,
+ query_name=relation_query_name,
+ label=label,
+ type_label="tmp",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+
+@dataclass
+class SchemaCatalogItem(InteractiveCatalogItem["DuckDbConnection"]):
+ INTERACTIONS = [
+ ("Switch Editor Context (Use)", execute_use_statement),
+ ("Drop Schema", execute_drop_schema_statement),
+ ]
+ parent: "DatabaseCatalogItem" | None = None
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "DatabaseCatalogItem",
+ label: str,
+ ) -> "SchemaCatalogItem":
+ schema_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=schema_identifier,
+ query_name=schema_identifier,
+ label=label,
+ type_label="sch",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+ def fetch_children(self) -> list[RelationCatalogItem]:
+ if self.parent is None or self.connection is None:
+ return []
+ children: list[RelationCatalogItem] = []
+ result = self.connection._get_tables(self.parent.label, self.label)
+ for table_label, table_type in result:
+ if table_type == "VIEW":
+ children.append(
+ ViewCatalogItem.from_parent(
+ parent=self,
+ label=table_label,
+ )
+ )
+ elif table_type == "LOCAL TEMPORARY":
+ children.append(
+ TempTableCatalogItem.from_parent(
+ parent=self,
+ label=table_label,
+ )
+ )
+ else:
+ children.append(
+ TableCatalogItem.from_parent(
+ parent=self,
+ label=table_label,
+ )
+ )
+
+ return children
+
+
+class DatabaseCatalogItem(InteractiveCatalogItem["DuckDbConnection"]):
+ INTERACTIONS = [
+ ("Switch Editor Context (Use)", execute_use_statement),
+ ("Export Database", show_export_database),
+ ]
+
+ @classmethod
+ def from_label(
+ cls, label: str, connection: "DuckDbConnection"
+ ) -> "DatabaseCatalogItem":
+ database_identifier = f'"{label}"'
+ return cls(
+ qualified_identifier=database_identifier,
+ query_name=database_identifier,
+ label=label,
+ type_label="db",
+ connection=connection,
+ )
+
+ def fetch_children(self) -> list[SchemaCatalogItem]:
+ if self.connection is None:
+ return []
+ schemas = self.connection._get_schemas(self.label)
+ return [
+ SchemaCatalogItem.from_parent(
+ parent=self,
+ label=schema_label,
+ )
+ for (schema_label,) in schemas
+ ]
diff --git a/src/harlequin_duckdb/interactions.py b/src/harlequin_duckdb/interactions.py
new file mode 100644
index 00000000..e3ab9ae0
--- /dev/null
+++ b/src/harlequin_duckdb/interactions.py
@@ -0,0 +1,179 @@
+from __future__ import annotations
+
+from textwrap import dedent
+from typing import TYPE_CHECKING, Literal, Sequence
+
+from harlequin.catalog import CatalogItem
+from harlequin.exception import HarlequinQueryError
+
+if TYPE_CHECKING:
+ from harlequin.driver import HarlequinDriver
+ from harlequin_duckdb.catalog import (
+ ColumnCatalogItem,
+ DatabaseCatalogItem,
+ RelationCatalogItem,
+ SchemaCatalogItem,
+ )
+
+
+def execute_use_statement(
+ item: "DatabaseCatalogItem" | "SchemaCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ if item.connection is None:
+ return
+ try:
+ item.connection.execute(f"use {item.qualified_identifier}")
+ except HarlequinQueryError:
+ driver.notify("Could not switch context", severity="error")
+ raise
+ else:
+ driver.notify(f"Editor context switched to {item.label}")
+
+
+def execute_drop_schema_statement(
+ item: "SchemaCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ def _drop_schema() -> None:
+ if item.connection is None:
+ return
+ try:
+ item.connection.execute(f"drop schema {item.qualified_identifier} cascade")
+ except HarlequinQueryError:
+ driver.notify(f"Could not drop schema {item.label}", severity="error")
+ raise
+ else:
+ driver.notify(f"Dropped schema {item.label}")
+ driver.refresh_catalog()
+
+ if item.children or item.fetch_children():
+ driver.confirm_and_execute(callback=_drop_schema)
+ else:
+ _drop_schema()
+
+
+def execute_drop_relation_statement(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+ relation_type: Literal["view", "table"],
+) -> None:
+ def _drop_relation() -> None:
+ if item.connection is None:
+ return
+ try:
+ item.connection.execute(f"drop {relation_type} {item.qualified_identifier}")
+ except HarlequinQueryError:
+ driver.notify(
+ f"Could not drop {relation_type} {item.label}", severity="error"
+ )
+ raise
+ else:
+ driver.notify(f"Dropped {relation_type} {item.label}")
+ driver.refresh_catalog()
+
+ driver.confirm_and_execute(callback=_drop_relation)
+
+
+def execute_drop_table_statement(
+ item: "RelationCatalogItem", driver: "HarlequinDriver"
+) -> None:
+ execute_drop_relation_statement(item=item, driver=driver, relation_type="table")
+
+
+def execute_drop_view_statement(
+ item: "RelationCatalogItem", driver: "HarlequinDriver"
+) -> None:
+ execute_drop_relation_statement(item=item, driver=driver, relation_type="view")
+
+
+def show_export_database(
+ item: "DatabaseCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(
+ dedent(
+ f"""
+ use {item.qualified_identifier};
+ export database './target_directory';
+ """.strip("\n")
+ )
+ )
+
+
+def show_describe_relation(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(text=f"describe {item.qualified_identifier}")
+
+
+def show_summarize_relation(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(text=f"summarize {item.qualified_identifier}")
+
+
+def show_relation_ddl(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+ relation_type: Literal["view", "table"],
+) -> None:
+ if item.parent is None or item.parent.parent is None or item.connection is None:
+ return
+ table_function = "duckdb_tables()" if relation_type == "table" else "duckdb_views()"
+ cursor = item.connection.execute(
+ f"""
+ select sql
+ from {table_function}
+ where database_name = '{item.parent.parent.label}'
+ and schema_name = '{item.parent.label}'
+ and {relation_type}_name = '{item.label}'
+ limit 1
+ """
+ )
+ assert cursor is not None
+ result = cursor.fetchone()
+ if result is not None:
+ driver.insert_text_in_new_buffer(text=result[0])
+
+
+def show_table_ddl(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ show_relation_ddl(item=item, driver=driver, relation_type="table")
+
+
+def show_view_ddl(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ show_relation_ddl(item=item, driver=driver, relation_type="view")
+
+
+def show_select_star(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(
+ dedent(
+ f"""
+ select *
+ from {item.qualified_identifier}
+ limit 100
+ """.strip("\n")
+ )
+ )
+
+
+def insert_columns_at_cursor(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ if item.loaded:
+ cols: Sequence["CatalogItem" | "ColumnCatalogItem"] = item.children
+ else:
+ cols = item.fetch_children()
+ driver.insert_text_at_selection(text=",\n".join(c.query_name for c in cols))
diff --git a/src/harlequin_sqlite/adapter.py b/src/harlequin_sqlite/adapter.py
index e1e7313f..b47932c4 100644
--- a/src/harlequin_sqlite/adapter.py
+++ b/src/harlequin_sqlite/adapter.py
@@ -19,6 +19,7 @@
)
from harlequin.options import HarlequinAdapterOption, HarlequinCopyFormat
from harlequin.transaction_mode import HarlequinTransactionMode
+from harlequin_sqlite.catalog import DatabaseCatalogItem
from harlequin_sqlite.cli_options import SQLITE_OPTIONS
from harlequin_sqlite.completions import get_completion_data
@@ -72,6 +73,9 @@ def fetchall(self) -> AutoBackendType | None:
else:
return None
+ def fetchone(self) -> tuple | None:
+ return self._first_row
+
class HarlequinSqliteConnection(HarlequinConnection):
def __init__(self, conn: sqlite3.Connection, init_message: str = "") -> None:
@@ -128,39 +132,9 @@ def cancel(self) -> None:
def get_catalog(self) -> Catalog:
catalog_items: list[CatalogItem] = []
databases = self._get_databases()
- for db_name in databases:
- relations = self._get_relations(db_name=db_name)
- db_identifier = f'"{db_name}"'
- rel_items: list[CatalogItem] = []
- for rel_name, rel_type in relations:
- rel_identifier = f'{db_identifier}."{rel_name}"'
- cols = self._get_columns(db_name=db_name, rel_name=rel_name)
- col_items = [
- CatalogItem(
- qualified_identifier=f'{rel_identifier}."{col_name}"',
- query_name=f'"{col_name}"',
- label=col_name,
- type_label=self._short_column_type(col_type),
- )
- for _, col_name, col_type, *_ in cols
- ]
- rel_items.append(
- CatalogItem(
- qualified_identifier=rel_identifier,
- query_name=rel_identifier,
- label=rel_name,
- type_label=self._short_relation_type(rel_type),
- children=col_items,
- )
- )
+ for database_label in databases:
catalog_items.append(
- CatalogItem(
- qualified_identifier=db_identifier,
- query_name=db_identifier,
- label=db_name,
- type_label="db",
- children=rel_items,
- )
+ DatabaseCatalogItem.from_label(label=database_label, connection=self)
)
return Catalog(items=catalog_items)
diff --git a/src/harlequin_sqlite/catalog.py b/src/harlequin_sqlite/catalog.py
new file mode 100644
index 00000000..8c43333d
--- /dev/null
+++ b/src/harlequin_sqlite/catalog.py
@@ -0,0 +1,151 @@
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import TYPE_CHECKING
+
+from harlequin.catalog import InteractiveCatalogItem
+from harlequin_sqlite.interactions import (
+ execute_drop_table_statement,
+ execute_drop_view_statement,
+ insert_columns_at_cursor,
+ show_describe_relation,
+ show_relation_ddl,
+ show_select_star,
+)
+
+if TYPE_CHECKING:
+ from harlequin_sqlite.adapter import HarlequinSqliteConnection
+
+
+@dataclass
+class ColumnCatalogItem(InteractiveCatalogItem["HarlequinSqliteConnection"]):
+ parent: "RelationCatalogItem" | None = None
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "RelationCatalogItem",
+ label: str,
+ type_label: str,
+ ) -> "ColumnCatalogItem":
+ column_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ column_query_name = f'"{label}"'
+ return cls(
+ qualified_identifier=column_qualified_identifier,
+ query_name=column_query_name,
+ label=label,
+ type_label=type_label,
+ connection=parent.connection,
+ parent=parent,
+ loaded=True,
+ )
+
+
+@dataclass
+class RelationCatalogItem(InteractiveCatalogItem["HarlequinSqliteConnection"]):
+ INTERACTIONS = [
+ ("Insert Columns at Cursor", insert_columns_at_cursor),
+ ("Preview Data", show_select_star),
+ ("Describe", show_describe_relation),
+ ("Show DDL", show_relation_ddl),
+ ]
+ parent: "DatabaseCatalogItem" | None = None
+
+ def fetch_children(self) -> list[ColumnCatalogItem]:
+ if self.parent is None is None or self.connection is None:
+ return []
+ result = self.connection._get_columns(self.parent.label, self.label)
+ return [
+ ColumnCatalogItem.from_parent(
+ parent=self,
+ label=column_name,
+ type_label=self.connection._short_column_type(column_type),
+ )
+ for _, column_name, column_type, *_ in result
+ ]
+
+
+class ViewCatalogItem(RelationCatalogItem):
+ INTERACTIONS = RelationCatalogItem.INTERACTIONS + [
+ ("Drop View", execute_drop_view_statement),
+ ]
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "DatabaseCatalogItem",
+ label: str,
+ ) -> "ViewCatalogItem":
+ relation_query_name = f'"{parent.label}"."{label}"'
+ relation_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=relation_qualified_identifier,
+ query_name=relation_query_name,
+ label=label,
+ type_label="v",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+
+class TableCatalogItem(RelationCatalogItem):
+ INTERACTIONS = RelationCatalogItem.INTERACTIONS + [
+ ("Drop Table", execute_drop_table_statement),
+ ]
+
+ @classmethod
+ def from_parent(
+ cls,
+ parent: "DatabaseCatalogItem",
+ label: str,
+ ) -> "TableCatalogItem":
+ relation_query_name = f'"{parent.label}"."{label}"'
+ relation_qualified_identifier = f'{parent.qualified_identifier}."{label}"'
+ return cls(
+ qualified_identifier=relation_qualified_identifier,
+ query_name=relation_query_name,
+ label=label,
+ type_label="t",
+ connection=parent.connection,
+ parent=parent,
+ )
+
+
+class DatabaseCatalogItem(InteractiveCatalogItem["HarlequinSqliteConnection"]):
+ INTERACTIONS = []
+
+ @classmethod
+ def from_label(
+ cls, label: str, connection: "HarlequinSqliteConnection"
+ ) -> "DatabaseCatalogItem":
+ database_identifier = f'"{label}"'
+ return cls(
+ qualified_identifier=database_identifier,
+ query_name=database_identifier,
+ label=label,
+ type_label="db",
+ connection=connection,
+ )
+
+ def fetch_children(self) -> list[RelationCatalogItem]:
+ if self.connection is None:
+ return []
+ children: list[RelationCatalogItem] = []
+ result = self.connection._get_relations(self.label)
+ for table_label, table_type in result:
+ if table_type == "view":
+ children.append(
+ ViewCatalogItem.from_parent(
+ parent=self,
+ label=table_label,
+ )
+ )
+ else:
+ children.append(
+ TableCatalogItem.from_parent(
+ parent=self,
+ label=table_label,
+ )
+ )
+
+ return children
diff --git a/src/harlequin_sqlite/interactions.py b/src/harlequin_sqlite/interactions.py
new file mode 100644
index 00000000..016328e6
--- /dev/null
+++ b/src/harlequin_sqlite/interactions.py
@@ -0,0 +1,103 @@
+from __future__ import annotations
+
+from textwrap import dedent
+from typing import TYPE_CHECKING, Literal, Sequence
+
+from harlequin.catalog import CatalogItem
+from harlequin.exception import HarlequinQueryError
+
+if TYPE_CHECKING:
+ from harlequin.driver import HarlequinDriver
+ from harlequin_sqlite.catalog import (
+ ColumnCatalogItem,
+ RelationCatalogItem,
+ )
+
+
+def execute_drop_relation_statement(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+ relation_type: Literal["view", "table"],
+) -> None:
+ def _drop_relation() -> None:
+ if item.connection is None:
+ return
+ try:
+ item.connection.execute(f"drop {relation_type} {item.qualified_identifier}")
+ except HarlequinQueryError:
+ driver.notify(
+ f"Could not drop {relation_type} {item.label}", severity="error"
+ )
+ raise
+ else:
+ driver.notify(f"Dropped {relation_type} {item.label}")
+ driver.refresh_catalog()
+
+ driver.confirm_and_execute(callback=_drop_relation)
+
+
+def execute_drop_table_statement(
+ item: "RelationCatalogItem", driver: "HarlequinDriver"
+) -> None:
+ execute_drop_relation_statement(item=item, driver=driver, relation_type="table")
+
+
+def execute_drop_view_statement(
+ item: "RelationCatalogItem", driver: "HarlequinDriver"
+) -> None:
+ execute_drop_relation_statement(item=item, driver=driver, relation_type="view")
+
+
+def show_describe_relation(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(
+ text=f"pragma table_info({item.qualified_identifier})"
+ )
+
+
+def show_relation_ddl(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ if item.parent is None or item.connection is None:
+ return
+ cursor = item.connection.execute(
+ f"""
+ select sql
+ from sqlite_schema
+ where tbl_name = '{item.label}'
+ limit 1
+ """
+ )
+ assert cursor is not None
+ result = cursor.fetchone()
+ if result is not None:
+ driver.insert_text_in_new_buffer(text=result[0])
+
+
+def show_select_star(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ driver.insert_text_in_new_buffer(
+ dedent(
+ f"""
+ select *
+ from {item.qualified_identifier}
+ limit 100
+ """.strip("\n")
+ )
+ )
+
+
+def insert_columns_at_cursor(
+ item: "RelationCatalogItem",
+ driver: "HarlequinDriver",
+) -> None:
+ if item.loaded:
+ cols: Sequence["CatalogItem" | "ColumnCatalogItem"] = item.children
+ else:
+ cols = item.fetch_children()
+ driver.insert_text_at_selection(text=",\n".join(c.query_name for c in cols))
diff --git a/src/harlequin_vscode/__init__.py b/src/harlequin_vscode/__init__.py
index 5e9875c5..36404c30 100644
--- a/src/harlequin_vscode/__init__.py
+++ b/src/harlequin_vscode/__init__.py
@@ -77,6 +77,8 @@
HarlequinKeyBinding("space", "data_catalog.toggle_node"),
HarlequinKeyBinding("up", "data_catalog.cursor_up"),
HarlequinKeyBinding("down", "data_catalog.cursor_down"),
+ HarlequinKeyBinding("full_stop", "data_catalog.show_context_menu"),
+ HarlequinKeyBinding("escape", "data_catalog.hide_context_menu"),
]
VSCODE_RESULTS_VIEWER_BINDINGS = [
HarlequinKeyBinding("j", "results_viewer.previous_tab"),
diff --git a/src/scripts/export_screenshots.py b/src/scripts/export_screenshots.py
index 85258c55..8a3d6de1 100644
--- a/src/scripts/export_screenshots.py
+++ b/src/scripts/export_screenshots.py
@@ -20,13 +20,21 @@
""".strip()
+async def wait_for_filtered_workers(app: Harlequin) -> None:
+ filtered_workers = [
+ w for w in app.workers if w.name != "_database_tree_background_loader"
+ ]
+ if filtered_workers:
+ await app.workers.wait_for_complete(filtered_workers)
+
+
async def save_all_screenshots() -> None:
adapter = DuckDbAdapter(("f1.db",), no_init=True)
for theme in get_all_styles():
print(f"Screenshotting {theme}")
app = Harlequin(adapter=adapter, theme=theme)
async with app.run_test(size=(120, 36)) as pilot:
- await app.workers.wait_for_complete()
+ await wait_for_filtered_workers(app)
await pilot.pause()
if app.editor is None:
await pilot.pause(0.2)
diff --git a/src/scripts/profile_buffers.py b/src/scripts/profile_buffers.py
index 8c4d279b..07d349a7 100644
--- a/src/scripts/profile_buffers.py
+++ b/src/scripts/profile_buffers.py
@@ -8,6 +8,14 @@
from harlequin_duckdb import DuckDbAdapter
+async def wait_for_filtered_workers(app: Harlequin) -> None:
+ filtered_workers = [
+ w for w in app.workers if w.name != "_database_tree_background_loader"
+ ]
+ if filtered_workers:
+ await app.workers.wait_for_complete(filtered_workers)
+
+
async def load_lots_of_buffers() -> None:
with patch("harlequin.components.code_editor.load_cache") as mock_load_cache:
buff = BufferState(
@@ -21,7 +29,7 @@ async def load_lots_of_buffers() -> None:
app = Harlequin(adapter=adapter)
async with app.run_test() as pilot:
- await app.workers.wait_for_complete()
+ await wait_for_filtered_workers(app)
await pilot.pause()
app.exit()
diff --git a/tests/adapter_tests/test_duckdb.py b/tests/adapter_tests/test_duckdb.py
index d00e26cd..428db32f 100644
--- a/tests/adapter_tests/test_duckdb.py
+++ b/tests/adapter_tests/test_duckdb.py
@@ -5,7 +5,7 @@
import pytest
-from harlequin.catalog import Catalog, CatalogItem
+from harlequin.catalog import Catalog, CatalogItem, InteractiveCatalogItem
from harlequin.exception import HarlequinConnectionError
from harlequin_duckdb.adapter import DuckDbAdapter
@@ -224,7 +224,33 @@ def test_get_catalog(tiny_duck: Path, small_duck: Path) -> None:
),
]
)
- assert conn.get_catalog() == expected
+ catalog = conn.get_catalog()
+ assert [item.label for item in catalog.items] == [
+ item.label for item in expected.items
+ ]
+ for i, database_item in enumerate(catalog.items):
+ assert isinstance(database_item, InteractiveCatalogItem)
+ assert database_item.children == []
+ schema_items = database_item.fetch_children()
+ assert [item.label for item in schema_items] == [
+ item.label for item in expected.items[i].children
+ ]
+ for j, schema_item in enumerate(schema_items):
+ assert isinstance(schema_item, InteractiveCatalogItem)
+ assert schema_item.children == []
+ relation_items = schema_item.fetch_children()
+ assert [(item.label, item.type_label) for item in relation_items] == [
+ (item.label, item.type_label)
+ for item in expected.items[i].children[j].children
+ ]
+ for k, relation_item in enumerate(relation_items):
+ assert isinstance(relation_item, InteractiveCatalogItem)
+ assert relation_item.children == []
+ column_items = relation_item.fetch_children()
+ assert [(item.label, item.type_label) for item in column_items] == [
+ (item.label, item.type_label)
+ for item in expected.items[i].children[j].children[k].children
+ ]
def test_init_script(tiny_duck: Path, tmp_path: Path) -> None:
diff --git a/tests/adapter_tests/test_sqlite.py b/tests/adapter_tests/test_sqlite.py
index 92dd79a3..cbc4bd0a 100644
--- a/tests/adapter_tests/test_sqlite.py
+++ b/tests/adapter_tests/test_sqlite.py
@@ -6,7 +6,7 @@
import pytest
-from harlequin.catalog import Catalog, CatalogItem
+from harlequin.catalog import Catalog, CatalogItem, InteractiveCatalogItem
from harlequin.exception import HarlequinConfigError, HarlequinConnectionError
from harlequin_sqlite import HarlequinSqliteAdapter
@@ -179,7 +179,33 @@ def test_get_catalog(tiny_sqlite: Path, small_sqlite: Path) -> None:
),
]
)
- assert conn.get_catalog() == expected
+ catalog = conn.get_catalog()
+ assert [item.label for item in catalog.items] == [
+ item.label for item in expected.items
+ ]
+ for i, database_item in enumerate(catalog.items):
+ assert isinstance(database_item, InteractiveCatalogItem)
+ assert database_item.children == []
+ schema_items = database_item.fetch_children()
+ assert [item.label for item in schema_items] == [
+ item.label for item in expected.items[i].children
+ ]
+ for j, schema_item in enumerate(schema_items):
+ assert isinstance(schema_item, InteractiveCatalogItem)
+ assert schema_item.children == []
+ relation_items = schema_item.fetch_children()
+ assert [(item.label, item.type_label) for item in relation_items] == [
+ (item.label, item.type_label)
+ for item in expected.items[i].children[j].children
+ ]
+ for k, relation_item in enumerate(relation_items):
+ assert isinstance(relation_item, InteractiveCatalogItem)
+ assert relation_item.children == []
+ column_items = relation_item.fetch_children()
+ assert [(item.label, item.type_label) for item in column_items] == [
+ (item.label, item.type_label)
+ for item in expected.items[i].children[j].children[k].children
+ ]
def test_init_script(tiny_sqlite: Path, tmp_path: Path) -> None:
diff --git a/tests/functional_tests/__snapshots__/test_app.ambr b/tests/functional_tests/__snapshots__/test_app.ambr
index e9e3103a..e13b2b66 100644
--- a/tests/functional_tests/__snapshots__/test_app.ambr
+++ b/tests/functional_tests/__snapshots__/test_app.ambr
@@ -22,147 +22,147 @@
font-weight: 700;
}
- .terminal-29070646-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-29070646-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-29070646-r1 { fill: #777777 }
- .terminal-29070646-r2 { fill: #c5c8c6 }
- .terminal-29070646-r3 { fill: #dfdfdf }
- .terminal-29070646-r4 { fill: #858585 }
- .terminal-29070646-r5 { fill: #feffac;font-weight: bold }
- .terminal-29070646-r6 { fill: #dddddd }
- .terminal-29070646-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-29070646-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-29070646-r9 { fill: #212116;font-weight: bold }
- .terminal-29070646-r10 { fill: #feffac }
- .terminal-29070646-r11 { fill: #dfdfdf;font-weight: bold }
- .terminal-29070646-r12 { fill: #686868 }
- .terminal-29070646-r13 { fill: #232323 }
- .terminal-29070646-r14 { fill: #777777;font-weight: bold }
- .terminal-29070646-r15 { fill: #08211a }
- .terminal-29070646-r16 { fill: #45ffca;font-weight: bold }
- .terminal-29070646-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r12 { fill: #686868 }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -192,147 +192,147 @@
font-weight: 700;
}
- .terminal-2005767480-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2005767480-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2005767480-r1 { fill: #777777 }
- .terminal-2005767480-r2 { fill: #c5c8c6 }
- .terminal-2005767480-r3 { fill: #dfdfdf }
- .terminal-2005767480-r4 { fill: #858585 }
- .terminal-2005767480-r5 { fill: #feffac;font-weight: bold }
- .terminal-2005767480-r6 { fill: #dddddd }
- .terminal-2005767480-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2005767480-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2005767480-r9 { fill: #212116;font-weight: bold }
- .terminal-2005767480-r10 { fill: #feffac }
- .terminal-2005767480-r11 { fill: #686868 }
- .terminal-2005767480-r12 { fill: #dfdfdf;font-weight: bold }
- .terminal-2005767480-r13 { fill: #232323 }
- .terminal-2005767480-r14 { fill: #777777;font-weight: bold }
- .terminal-2005767480-r15 { fill: #08211a }
- .terminal-2005767480-r16 { fill: #45ffca;font-weight: bold }
- .terminal-2005767480-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 2 # │
- │││ 2 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 2 # │
+ │││ 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -362,147 +362,147 @@
font-weight: 700;
}
- .terminal-2005767480-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2005767480-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2005767480-r1 { fill: #777777 }
- .terminal-2005767480-r2 { fill: #c5c8c6 }
- .terminal-2005767480-r3 { fill: #dfdfdf }
- .terminal-2005767480-r4 { fill: #858585 }
- .terminal-2005767480-r5 { fill: #feffac;font-weight: bold }
- .terminal-2005767480-r6 { fill: #dddddd }
- .terminal-2005767480-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2005767480-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2005767480-r9 { fill: #212116;font-weight: bold }
- .terminal-2005767480-r10 { fill: #feffac }
- .terminal-2005767480-r11 { fill: #686868 }
- .terminal-2005767480-r12 { fill: #dfdfdf;font-weight: bold }
- .terminal-2005767480-r13 { fill: #232323 }
- .terminal-2005767480-r14 { fill: #777777;font-weight: bold }
- .terminal-2005767480-r15 { fill: #08211a }
- .terminal-2005767480-r16 { fill: #45ffca;font-weight: bold }
- .terminal-2005767480-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 2 # │
- │││ 2 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 2 # │
+ │││ 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -532,144 +532,144 @@
font-weight: 700;
}
- .terminal-3829311374-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3829311374-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3829311374-r1 { fill: #777777 }
- .terminal-3829311374-r2 { fill: #c5c8c6 }
- .terminal-3829311374-r3 { fill: #dfdfdf }
- .terminal-3829311374-r4 { fill: #858585 }
- .terminal-3829311374-r5 { fill: #feffac;font-weight: bold }
- .terminal-3829311374-r6 { fill: #dddddd }
- .terminal-3829311374-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3829311374-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3829311374-r9 { fill: #212116;font-weight: bold }
- .terminal-3829311374-r10 { fill: #feffac }
- .terminal-3829311374-r11 { fill: #777777;font-weight: bold }
- .terminal-3829311374-r12 { fill: #08211a }
- .terminal-3829311374-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3829311374-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -699,147 +699,147 @@
font-weight: 700;
}
- .terminal-423313598-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-423313598-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-423313598-r1 { fill: #777777 }
- .terminal-423313598-r2 { fill: #c5c8c6 }
- .terminal-423313598-r3 { fill: #dfdfdf }
- .terminal-423313598-r4 { fill: #858585 }
- .terminal-423313598-r5 { fill: #feffac;font-weight: bold }
- .terminal-423313598-r6 { fill: #dddddd }
- .terminal-423313598-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-423313598-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-423313598-r9 { fill: #212116;font-weight: bold }
- .terminal-423313598-r10 { fill: #feffac }
- .terminal-423313598-r11 { fill: #dfdfdf;font-weight: bold }
- .terminal-423313598-r12 { fill: #686868 }
- .terminal-423313598-r13 { fill: #232323 }
- .terminal-423313598-r14 { fill: #777777;font-weight: bold }
- .terminal-423313598-r15 { fill: #08211a }
- .terminal-423313598-r16 { fill: #45ffca;font-weight: bold }
- .terminal-423313598-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r12 { fill: #686868 }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 1 ## │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 1 ## │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -869,147 +869,147 @@
font-weight: 700;
}
- .terminal-2399944896-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2399944896-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2399944896-r1 { fill: #777777 }
- .terminal-2399944896-r2 { fill: #c5c8c6 }
- .terminal-2399944896-r3 { fill: #dfdfdf }
- .terminal-2399944896-r4 { fill: #858585 }
- .terminal-2399944896-r5 { fill: #feffac;font-weight: bold }
- .terminal-2399944896-r6 { fill: #dddddd }
- .terminal-2399944896-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2399944896-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2399944896-r9 { fill: #212116;font-weight: bold }
- .terminal-2399944896-r10 { fill: #feffac }
- .terminal-2399944896-r11 { fill: #686868 }
- .terminal-2399944896-r12 { fill: #dfdfdf;font-weight: bold }
- .terminal-2399944896-r13 { fill: #232323 }
- .terminal-2399944896-r14 { fill: #777777;font-weight: bold }
- .terminal-2399944896-r15 { fill: #08211a }
- .terminal-2399944896-r16 { fill: #45ffca;font-weight: bold }
- .terminal-2399944896-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 2 ## │
- │││ 2 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 2 ## │
+ │││ 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1039,147 +1039,147 @@
font-weight: 700;
}
- .terminal-2399944896-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2399944896-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2399944896-r1 { fill: #777777 }
- .terminal-2399944896-r2 { fill: #c5c8c6 }
- .terminal-2399944896-r3 { fill: #dfdfdf }
- .terminal-2399944896-r4 { fill: #858585 }
- .terminal-2399944896-r5 { fill: #feffac;font-weight: bold }
- .terminal-2399944896-r6 { fill: #dddddd }
- .terminal-2399944896-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2399944896-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2399944896-r9 { fill: #212116;font-weight: bold }
- .terminal-2399944896-r10 { fill: #feffac }
- .terminal-2399944896-r11 { fill: #686868 }
- .terminal-2399944896-r12 { fill: #dfdfdf;font-weight: bold }
- .terminal-2399944896-r13 { fill: #232323 }
- .terminal-2399944896-r14 { fill: #777777;font-weight: bold }
- .terminal-2399944896-r15 { fill: #08211a }
- .terminal-2399944896-r16 { fill: #45ffca;font-weight: bold }
- .terminal-2399944896-r17 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r13 { fill: #232323 }
+ .terminal-9999999-r14 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r15 { fill: #08211a }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r17 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- ││││
- │││Result 1Result 2│
- │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││ 2 ## │
- │││ 2 │
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ ││││
+ │││Result 1Result 2│
+ │││━━━━━━━━━━━━╸━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││ 2 ## │
+ │││ 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1209,144 +1209,144 @@
font-weight: 700;
}
- .terminal-2677691158-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2677691158-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2677691158-r1 { fill: #777777 }
- .terminal-2677691158-r2 { fill: #c5c8c6 }
- .terminal-2677691158-r3 { fill: #dfdfdf }
- .terminal-2677691158-r4 { fill: #858585 }
- .terminal-2677691158-r5 { fill: #feffac;font-weight: bold }
- .terminal-2677691158-r6 { fill: #dddddd }
- .terminal-2677691158-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2677691158-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2677691158-r9 { fill: #212116;font-weight: bold }
- .terminal-2677691158-r10 { fill: #feffac }
- .terminal-2677691158-r11 { fill: #777777;font-weight: bold }
- .terminal-2677691158-r12 { fill: #08211a }
- .terminal-2677691158-r13 { fill: #45ffca;font-weight: bold }
- .terminal-2677691158-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1; select2│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ 1 ## │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1; select2│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ 1 ## │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1376,192 +1376,192 @@
font-weight: 700;
}
- .terminal-4090317160-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4090317160-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4090317160-r1 { fill: #777777 }
- .terminal-4090317160-r2 { fill: #c5c8c6 }
- .terminal-4090317160-r3 { fill: #dfdfdf }
- .terminal-4090317160-r4 { fill: #858585 }
- .terminal-4090317160-r5 { fill: #feffac;font-weight: bold }
- .terminal-4090317160-r6 { fill: #dddddd }
- .terminal-4090317160-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-4090317160-r8 { fill: #45ffca }
- .terminal-4090317160-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-4090317160-r10 { fill: #212116;font-weight: bold }
- .terminal-4090317160-r11 { fill: #feffac }
- .terminal-4090317160-r12 { fill: #777777;font-weight: bold }
- .terminal-4090317160-r13 { fill: #08211a }
- .terminal-4090317160-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #45ffca }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #feffac }
+ .terminal-9999999-r12 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r13 { fill: #08211a }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select0::struct(id int); select1│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select0::struct(id int); select1│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1591,193 +1591,193 @@
font-weight: 700;
}
- .terminal-208800248-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-208800248-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-208800248-r1 { fill: #363636 }
- .terminal-208800248-r2 { fill: #c5c8c6 }
- .terminal-208800248-r3 { fill: #dfdfdf }
- .terminal-208800248-r4 { fill: #606060 }
- .terminal-208800248-r5 { fill: #3c3c3c }
- .terminal-208800248-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-208800248-r7 { fill: #5f5f5f }
- .terminal-208800248-r8 { fill: #6d505e;font-weight: bold }
- .terminal-208800248-r9 { fill: #226d58 }
- .terminal-208800248-r10 { fill: #ffb6d9 }
- .terminal-208800248-r11 { fill: #9d9d9d }
- .terminal-208800248-r12 { fill: #777777 }
- .terminal-208800248-r13 { fill: #141410;font-weight: bold }
- .terminal-208800248-r14 { fill: #6c6d4c }
- .terminal-208800248-r15 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #226d58 }
+ .terminal-9999999-r10 { fill: #ffb6d9 }
+ .terminal-9999999-r11 { fill: #9d9d9d }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #6c6d4c }
+ .terminal-9999999-r15 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select0::struct(id int); select1│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││DuckDB raised an error when running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
- │││INTEGER))│││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- │││││ │
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select0::struct(id int); select1│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││DuckDB raised an error when running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
+ │││INTEGER))│││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ │││││ │
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1807,191 +1807,191 @@
font-weight: 700;
}
- .terminal-4210796684-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4210796684-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4210796684-r1 { fill: #777777 }
- .terminal-4210796684-r2 { fill: #feffac }
- .terminal-4210796684-r3 { fill: #c5c8c6 }
- .terminal-4210796684-r4 { fill: #dfdfdf }
- .terminal-4210796684-r5 { fill: #858585 }
- .terminal-4210796684-r6 { fill: #feffac;font-weight: bold }
- .terminal-4210796684-r7 { fill: #dddddd }
- .terminal-4210796684-r8 { fill: #ffb6d9;font-weight: bold }
- .terminal-4210796684-r9 { fill: #45ffca }
- .terminal-4210796684-r10 { fill: #181818 }
- .terminal-4210796684-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-4210796684-r12 { fill: #212116;font-weight: bold }
- .terminal-4210796684-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
+ .terminal-9999999-r10 { fill: #181818 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -2021,194 +2021,194 @@
font-weight: 700;
}
- .terminal-4111323278-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4111323278-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4111323278-r1 { fill: #363636 }
- .terminal-4111323278-r2 { fill: #6c6d4c }
- .terminal-4111323278-r3 { fill: #c5c8c6 }
- .terminal-4111323278-r4 { fill: #dfdfdf }
- .terminal-4111323278-r5 { fill: #606060 }
- .terminal-4111323278-r6 { fill: #3c3c3c }
- .terminal-4111323278-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-4111323278-r8 { fill: #5f5f5f }
- .terminal-4111323278-r9 { fill: #6d505e;font-weight: bold }
- .terminal-4111323278-r10 { fill: #226d58 }
- .terminal-4111323278-r11 { fill: #101010 }
- .terminal-4111323278-r12 { fill: #ffb6d9 }
- .terminal-4111323278-r13 { fill: #9d9d9d }
- .terminal-4111323278-r14 { fill: #777777 }
- .terminal-4111323278-r15 { fill: #141410;font-weight: bold }
- .terminal-4111323278-r16 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r10 { fill: #226d58 }
+ .terminal-9999999-r11 { fill: #101010 }
+ .terminal-9999999-r12 { fill: #ffb6d9 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r16 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││DuckDB raised an error when running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
- │││INTEGER))│││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││DuckDB raised an error when running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
+ │││INTEGER))│││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -2238,192 +2238,192 @@
font-weight: 700;
}
- .terminal-2489862504-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2489862504-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2489862504-r1 { fill: #777777 }
- .terminal-2489862504-r2 { fill: #c5c8c6 }
- .terminal-2489862504-r3 { fill: #dfdfdf }
- .terminal-2489862504-r4 { fill: #858585 }
- .terminal-2489862504-r5 { fill: #feffac;font-weight: bold }
- .terminal-2489862504-r6 { fill: #dddddd }
- .terminal-2489862504-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2489862504-r8 { fill: #45ffca }
- .terminal-2489862504-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-2489862504-r10 { fill: #212116;font-weight: bold }
- .terminal-2489862504-r11 { fill: #feffac }
- .terminal-2489862504-r12 { fill: #777777;font-weight: bold }
- .terminal-2489862504-r13 { fill: #08211a }
- .terminal-2489862504-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #45ffca }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #feffac }
+ .terminal-9999999-r12 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r13 { fill: #08211a }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1; select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2453,193 +2453,193 @@
font-weight: 700;
}
- .terminal-4148890104-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4148890104-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4148890104-r1 { fill: #363636 }
- .terminal-4148890104-r2 { fill: #c5c8c6 }
- .terminal-4148890104-r3 { fill: #dfdfdf }
- .terminal-4148890104-r4 { fill: #606060 }
- .terminal-4148890104-r5 { fill: #3c3c3c }
- .terminal-4148890104-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-4148890104-r7 { fill: #5f5f5f }
- .terminal-4148890104-r8 { fill: #6d505e;font-weight: bold }
- .terminal-4148890104-r9 { fill: #226d58 }
- .terminal-4148890104-r10 { fill: #ffb6d9 }
- .terminal-4148890104-r11 { fill: #9d9d9d }
- .terminal-4148890104-r12 { fill: #777777 }
- .terminal-4148890104-r13 { fill: #141410;font-weight: bold }
- .terminal-4148890104-r14 { fill: #6c6d4c }
- .terminal-4148890104-r15 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #226d58 }
+ .terminal-9999999-r10 { fill: #ffb6d9 }
+ .terminal-9999999-r11 { fill: #9d9d9d }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #6c6d4c }
+ .terminal-9999999-r15 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1; select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││DuckDB raised an error when running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
- │││INTEGER))│││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- │││││ │
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││DuckDB raised an error when running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
+ │││INTEGER))│││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ │││││ │
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2669,191 +2669,191 @@
font-weight: 700;
}
- .terminal-1411406563-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1411406563-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1411406563-r1 { fill: #777777 }
- .terminal-1411406563-r2 { fill: #feffac }
- .terminal-1411406563-r3 { fill: #c5c8c6 }
- .terminal-1411406563-r4 { fill: #dfdfdf }
- .terminal-1411406563-r5 { fill: #858585 }
- .terminal-1411406563-r6 { fill: #feffac;font-weight: bold }
- .terminal-1411406563-r7 { fill: #dddddd }
- .terminal-1411406563-r8 { fill: #ffb6d9;font-weight: bold }
- .terminal-1411406563-r9 { fill: #45ffca }
- .terminal-1411406563-r10 { fill: #181818 }
- .terminal-1411406563-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-1411406563-r12 { fill: #212116;font-weight: bold }
- .terminal-1411406563-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
+ .terminal-9999999-r10 { fill: #181818 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select; select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -2883,194 +2883,194 @@
font-weight: 700;
}
- .terminal-4043135775-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4043135775-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4043135775-r1 { fill: #363636 }
- .terminal-4043135775-r2 { fill: #6c6d4c }
- .terminal-4043135775-r3 { fill: #c5c8c6 }
- .terminal-4043135775-r4 { fill: #dfdfdf }
- .terminal-4043135775-r5 { fill: #606060 }
- .terminal-4043135775-r6 { fill: #3c3c3c }
- .terminal-4043135775-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-4043135775-r8 { fill: #5f5f5f }
- .terminal-4043135775-r9 { fill: #6d505e;font-weight: bold }
- .terminal-4043135775-r10 { fill: #226d58 }
- .terminal-4043135775-r11 { fill: #101010 }
- .terminal-4043135775-r12 { fill: #ffb6d9 }
- .terminal-4043135775-r13 { fill: #9d9d9d }
- .terminal-4043135775-r14 { fill: #777777 }
- .terminal-4043135775-r15 { fill: #141410;font-weight: bold }
- .terminal-4043135775-r16 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r10 { fill: #226d58 }
+ .terminal-9999999-r11 { fill: #101010 }
+ .terminal-9999999-r12 { fill: #ffb6d9 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r16 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select; select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││DuckDB raised an error when running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
- │││INTEGER))│││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││ Run Query
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││DuckDB raised an error when running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Conversion Error: Unimplemented type for cast (INTEGER -> STRUCT(id │││
+ │││INTEGER))│││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││ Run Query
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -3100,189 +3100,189 @@
font-weight: 700;
}
- .terminal-2981061078-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2981061078-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2981061078-r1 { fill: #777777 }
- .terminal-2981061078-r2 { fill: #feffac }
- .terminal-2981061078-r3 { fill: #c5c8c6 }
- .terminal-2981061078-r4 { fill: #dfdfdf }
- .terminal-2981061078-r5 { fill: #858585 }
- .terminal-2981061078-r6 { fill: #feffac;font-weight: bold }
- .terminal-2981061078-r7 { fill: #181818 }
- .terminal-2981061078-r8 { fill: #dddddd }
- .terminal-2981061078-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-2981061078-r10 { fill: #212116;font-weight: bold }
- .terminal-2981061078-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #dddddd }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -3312,192 +3312,192 @@
font-weight: 700;
}
- .terminal-303197150-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-303197150-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-303197150-r1 { fill: #363636 }
- .terminal-303197150-r2 { fill: #6c6d4c }
- .terminal-303197150-r3 { fill: #c5c8c6 }
- .terminal-303197150-r4 { fill: #dfdfdf }
- .terminal-303197150-r5 { fill: #606060 }
- .terminal-303197150-r6 { fill: #3c3c3c }
- .terminal-303197150-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-303197150-r8 { fill: #101010 }
- .terminal-303197150-r9 { fill: #5f5f5f }
- .terminal-303197150-r10 { fill: #ffb6d9 }
- .terminal-303197150-r11 { fill: #9d9d9d }
- .terminal-303197150-r12 { fill: #777777 }
- .terminal-303197150-r13 { fill: #141410;font-weight: bold }
- .terminal-303197150-r14 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #101010 }
+ .terminal-9999999-r9 { fill: #5f5f5f }
+ .terminal-9999999-r10 { fill: #ffb6d9 }
+ .terminal-9999999-r11 { fill: #9d9d9d }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││DuckDB raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Parser Error: SELECT clause without selection list│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││ Run Query
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││DuckDB raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Parser Error: SELECT clause without selection list│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││ Run Query
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -3527,191 +3527,191 @@
font-weight: 700;
}
- .terminal-3657002124-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3657002124-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3657002124-r1 { fill: #777777 }
- .terminal-3657002124-r2 { fill: #feffac }
- .terminal-3657002124-r3 { fill: #c5c8c6 }
- .terminal-3657002124-r4 { fill: #dfdfdf }
- .terminal-3657002124-r5 { fill: #858585 }
- .terminal-3657002124-r6 { fill: #feffac;font-weight: bold }
- .terminal-3657002124-r7 { fill: #dddddd }
- .terminal-3657002124-r8 { fill: #ffb6d9;font-weight: bold }
- .terminal-3657002124-r9 { fill: #45ffca }
- .terminal-3657002124-r10 { fill: #181818 }
- .terminal-3657002124-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-3657002124-r12 { fill: #212116;font-weight: bold }
- .terminal-3657002124-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
+ .terminal-9999999-r10 { fill: #181818 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select0::struct(id int); select1│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select0::struct(id int); select1│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -3741,194 +3741,194 @@
font-weight: 700;
}
- .terminal-201907021-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-201907021-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-201907021-r1 { fill: #363636 }
- .terminal-201907021-r2 { fill: #6c6d4c }
- .terminal-201907021-r3 { fill: #c5c8c6 }
- .terminal-201907021-r4 { fill: #dfdfdf }
- .terminal-201907021-r5 { fill: #606060 }
- .terminal-201907021-r6 { fill: #3c3c3c }
- .terminal-201907021-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-201907021-r8 { fill: #5f5f5f }
- .terminal-201907021-r9 { fill: #6d505e;font-weight: bold }
- .terminal-201907021-r10 { fill: #226d58 }
- .terminal-201907021-r11 { fill: #101010 }
- .terminal-201907021-r12 { fill: #ffb6d9 }
- .terminal-201907021-r13 { fill: #9d9d9d }
- .terminal-201907021-r14 { fill: #777777 }
- .terminal-201907021-r15 { fill: #141410;font-weight: bold }
- .terminal-201907021-r16 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r10 { fill: #226d58 }
+ .terminal-9999999-r11 { fill: #101010 }
+ .terminal-9999999-r12 { fill: #ffb6d9 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r16 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select0::struct(id int); select1│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││SQLite raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││unrecognized token: ":"│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select0::struct(id int); select1│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││SQLite raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││unrecognized token: ":"│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -3958,191 +3958,191 @@
font-weight: 700;
}
- .terminal-2170049553-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2170049553-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2170049553-r1 { fill: #777777 }
- .terminal-2170049553-r2 { fill: #feffac }
- .terminal-2170049553-r3 { fill: #c5c8c6 }
- .terminal-2170049553-r4 { fill: #dfdfdf }
- .terminal-2170049553-r5 { fill: #858585 }
- .terminal-2170049553-r6 { fill: #feffac;font-weight: bold }
- .terminal-2170049553-r7 { fill: #dddddd }
- .terminal-2170049553-r8 { fill: #ffb6d9;font-weight: bold }
- .terminal-2170049553-r9 { fill: #45ffca }
- .terminal-2170049553-r10 { fill: #181818 }
- .terminal-2170049553-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-2170049553-r12 { fill: #212116;font-weight: bold }
- .terminal-2170049553-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
+ .terminal-9999999-r10 { fill: #181818 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -4172,194 +4172,194 @@
font-weight: 700;
}
- .terminal-4232169130-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4232169130-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4232169130-r1 { fill: #363636 }
- .terminal-4232169130-r2 { fill: #6c6d4c }
- .terminal-4232169130-r3 { fill: #c5c8c6 }
- .terminal-4232169130-r4 { fill: #dfdfdf }
- .terminal-4232169130-r5 { fill: #606060 }
- .terminal-4232169130-r6 { fill: #3c3c3c }
- .terminal-4232169130-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-4232169130-r8 { fill: #5f5f5f }
- .terminal-4232169130-r9 { fill: #6d505e;font-weight: bold }
- .terminal-4232169130-r10 { fill: #226d58 }
- .terminal-4232169130-r11 { fill: #101010 }
- .terminal-4232169130-r12 { fill: #ffb6d9 }
- .terminal-4232169130-r13 { fill: #9d9d9d }
- .terminal-4232169130-r14 { fill: #777777 }
- .terminal-4232169130-r15 { fill: #141410;font-weight: bold }
- .terminal-4232169130-r16 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r10 { fill: #226d58 }
+ .terminal-9999999-r11 { fill: #101010 }
+ .terminal-9999999-r12 { fill: #ffb6d9 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r16 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││SQLite raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││unrecognized token: ":"│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││SQLite raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││unrecognized token: ":"│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -4389,192 +4389,192 @@
font-weight: 700;
}
- .terminal-1494676705-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1494676705-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1494676705-r1 { fill: #777777 }
- .terminal-1494676705-r2 { fill: #c5c8c6 }
- .terminal-1494676705-r3 { fill: #dfdfdf }
- .terminal-1494676705-r4 { fill: #858585 }
- .terminal-1494676705-r5 { fill: #feffac;font-weight: bold }
- .terminal-1494676705-r6 { fill: #dddddd }
- .terminal-1494676705-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-1494676705-r8 { fill: #45ffca }
- .terminal-1494676705-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-1494676705-r10 { fill: #212116;font-weight: bold }
- .terminal-1494676705-r11 { fill: #feffac }
- .terminal-1494676705-r12 { fill: #777777;font-weight: bold }
- .terminal-1494676705-r13 { fill: #08211a }
- .terminal-1494676705-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #45ffca }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #feffac }
+ .terminal-9999999-r12 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r13 { fill: #08211a }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select1; select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ 1 ## │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select1; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ 1 ## │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -4604,193 +4604,193 @@
font-weight: 700;
}
- .terminal-1443692564-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1443692564-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1443692564-r1 { fill: #363636 }
- .terminal-1443692564-r2 { fill: #c5c8c6 }
- .terminal-1443692564-r3 { fill: #dfdfdf }
- .terminal-1443692564-r4 { fill: #606060 }
- .terminal-1443692564-r5 { fill: #3c3c3c }
- .terminal-1443692564-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-1443692564-r7 { fill: #5f5f5f }
- .terminal-1443692564-r8 { fill: #6d505e;font-weight: bold }
- .terminal-1443692564-r9 { fill: #226d58 }
- .terminal-1443692564-r10 { fill: #ffb6d9 }
- .terminal-1443692564-r11 { fill: #9d9d9d }
- .terminal-1443692564-r12 { fill: #777777 }
- .terminal-1443692564-r13 { fill: #141410;font-weight: bold }
- .terminal-1443692564-r14 { fill: #6c6d4c }
- .terminal-1443692564-r15 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #226d58 }
+ .terminal-9999999-r10 { fill: #ffb6d9 }
+ .terminal-9999999-r11 { fill: #9d9d9d }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #6c6d4c }
+ .terminal-9999999-r15 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select1; select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││SQLite raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││unrecognized token: ":"│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- │││││ │
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select1; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││SQLite raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││unrecognized token: ":"│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ │││││ │
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -4820,191 +4820,191 @@
font-weight: 700;
}
- .terminal-3552567641-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3552567641-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3552567641-r1 { fill: #777777 }
- .terminal-3552567641-r2 { fill: #feffac }
- .terminal-3552567641-r3 { fill: #c5c8c6 }
- .terminal-3552567641-r4 { fill: #dfdfdf }
- .terminal-3552567641-r5 { fill: #858585 }
- .terminal-3552567641-r6 { fill: #feffac;font-weight: bold }
- .terminal-3552567641-r7 { fill: #dddddd }
- .terminal-3552567641-r8 { fill: #ffb6d9;font-weight: bold }
- .terminal-3552567641-r9 { fill: #45ffca }
- .terminal-3552567641-r10 { fill: #181818 }
- .terminal-3552567641-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-3552567641-r12 { fill: #212116;font-weight: bold }
- .terminal-3552567641-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
+ .terminal-9999999-r10 { fill: #181818 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select; select0::struct(id int)│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -5034,194 +5034,194 @@
font-weight: 700;
}
- .terminal-3240644947-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3240644947-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3240644947-r1 { fill: #363636 }
- .terminal-3240644947-r2 { fill: #6c6d4c }
- .terminal-3240644947-r3 { fill: #c5c8c6 }
- .terminal-3240644947-r4 { fill: #dfdfdf }
- .terminal-3240644947-r5 { fill: #606060 }
- .terminal-3240644947-r6 { fill: #3c3c3c }
- .terminal-3240644947-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-3240644947-r8 { fill: #5f5f5f }
- .terminal-3240644947-r9 { fill: #6d505e;font-weight: bold }
- .terminal-3240644947-r10 { fill: #226d58 }
- .terminal-3240644947-r11 { fill: #101010 }
- .terminal-3240644947-r12 { fill: #ffb6d9 }
- .terminal-3240644947-r13 { fill: #9d9d9d }
- .terminal-3240644947-r14 { fill: #777777 }
- .terminal-3240644947-r15 { fill: #141410;font-weight: bold }
- .terminal-3240644947-r16 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r10 { fill: #226d58 }
+ .terminal-9999999-r11 { fill: #101010 }
+ .terminal-9999999-r12 { fill: #ffb6d9 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r16 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select; select0::struct(id int)│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││SQLite raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││incomplete input│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select; select0::struct(id int)│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││SQLite raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││incomplete input│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -5251,189 +5251,189 @@
font-weight: 700;
}
- .terminal-120514636-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-120514636-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-120514636-r1 { fill: #777777 }
- .terminal-120514636-r2 { fill: #feffac }
- .terminal-120514636-r3 { fill: #c5c8c6 }
- .terminal-120514636-r4 { fill: #dfdfdf }
- .terminal-120514636-r5 { fill: #858585 }
- .terminal-120514636-r6 { fill: #feffac;font-weight: bold }
- .terminal-120514636-r7 { fill: #181818 }
- .terminal-120514636-r8 { fill: #dddddd }
- .terminal-120514636-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-120514636-r10 { fill: #212116;font-weight: bold }
- .terminal-120514636-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #dddddd }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Selection
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Selection
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -5463,192 +5463,192 @@
font-weight: 700;
}
- .terminal-4147864219-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4147864219-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4147864219-r1 { fill: #363636 }
- .terminal-4147864219-r2 { fill: #6c6d4c }
- .terminal-4147864219-r3 { fill: #c5c8c6 }
- .terminal-4147864219-r4 { fill: #dfdfdf }
- .terminal-4147864219-r5 { fill: #606060 }
- .terminal-4147864219-r6 { fill: #3c3c3c }
- .terminal-4147864219-r7 { fill: #6c6d4c;font-weight: bold }
- .terminal-4147864219-r8 { fill: #101010 }
- .terminal-4147864219-r9 { fill: #5f5f5f }
- .terminal-4147864219-r10 { fill: #ffb6d9 }
- .terminal-4147864219-r11 { fill: #9d9d9d }
- .terminal-4147864219-r12 { fill: #777777 }
- .terminal-4147864219-r13 { fill: #141410;font-weight: bold }
- .terminal-4147864219-r14 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #101010 }
+ .terminal-9999999-r9 { fill: #5f5f5f }
+ .terminal-9999999-r10 { fill: #ffb6d9 }
+ .terminal-9999999-r11 { fill: #9d9d9d }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │main db││1 select│
- ││││
- ││││
- ││││
- │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
- ││││
- ││SQLite raised an error when compiling or running your query:││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││incomplete input│││
- ││││││
- ││││││
- ││││││
- ││││││
- │││││───────────────╯
- │││││un Selection
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │main db││1 select│
+ ││││
+ ││││
+ ││││
+ │╭─ Query Error ────────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││SQLite raised an error when compiling or running your query:││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││incomplete input│││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ │││││───────────────╯
+ │││││un Selection
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -5678,144 +5678,144 @@
font-weight: 700;
}
- .terminal-3980533001-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3980533001-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3980533001-r1 { fill: #777777 }
- .terminal-3980533001-r2 { fill: #c5c8c6 }
- .terminal-3980533001-r3 { fill: #dfdfdf }
- .terminal-3980533001-r4 { fill: #858585 }
- .terminal-3980533001-r5 { fill: #feffac;font-weight: bold }
- .terminal-3980533001-r6 { fill: #dddddd }
- .terminal-3980533001-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3980533001-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3980533001-r9 { fill: #212116;font-weight: bold }
- .terminal-3980533001-r10 { fill: #feffac }
- .terminal-3980533001-r11 { fill: #777777;font-weight: bold }
- .terminal-3980533001-r12 { fill: #08211a }
- .terminal-3980533001-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3980533001-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1as foo │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ foo # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1as foo │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ foo # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -5845,144 +5845,144 @@
font-weight: 700;
}
- .terminal-2500118658-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2500118658-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2500118658-r1 { fill: #777777 }
- .terminal-2500118658-r2 { fill: #c5c8c6 }
- .terminal-2500118658-r3 { fill: #dfdfdf }
- .terminal-2500118658-r4 { fill: #858585 }
- .terminal-2500118658-r5 { fill: #feffac;font-weight: bold }
- .terminal-2500118658-r6 { fill: #dddddd }
- .terminal-2500118658-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-2500118658-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2500118658-r9 { fill: #212116;font-weight: bold }
- .terminal-2500118658-r10 { fill: #feffac }
- .terminal-2500118658-r11 { fill: #777777;font-weight: bold }
- .terminal-2500118658-r12 { fill: #08211a }
- .terminal-2500118658-r13 { fill: #45ffca;font-weight: bold }
- .terminal-2500118658-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1as foo │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ foo ## │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1as foo │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ foo ## │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
diff --git a/tests/functional_tests/__snapshots__/test_data_catalog.ambr b/tests/functional_tests/__snapshots__/test_data_catalog.ambr
index bb7f9dd8..aefb68f8 100644
--- a/tests/functional_tests/__snapshots__/test_data_catalog.ambr
+++ b/tests/functional_tests/__snapshots__/test_data_catalog.ambr
@@ -1,4 +1,855 @@
# serializer version: 1
+# name: test_context_menu[db context menu expanded]
+ '''
+
+
+ '''
+# ---
+# name: test_context_menu[db name inserted]
+ '''
+
+
+ '''
+# ---
+# name: test_context_menu[schema context menu expanded]
+ '''
+
+
+ '''
+# ---
+# name: test_context_menu[table context menu expanded]
+ '''
+
+
+ '''
+# ---
# name: test_data_catalog[Initialization]
'''
@@ -233,190 +1084,190 @@
font-weight: 700;
}
- .terminal-1227425220-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1227425220-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1227425220-r1 { fill: #777777 }
- .terminal-1227425220-r2 { fill: #feffac }
- .terminal-1227425220-r3 { fill: #c5c8c6 }
- .terminal-1227425220-r4 { fill: #dfdfdf }
- .terminal-1227425220-r5 { fill: #858585 }
- .terminal-1227425220-r6 { fill: #dddddd }
- .terminal-1227425220-r7 { fill: #feffac;font-weight: bold }
- .terminal-1227425220-r8 { fill: #181818 }
- .terminal-1227425220-r9 { fill: #001b14;font-weight: bold }
- .terminal-1227425220-r10 { fill: #0c0c0c;font-weight: bold }
- .terminal-1227425220-r11 { fill: #212116;font-weight: bold }
- .terminal-1227425220-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r8 { fill: #181818 }
+ .terminal-9999999-r9 { fill: #001b14;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r11 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▼ small db││1 "small"."main"│
- │├─ empty sch│││
- │└─ ▼ main sch│││
- │ └─ ▶ drivers t│││
- │▶ tiny db│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▼ small db││1 "small"."main"│
+ │├─ empty sch│││
+ │└─ ▼ main sch│││
+ │ └─ ▶ drivers t│││
+ │▶ tiny db│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -446,189 +1297,189 @@
font-weight: 700;
}
- .terminal-42125519-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-42125519-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-42125519-r1 { fill: #feffac }
- .terminal-42125519-r2 { fill: #777777 }
- .terminal-42125519-r3 { fill: #c5c8c6 }
- .terminal-42125519-r4 { fill: #dfdfdf }
- .terminal-42125519-r5 { fill: #08211a;font-weight: bold }
- .terminal-42125519-r6 { fill: #858585 }
- .terminal-42125519-r7 { fill: #dddddd }
- .terminal-42125519-r8 { fill: #45ffca;font-weight: bold }
- .terminal-42125519-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-42125519-r10 { fill: #212116;font-weight: bold }
- .terminal-42125519-r11 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r6 { fill: #858585 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▼ small db││1 │
- │┣━ empty sch│││
- │┗━ ▶ main sch│││
- │▶ tiny db│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▼ small db││1 │
+ │┣━ empty sch│││
+ │┗━ ▶ main sch│││
+ │▶ tiny db│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -658,189 +1509,189 @@
font-weight: 700;
}
- .terminal-2232766834-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2232766834-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2232766834-r1 { fill: #feffac }
- .terminal-2232766834-r2 { fill: #777777 }
- .terminal-2232766834-r3 { fill: #c5c8c6 }
- .terminal-2232766834-r4 { fill: #dfdfdf }
- .terminal-2232766834-r5 { fill: #858585 }
- .terminal-2232766834-r6 { fill: #dddddd }
- .terminal-2232766834-r7 { fill: #08211a;font-weight: bold }
- .terminal-2232766834-r8 { fill: #45ffca;font-weight: bold }
- .terminal-2232766834-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-2232766834-r10 { fill: #212116;font-weight: bold }
- .terminal-2232766834-r11 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r8 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▼ small db││1 │
- │├─ empty sch│││
- │└─ ▼ main sch│││
- │┗━ ▶ drivers t│││
- │▶ tiny db│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▼ small db││1 │
+ │├─ empty sch│││
+ │└─ ▼ main sch│││
+ │┗━ ▶ drivers t│││
+ │▶ tiny db│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -870,189 +1721,189 @@
font-weight: 700;
}
- .terminal-2022038081-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2022038081-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2022038081-r1 { fill: #777777 }
- .terminal-2022038081-r2 { fill: #feffac }
- .terminal-2022038081-r3 { fill: #c5c8c6 }
- .terminal-2022038081-r4 { fill: #dfdfdf }
- .terminal-2022038081-r5 { fill: #858585 }
- .terminal-2022038081-r6 { fill: #dddddd }
- .terminal-2022038081-r7 { fill: #181818 }
- .terminal-2022038081-r8 { fill: #001b14;font-weight: bold }
- .terminal-2022038081-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-2022038081-r10 { fill: #212116;font-weight: bold }
- .terminal-2022038081-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #001b14;font-weight: bold }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▼ small db││1 "dob"│
- │├─ empty sch│││
- │└─ ▼ main sch│││
- │ └─ ▼ drivers t│││
- │ ├─ code s│││
- │ ├─ dob d│││
- │ ├─ driverId ##│││
- │ ├─ driverRef s│││
- │ ├─ forename s│││
- │ ├─ nationality s│││
- │ ├─ number s│││
- │ ├─ surname s│││
- │ └─ url s│││
- │▶ tiny db│││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▼ small db││1 "dob"│
+ │├─ empty sch│││
+ │└─ ▼ main sch│││
+ │ └─ ▼ drivers t│││
+ │ ├─ code s│││
+ │ ├─ dob d│││
+ │ ├─ driverId ##│││
+ │ ├─ driverRef s│││
+ │ ├─ forename s│││
+ │ ├─ nationality s│││
+ │ ├─ number s│││
+ │ ├─ surname s│││
+ │ └─ url s│││
+ │▶ tiny db│││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -1082,190 +1933,190 @@
font-weight: 700;
}
- .terminal-422966249-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-422966249-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-422966249-r1 { fill: #feffac }
- .terminal-422966249-r2 { fill: #777777 }
- .terminal-422966249-r3 { fill: #c5c8c6 }
- .terminal-422966249-r4 { fill: #dfdfdf }
- .terminal-422966249-r5 { fill: #858585 }
- .terminal-422966249-r6 { fill: #dddddd }
- .terminal-422966249-r7 { fill: #feffac;font-weight: bold }
- .terminal-422966249-r8 { fill: #08211a;font-weight: bold }
- .terminal-422966249-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-422966249-r10 { fill: #212116;font-weight: bold }
- .terminal-422966249-r11 { fill: #45ffca;font-weight: bold }
- .terminal-422966249-r12 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r12 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▼ small db││1 "small"."main" │
- │├─ empty sch│││
- │└─ ▼ main sch│││
- │ └─ ▼ drivers t│││
- │ ├─ code s│││
- │ ├─ dob d│││
- │ ├─ driverId ##│││
- │ ├─ driverRef s│││
- │ ├─ forename s│││
- │ ├─ nationality s│││
- │ ├─ number s│││
- │ ├─ surname s│││
- │ └─ url s│││
- │▶ tiny db│││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▼ small db││1 "small"."main" │
+ │├─ empty sch│││
+ │└─ ▼ main sch│││
+ │ └─ ▼ drivers t│││
+ │ ├─ code s│││
+ │ ├─ dob d│││
+ │ ├─ driverId ##│││
+ │ ├─ driverRef s│││
+ │ ├─ forename s│││
+ │ ├─ nationality s│││
+ │ ├─ number s│││
+ │ ├─ surname s│││
+ │ └─ url s│││
+ │▶ tiny db│││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -1295,193 +2146,193 @@
font-weight: 700;
}
- .terminal-3218704510-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3218704510-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3218704510-r1 { fill: #feffac }
- .terminal-3218704510-r2 { fill: #777777 }
- .terminal-3218704510-r3 { fill: #c5c8c6 }
- .terminal-3218704510-r4 { fill: #dfdfdf }
- .terminal-3218704510-r5 { fill: #858585 }
- .terminal-3218704510-r6 { fill: #dddddd }
- .terminal-3218704510-r7 { fill: #686868 }
- .terminal-3218704510-r8 { fill: #dfdfdf;font-weight: bold }
- .terminal-3218704510-r9 { fill: #232323 }
- .terminal-3218704510-r10 { fill: #08211a;font-weight: bold }
- .terminal-3218704510-r11 { fill: #45ffca;font-weight: bold }
- .terminal-3218704510-r12 { fill: #9d9d9d;font-style: italic; }
- .terminal-3218704510-r13 { fill: #0c0c0c;font-weight: bold }
- .terminal-3218704510-r14 { fill: #212116;font-weight: bold }
- .terminal-3218704510-r15 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #686868 }
+ .terminal-9999999-r8 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r9 { fill: #232323 }
+ .terminal-9999999-r10 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r12 { fill: #9d9d9d;font-style: italic; }
+ .terminal-9999999-r13 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r14 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r15 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │││1 │
- │DatabasesFiles│││
- │━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━│││
- │📂 files│││
- │┣━ 📁 foo│││
- │┣━ 📄 .hidden│││
- │┣━ 📄 bar.csv│││
- │┣━ 📄 baz.parquet│││
- │┗━ 📄 qux.py│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │││1 │
+ │DatabasesFiles│││
+ │━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━│││
+ │📂 files│││
+ │┣━ 📁 foo│││
+ │┣━ 📄 .hidden│││
+ │┣━ 📄 bar.csv│││
+ │┣━ 📄 baz.parquet│││
+ │┗━ 📄 qux.py│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -1511,193 +2362,193 @@
font-weight: 700;
}
- .terminal-2132831129-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2132831129-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2132831129-r1 { fill: #feffac }
- .terminal-2132831129-r2 { fill: #777777 }
- .terminal-2132831129-r3 { fill: #c5c8c6 }
- .terminal-2132831129-r4 { fill: #dfdfdf }
- .terminal-2132831129-r5 { fill: #858585 }
- .terminal-2132831129-r6 { fill: #dddddd }
- .terminal-2132831129-r7 { fill: #686868 }
- .terminal-2132831129-r8 { fill: #dfdfdf;font-weight: bold }
- .terminal-2132831129-r9 { fill: #232323 }
- .terminal-2132831129-r10 { fill: #08211a;font-weight: bold }
- .terminal-2132831129-r11 { fill: #45ffca;font-weight: bold }
- .terminal-2132831129-r12 { fill: #9d9d9d;font-style: italic; }
- .terminal-2132831129-r13 { fill: #0c0c0c;font-weight: bold }
- .terminal-2132831129-r14 { fill: #212116;font-weight: bold }
- .terminal-2132831129-r15 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #686868 }
+ .terminal-9999999-r8 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r9 { fill: #232323 }
+ .terminal-9999999-r10 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r12 { fill: #9d9d9d;font-style: italic; }
+ .terminal-9999999-r13 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r14 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r15 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │││1 │
- │DatabasesFiles│││
- │━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━│││
- │📂 files│││
- │├─ 📂 foo│││
- ││ ┗━ 📄 foo.csv│││
- │├─ 📄 .hidden│││
- │├─ 📄 bar.csv│││
- │├─ 📄 baz.parquet│││
- │└─ 📄 qux.py│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │││1 │
+ │DatabasesFiles│││
+ │━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━│││
+ │📂 files│││
+ │├─ 📂 foo│││
+ ││ ┗━ 📄 foo.csv│││
+ │├─ 📄 .hidden│││
+ │├─ 📄 bar.csv│││
+ │├─ 📄 baz.parquet│││
+ │└─ 📄 qux.py│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -1727,191 +2578,192 @@
font-weight: 700;
}
- .terminal-3161496987-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3161496987-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3161496987-r1 { fill: #feffac }
- .terminal-3161496987-r2 { fill: #777777 }
- .terminal-3161496987-r3 { fill: #c5c8c6 }
- .terminal-3161496987-r4 { fill: #dfdfdf }
- .terminal-3161496987-r5 { fill: #858585 }
- .terminal-3161496987-r6 { fill: #dddddd }
- .terminal-3161496987-r7 { fill: #686868 }
- .terminal-3161496987-r8 { fill: #dfdfdf;font-weight: bold }
- .terminal-3161496987-r9 { fill: #232323 }
- .terminal-3161496987-r10 { fill: #0c0c0c;font-weight: bold }
- .terminal-3161496987-r11 { fill: #212116;font-weight: bold }
- .terminal-3161496987-r12 { fill: #45ffca;font-weight: bold }
- .terminal-3161496987-r13 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #686868 }
+ .terminal-9999999-r8 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r9 { fill: #232323 }
+ .terminal-9999999-r10 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │││1 │
- │DatabasesS3│││
- │━━━━━━━━━━━━━╸━━╺━━━━━━━━━━━│││
- │📁 my-bucket│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │││1 │
+ │DatabasesS3│││
+ │━━━━━━━━━━━━━╸━━╺━━━━━━━━━━━│││
+ │📁 my-bucket│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -1941,192 +2793,192 @@
font-weight: 700;
}
- .terminal-3234209571-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3234209571-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3234209571-r1 { fill: #feffac }
- .terminal-3234209571-r2 { fill: #777777 }
- .terminal-3234209571-r3 { fill: #c5c8c6 }
- .terminal-3234209571-r4 { fill: #dfdfdf }
- .terminal-3234209571-r5 { fill: #858585 }
- .terminal-3234209571-r6 { fill: #dddddd }
- .terminal-3234209571-r7 { fill: #686868 }
- .terminal-3234209571-r8 { fill: #dfdfdf;font-weight: bold }
- .terminal-3234209571-r9 { fill: #232323 }
- .terminal-3234209571-r10 { fill: #08211a;font-weight: bold }
- .terminal-3234209571-r11 { fill: #45ffca;font-weight: bold }
- .terminal-3234209571-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-3234209571-r13 { fill: #212116;font-weight: bold }
- .terminal-3234209571-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #686868 }
+ .terminal-9999999-r8 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r9 { fill: #232323 }
+ .terminal-9999999-r10 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │││1 │
- │DatabasesS3│││
- │━━━━━━━━━━━━━╸━━╺━━━━━━━━━━━│││
- │📂 my-bucket│││
- │├─ 📂 one│││
- ││ ┣━ 📁 alpha│││
- ││ ┗━ 📁 bravo│││
- │└─ 📁 two│││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │││1 │
+ │DatabasesS3│││
+ │━━━━━━━━━━━━━╸━━╺━━━━━━━━━━━│││
+ │📂 my-bucket│││
+ │├─ 📂 one│││
+ ││ ┣━ 📁 alpha│││
+ ││ ┗━ 📁 bravo│││
+ │└─ 📁 two│││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Insert Name . Show Context Menu
@@ -2156,193 +3008,193 @@
font-weight: 700;
}
- .terminal-4056085466-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4056085466-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4056085466-r1 { fill: #363636 }
- .terminal-4056085466-r2 { fill: #6c6d4c }
- .terminal-4056085466-r3 { fill: #c5c8c6 }
- .terminal-4056085466-r4 { fill: #dfdfdf }
- .terminal-4056085466-r5 { fill: #606060 }
- .terminal-4056085466-r6 { fill: #3c3c3c }
- .terminal-4056085466-r7 { fill: #101010 }
- .terminal-4056085466-r8 { fill: #5f5f5f }
- .terminal-4056085466-r9 { fill: #606060;font-weight: bold }
- .terminal-4056085466-r10 { fill: #151515 }
- .terminal-4056085466-r11 { fill: #ffb6d9 }
- .terminal-4056085466-r12 { fill: #9d9d9d }
- .terminal-4056085466-r13 { fill: #777777 }
- .terminal-4056085466-r14 { fill: #141410;font-weight: bold }
- .terminal-4056085466-r15 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #101010 }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r10 { fill: #151515 }
+ .terminal-9999999-r11 { fill: #ffb6d9 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #777777 }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │││1 │
- │Databases│││
- │━╸━━━━━━━━━╺━━━━━━━━━━━━━━━━│││
- │▶ memory db│││
- │╭─ Catalog Error: s3 ──────────────────────────────────────────────────────────────────╮│
- ││││
- ││Could not populate the s3 data catalog││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Could not load s3 catalog because boto3 is not available.│││
- ││││││
- │││Re-install harlequin with the s3 extra, like this:│││
- │││pip install harlequin[s3]│││
- ││││││
- │││││───────────────╯
- │││││ Run Query
- │││││───────────────╮
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││││││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Press any key to continue. Click error to copy.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │││1 │
+ │Databases│││
+ │━╸━━━━━━━━━╺━━━━━━━━━━━━━━━━│││
+ │▶ memory db│││
+ │╭─ Catalog Error: s3 ──────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Could not populate the s3 data catalog││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Could not load s3 catalog because boto3 is not available.│││
+ ││││││
+ │││Re-install harlequin with the s3 extra, like this:│││
+ │││pip install harlequin[s3]│││
+ ││││││
+ │││││───────────────╯
+ │││││ Run Query
+ │││││───────────────╮
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││││││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Press any key to continue. Click error to copy.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
diff --git a/tests/functional_tests/__snapshots__/test_export.ambr b/tests/functional_tests/__snapshots__/test_export.ambr
index 433f3e6c..40802cd2 100644
--- a/tests/functional_tests/__snapshots__/test_export.ambr
+++ b/tests/functional_tests/__snapshots__/test_export.ambr
@@ -22,192 +22,192 @@
font-weight: 700;
}
- .terminal-3144483172-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144483172-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144483172-r1 { fill: #777777 }
- .terminal-3144483172-r2 { fill: #c5c8c6 }
- .terminal-3144483172-r3 { fill: #dfdfdf }
- .terminal-3144483172-r4 { fill: #858585 }
- .terminal-3144483172-r5 { fill: #feffac;font-weight: bold }
- .terminal-3144483172-r6 { fill: #dddddd }
- .terminal-3144483172-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3144483172-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3144483172-r9 { fill: #212116;font-weight: bold }
- .terminal-3144483172-r10 { fill: #feffac }
- .terminal-3144483172-r11 { fill: #777777;font-weight: bold }
- .terminal-3144483172-r12 { fill: #08211a }
- .terminal-3144483172-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3144483172-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ a # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ a # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -237,197 +237,197 @@
font-weight: 700;
}
- .terminal-2383935842-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2383935842-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2383935842-r1 { fill: #363636 }
- .terminal-2383935842-r2 { fill: #c5c8c6 }
- .terminal-2383935842-r3 { fill: #dfdfdf }
- .terminal-2383935842-r4 { fill: #606060 }
- .terminal-2383935842-r5 { fill: #3c3c3c }
- .terminal-2383935842-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2383935842-r7 { fill: #5f5f5f }
- .terminal-2383935842-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2383935842-r9 { fill: #feffac }
- .terminal-2383935842-r10 { fill: #0c0c0c }
- .terminal-2383935842-r11 { fill: #686868 }
- .terminal-2383935842-r12 { fill: #777777 }
- .terminal-2383935842-r13 { fill: #9d9d9d }
- .terminal-2383935842-r14 { fill: #141410;font-weight: bold }
- .terminal-2383935842-r15 { fill: #6c6d4c }
- .terminal-2383935842-r16 { fill: #ededed;font-weight: bold }
- .terminal-2383935842-r17 { fill: #212116;font-weight: bold }
- .terminal-2383935842-r18 { fill: #226d58;font-weight: bold }
- .terminal-2383935842-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Select▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││││
- │││───────────────╯
- │││ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Select▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││││
+ │││───────────────╯
+ │││ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -457,197 +457,197 @@
font-weight: 700;
}
- .terminal-2137362106-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2137362106-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2137362106-r1 { fill: #363636 }
- .terminal-2137362106-r2 { fill: #c5c8c6 }
- .terminal-2137362106-r3 { fill: #dfdfdf }
- .terminal-2137362106-r4 { fill: #606060 }
- .terminal-2137362106-r5 { fill: #3c3c3c }
- .terminal-2137362106-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2137362106-r7 { fill: #5f5f5f }
- .terminal-2137362106-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2137362106-r9 { fill: #feffac }
- .terminal-2137362106-r10 { fill: #0c0c0c }
- .terminal-2137362106-r11 { fill: #777777 }
- .terminal-2137362106-r12 { fill: #9d9d9d }
- .terminal-2137362106-r13 { fill: #e8e8e8 }
- .terminal-2137362106-r14 { fill: #141410;font-weight: bold }
- .terminal-2137362106-r15 { fill: #6c6d4c }
- .terminal-2137362106-r16 { fill: #ededed;font-weight: bold }
- .terminal-2137362106-r17 { fill: #212116;font-weight: bold }
- .terminal-2137362106-r18 { fill: #226d58;font-weight: bold }
- .terminal-2137362106-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #777777 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #e8e8e8 }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/tmp/foo-bar-static/one.csv│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │CSV▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││▊▔▔▔▔▔▔▔▔▎││
- ││ Header: ▊▎│───────────────╯
- ││▊▁▁▁▁▁▁▁▁▎│ Run Query
- │││───────────────╮
- ││╭──────────────────────────────────────╮│ │
- ││ Separator: │, │││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Compression: │Auto▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││▊▔▔▔▔▔▔▔▔▎││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/tmp/foo-bar-static/one.csv│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │CSV▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││▊▔▔▔▔▔▔▔▔▎││
+ ││ Header: ▊▎│───────────────╯
+ ││▊▁▁▁▁▁▁▁▁▎│ Run Query
+ │││───────────────╮
+ ││╭──────────────────────────────────────╮│ │
+ ││ Separator: │, │││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Compression: │Auto▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││▊▔▔▔▔▔▔▔▔▎││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -677,192 +677,192 @@
font-weight: 700;
}
- .terminal-3144483172-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144483172-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144483172-r1 { fill: #777777 }
- .terminal-3144483172-r2 { fill: #c5c8c6 }
- .terminal-3144483172-r3 { fill: #dfdfdf }
- .terminal-3144483172-r4 { fill: #858585 }
- .terminal-3144483172-r5 { fill: #feffac;font-weight: bold }
- .terminal-3144483172-r6 { fill: #dddddd }
- .terminal-3144483172-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3144483172-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3144483172-r9 { fill: #212116;font-weight: bold }
- .terminal-3144483172-r10 { fill: #feffac }
- .terminal-3144483172-r11 { fill: #777777;font-weight: bold }
- .terminal-3144483172-r12 { fill: #08211a }
- .terminal-3144483172-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3144483172-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ a # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ a # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -892,197 +892,197 @@
font-weight: 700;
}
- .terminal-2383935842-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2383935842-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2383935842-r1 { fill: #363636 }
- .terminal-2383935842-r2 { fill: #c5c8c6 }
- .terminal-2383935842-r3 { fill: #dfdfdf }
- .terminal-2383935842-r4 { fill: #606060 }
- .terminal-2383935842-r5 { fill: #3c3c3c }
- .terminal-2383935842-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2383935842-r7 { fill: #5f5f5f }
- .terminal-2383935842-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2383935842-r9 { fill: #feffac }
- .terminal-2383935842-r10 { fill: #0c0c0c }
- .terminal-2383935842-r11 { fill: #686868 }
- .terminal-2383935842-r12 { fill: #777777 }
- .terminal-2383935842-r13 { fill: #9d9d9d }
- .terminal-2383935842-r14 { fill: #141410;font-weight: bold }
- .terminal-2383935842-r15 { fill: #6c6d4c }
- .terminal-2383935842-r16 { fill: #ededed;font-weight: bold }
- .terminal-2383935842-r17 { fill: #212116;font-weight: bold }
- .terminal-2383935842-r18 { fill: #226d58;font-weight: bold }
- .terminal-2383935842-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Select▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││││
- │││───────────────╯
- │││ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Select▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││││
+ │││───────────────╯
+ │││ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1112,197 +1112,197 @@
font-weight: 700;
}
- .terminal-1880835072-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1880835072-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1880835072-r1 { fill: #363636 }
- .terminal-1880835072-r2 { fill: #c5c8c6 }
- .terminal-1880835072-r3 { fill: #dfdfdf }
- .terminal-1880835072-r4 { fill: #606060 }
- .terminal-1880835072-r5 { fill: #3c3c3c }
- .terminal-1880835072-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-1880835072-r7 { fill: #5f5f5f }
- .terminal-1880835072-r8 { fill: #6d505e;font-weight: bold }
- .terminal-1880835072-r9 { fill: #feffac }
- .terminal-1880835072-r10 { fill: #0c0c0c }
- .terminal-1880835072-r11 { fill: #777777 }
- .terminal-1880835072-r12 { fill: #9d9d9d }
- .terminal-1880835072-r13 { fill: #141410;font-weight: bold }
- .terminal-1880835072-r14 { fill: #6c6d4c }
- .terminal-1880835072-r15 { fill: #1d1d1d }
- .terminal-1880835072-r16 { fill: #ededed;font-weight: bold }
- .terminal-1880835072-r17 { fill: #212116;font-weight: bold }
- .terminal-1880835072-r18 { fill: #226d58;font-weight: bold }
- .terminal-1880835072-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #777777 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #6c6d4c }
+ .terminal-9999999-r15 { fill: #1d1d1d }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/tmp/foo-bar-static/one.feather│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Feather▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Compression: │Uncompressed▼││───────────────╯
- ││╰──────────────────────────────────────╯│ Run Query
- │││───────────────╮
- ││╭──────────────────────────────────────╮│ │
- ││ Compression Level: ││││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Chunk Size: ││││
- ││╰──────────────────────────────────────╯││
- ││▆▆││
- ││╭──────────────────────────────────────╮││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/tmp/foo-bar-static/one.feather│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Feather▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Compression: │Uncompressed▼││───────────────╯
+ ││╰──────────────────────────────────────╯│ Run Query
+ │││───────────────╮
+ ││╭──────────────────────────────────────╮│ │
+ ││ Compression Level: ││││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Chunk Size: ││││
+ ││╰──────────────────────────────────────╯││
+ ││▆▆││
+ ││╭──────────────────────────────────────╮││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1332,192 +1332,192 @@
font-weight: 700;
}
- .terminal-3144483172-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144483172-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144483172-r1 { fill: #777777 }
- .terminal-3144483172-r2 { fill: #c5c8c6 }
- .terminal-3144483172-r3 { fill: #dfdfdf }
- .terminal-3144483172-r4 { fill: #858585 }
- .terminal-3144483172-r5 { fill: #feffac;font-weight: bold }
- .terminal-3144483172-r6 { fill: #dddddd }
- .terminal-3144483172-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3144483172-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3144483172-r9 { fill: #212116;font-weight: bold }
- .terminal-3144483172-r10 { fill: #feffac }
- .terminal-3144483172-r11 { fill: #777777;font-weight: bold }
- .terminal-3144483172-r12 { fill: #08211a }
- .terminal-3144483172-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3144483172-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ a # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ a # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1547,197 +1547,197 @@
font-weight: 700;
}
- .terminal-2383935842-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2383935842-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2383935842-r1 { fill: #363636 }
- .terminal-2383935842-r2 { fill: #c5c8c6 }
- .terminal-2383935842-r3 { fill: #dfdfdf }
- .terminal-2383935842-r4 { fill: #606060 }
- .terminal-2383935842-r5 { fill: #3c3c3c }
- .terminal-2383935842-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2383935842-r7 { fill: #5f5f5f }
- .terminal-2383935842-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2383935842-r9 { fill: #feffac }
- .terminal-2383935842-r10 { fill: #0c0c0c }
- .terminal-2383935842-r11 { fill: #686868 }
- .terminal-2383935842-r12 { fill: #777777 }
- .terminal-2383935842-r13 { fill: #9d9d9d }
- .terminal-2383935842-r14 { fill: #141410;font-weight: bold }
- .terminal-2383935842-r15 { fill: #6c6d4c }
- .terminal-2383935842-r16 { fill: #ededed;font-weight: bold }
- .terminal-2383935842-r17 { fill: #212116;font-weight: bold }
- .terminal-2383935842-r18 { fill: #226d58;font-weight: bold }
- .terminal-2383935842-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Select▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││││
- │││───────────────╯
- │││ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Select▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││││
+ │││───────────────╯
+ │││ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1767,199 +1767,199 @@
font-weight: 700;
}
- .terminal-2476373557-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2476373557-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2476373557-r1 { fill: #363636 }
- .terminal-2476373557-r2 { fill: #c5c8c6 }
- .terminal-2476373557-r3 { fill: #dfdfdf }
- .terminal-2476373557-r4 { fill: #606060 }
- .terminal-2476373557-r5 { fill: #3c3c3c }
- .terminal-2476373557-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2476373557-r7 { fill: #5f5f5f }
- .terminal-2476373557-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2476373557-r9 { fill: #feffac }
- .terminal-2476373557-r10 { fill: #0c0c0c }
- .terminal-2476373557-r11 { fill: #777777 }
- .terminal-2476373557-r12 { fill: #9d9d9d }
- .terminal-2476373557-r13 { fill: #e8e8e8 }
- .terminal-2476373557-r14 { fill: #141410;font-weight: bold }
- .terminal-2476373557-r15 { fill: #6c6d4c }
- .terminal-2476373557-r16 { fill: #686868 }
- .terminal-2476373557-r17 { fill: #1d1d1d }
- .terminal-2476373557-r18 { fill: #ededed;font-weight: bold }
- .terminal-2476373557-r19 { fill: #212116;font-weight: bold }
- .terminal-2476373557-r20 { fill: #226d58;font-weight: bold }
- .terminal-2476373557-r21 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #777777 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #e8e8e8 }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #686868 }
+ .terminal-9999999-r17 { fill: #1d1d1d }
+ .terminal-9999999-r18 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r19 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r20 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r21 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/tmp/foo-bar-static/one.json│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │JSON▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││▊▔▔▔▔▔▔▔▔▎││
- ││ Array: ▊▎│───────────────╯
- ││▊▁▁▁▁▁▁▁▁▎│ Run Query
- │││───────────────╮
- ││╭──────────────────────────────────────╮│ │
- ││ Compression: │Auto▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Date Format: │%Y-%m-%d│││
- ││╰──────────────────────────────────────╯││
- ││▆▆││
- ││╭──────────────────────────────────────╮││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/tmp/foo-bar-static/one.json│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │JSON▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││▊▔▔▔▔▔▔▔▔▎││
+ ││ Array: ▊▎│───────────────╯
+ ││▊▁▁▁▁▁▁▁▁▎│ Run Query
+ │││───────────────╮
+ ││╭──────────────────────────────────────╮│ │
+ ││ Compression: │Auto▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Date Format: │%Y-%m-%d│││
+ ││╰──────────────────────────────────────╯││
+ ││▆▆││
+ ││╭──────────────────────────────────────╮││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1989,192 +1989,192 @@
font-weight: 700;
}
- .terminal-3144483172-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144483172-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144483172-r1 { fill: #777777 }
- .terminal-3144483172-r2 { fill: #c5c8c6 }
- .terminal-3144483172-r3 { fill: #dfdfdf }
- .terminal-3144483172-r4 { fill: #858585 }
- .terminal-3144483172-r5 { fill: #feffac;font-weight: bold }
- .terminal-3144483172-r6 { fill: #dddddd }
- .terminal-3144483172-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3144483172-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3144483172-r9 { fill: #212116;font-weight: bold }
- .terminal-3144483172-r10 { fill: #feffac }
- .terminal-3144483172-r11 { fill: #777777;font-weight: bold }
- .terminal-3144483172-r12 { fill: #08211a }
- .terminal-3144483172-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3144483172-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ a # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ a # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2204,197 +2204,197 @@
font-weight: 700;
}
- .terminal-2383935842-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2383935842-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2383935842-r1 { fill: #363636 }
- .terminal-2383935842-r2 { fill: #c5c8c6 }
- .terminal-2383935842-r3 { fill: #dfdfdf }
- .terminal-2383935842-r4 { fill: #606060 }
- .terminal-2383935842-r5 { fill: #3c3c3c }
- .terminal-2383935842-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2383935842-r7 { fill: #5f5f5f }
- .terminal-2383935842-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2383935842-r9 { fill: #feffac }
- .terminal-2383935842-r10 { fill: #0c0c0c }
- .terminal-2383935842-r11 { fill: #686868 }
- .terminal-2383935842-r12 { fill: #777777 }
- .terminal-2383935842-r13 { fill: #9d9d9d }
- .terminal-2383935842-r14 { fill: #141410;font-weight: bold }
- .terminal-2383935842-r15 { fill: #6c6d4c }
- .terminal-2383935842-r16 { fill: #ededed;font-weight: bold }
- .terminal-2383935842-r17 { fill: #212116;font-weight: bold }
- .terminal-2383935842-r18 { fill: #226d58;font-weight: bold }
- .terminal-2383935842-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Select▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││││
- │││───────────────╯
- │││ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Select▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││││
+ │││───────────────╯
+ │││ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2424,197 +2424,197 @@
font-weight: 700;
}
- .terminal-2043432483-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2043432483-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2043432483-r1 { fill: #363636 }
- .terminal-2043432483-r2 { fill: #c5c8c6 }
- .terminal-2043432483-r3 { fill: #dfdfdf }
- .terminal-2043432483-r4 { fill: #606060 }
- .terminal-2043432483-r5 { fill: #3c3c3c }
- .terminal-2043432483-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2043432483-r7 { fill: #5f5f5f }
- .terminal-2043432483-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2043432483-r9 { fill: #feffac }
- .terminal-2043432483-r10 { fill: #0c0c0c }
- .terminal-2043432483-r11 { fill: #777777 }
- .terminal-2043432483-r12 { fill: #9d9d9d }
- .terminal-2043432483-r13 { fill: #141410;font-weight: bold }
- .terminal-2043432483-r14 { fill: #1d1d1d }
- .terminal-2043432483-r15 { fill: #6c6d4c }
- .terminal-2043432483-r16 { fill: #ededed;font-weight: bold }
- .terminal-2043432483-r17 { fill: #212116;font-weight: bold }
- .terminal-2043432483-r18 { fill: #226d58;font-weight: bold }
- .terminal-2043432483-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #777777 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #1d1d1d }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/tmp/foo-bar-static/one.orc│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │ORC▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ File Version: │0.12▼││───────────────╯
- ││╰──────────────────────────────────────╯│ Run Query
- ││▄▄│───────────────╮
- ││╭──────────────────────────────────────╮│ │
- ││ Batch Size: │1024 │││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Stripe Size: │67108864 │││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/tmp/foo-bar-static/one.orc│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │ORC▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ File Version: │0.12▼││───────────────╯
+ ││╰──────────────────────────────────────╯│ Run Query
+ ││▄▄│───────────────╮
+ ││╭──────────────────────────────────────╮│ │
+ ││ Batch Size: │1024 │││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Stripe Size: │67108864 │││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2644,192 +2644,192 @@
font-weight: 700;
}
- .terminal-3144483172-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144483172-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144483172-r1 { fill: #777777 }
- .terminal-3144483172-r2 { fill: #c5c8c6 }
- .terminal-3144483172-r3 { fill: #dfdfdf }
- .terminal-3144483172-r4 { fill: #858585 }
- .terminal-3144483172-r5 { fill: #feffac;font-weight: bold }
- .terminal-3144483172-r6 { fill: #dddddd }
- .terminal-3144483172-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3144483172-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3144483172-r9 { fill: #212116;font-weight: bold }
- .terminal-3144483172-r10 { fill: #feffac }
- .terminal-3144483172-r11 { fill: #777777;font-weight: bold }
- .terminal-3144483172-r12 { fill: #08211a }
- .terminal-3144483172-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3144483172-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
- │││ a # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ────────────────────────────────────────────────────────────╮
+ │││ a # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -2859,197 +2859,197 @@
font-weight: 700;
}
- .terminal-2383935842-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2383935842-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2383935842-r1 { fill: #363636 }
- .terminal-2383935842-r2 { fill: #c5c8c6 }
- .terminal-2383935842-r3 { fill: #dfdfdf }
- .terminal-2383935842-r4 { fill: #606060 }
- .terminal-2383935842-r5 { fill: #3c3c3c }
- .terminal-2383935842-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2383935842-r7 { fill: #5f5f5f }
- .terminal-2383935842-r8 { fill: #6d505e;font-weight: bold }
- .terminal-2383935842-r9 { fill: #feffac }
- .terminal-2383935842-r10 { fill: #0c0c0c }
- .terminal-2383935842-r11 { fill: #686868 }
- .terminal-2383935842-r12 { fill: #777777 }
- .terminal-2383935842-r13 { fill: #9d9d9d }
- .terminal-2383935842-r14 { fill: #141410;font-weight: bold }
- .terminal-2383935842-r15 { fill: #6c6d4c }
- .terminal-2383935842-r16 { fill: #ededed;font-weight: bold }
- .terminal-2383935842-r17 { fill: #212116;font-weight: bold }
- .terminal-2383935842-r18 { fill: #226d58;font-weight: bold }
- .terminal-2383935842-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #686868 }
+ .terminal-9999999-r12 { fill: #777777 }
+ .terminal-9999999-r13 { fill: #9d9d9d }
+ .terminal-9999999-r14 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r15 { fill: #6c6d4c }
+ .terminal-9999999-r16 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r17 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r19 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Select▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││││
- │││───────────────╯
- │││ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/path/to/file (tab autocompletes, enter exports, esc cancels)│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Select▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││││
+ │││───────────────╯
+ │││ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -3079,196 +3079,196 @@
font-weight: 700;
}
- .terminal-3252314956-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3252314956-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3252314956-r1 { fill: #363636 }
- .terminal-3252314956-r2 { fill: #c5c8c6 }
- .terminal-3252314956-r3 { fill: #dfdfdf }
- .terminal-3252314956-r4 { fill: #606060 }
- .terminal-3252314956-r5 { fill: #3c3c3c }
- .terminal-3252314956-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-3252314956-r7 { fill: #5f5f5f }
- .terminal-3252314956-r8 { fill: #6d505e;font-weight: bold }
- .terminal-3252314956-r9 { fill: #feffac }
- .terminal-3252314956-r10 { fill: #0c0c0c }
- .terminal-3252314956-r11 { fill: #777777 }
- .terminal-3252314956-r12 { fill: #9d9d9d }
- .terminal-3252314956-r13 { fill: #141410;font-weight: bold }
- .terminal-3252314956-r14 { fill: #6c6d4c }
- .terminal-3252314956-r15 { fill: #ededed;font-weight: bold }
- .terminal-3252314956-r16 { fill: #212116;font-weight: bold }
- .terminal-3252314956-r17 { fill: #226d58;font-weight: bold }
- .terminal-3252314956-r18 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #606060 }
+ .terminal-9999999-r5 { fill: #3c3c3c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #5f5f5f }
+ .terminal-9999999-r8 { fill: #6d505e;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #0c0c0c }
+ .terminal-9999999-r11 { fill: #777777 }
+ .terminal-9999999-r12 { fill: #9d9d9d }
+ .terminal-9999999-r13 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r14 { fill: #6c6d4c }
+ .terminal-9999999-r15 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r16 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r17 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 select1as a │
- │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Export the results of your query to a file.││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- │││/tmp/foo-bar-static/one.parquet│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Format: │Parquet▼│││
- ││╰──────────────────────────────────────╯││
- ││││
- ││╭──────────────────────────────────────╮││
- ││ Compression: │Snappy▼││───────────────╯
- ││╰──────────────────────────────────────╯│ Run Query
- │││───────────────╮
- │││ │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││ Cancel Export ││
- ││││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 select1as a │
+ │╭─ Data Exporter ──────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Export the results of your query to a file.││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ │││/tmp/foo-bar-static/one.parquet│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Format: │Parquet▼│││
+ ││╰──────────────────────────────────────╯││
+ ││││
+ ││╭──────────────────────────────────────╮││
+ ││ Compression: │Snappy▼││───────────────╯
+ ││╰──────────────────────────────────────╯│ Run Query
+ │││───────────────╮
+ │││ │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││ Cancel Export ││
+ ││││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
diff --git a/tests/functional_tests/__snapshots__/test_help_screen.ambr b/tests/functional_tests/__snapshots__/test_help_screen.ambr
index d9898107..6a0be8e8 100644
--- a/tests/functional_tests/__snapshots__/test_help_screen.ambr
+++ b/tests/functional_tests/__snapshots__/test_help_screen.ambr
@@ -22,197 +22,197 @@
font-weight: 700;
}
- .terminal-3667354983-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3667354983-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3667354983-r1 { fill: #363636 }
- .terminal-3667354983-r2 { fill: #6c6d4c }
- .terminal-3667354983-r3 { fill: #c5c8c6 }
- .terminal-3667354983-r4 { fill: #dfdfdf }
- .terminal-3667354983-r5 { fill: #606060 }
- .terminal-3667354983-r6 { fill: #3c3c3c }
- .terminal-3667354983-r7 { fill: #101010 }
- .terminal-3667354983-r8 { fill: #5f5f5f }
- .terminal-3667354983-r9 { fill: #feffac }
- .terminal-3667354983-r10 { fill: #777777 }
- .terminal-3667354983-r11 { fill: #45ffca;font-weight: bold }
- .terminal-3667354983-r12 { fill: #1d1d1d }
- .terminal-3667354983-r13 { fill: #d2d2d2 }
- .terminal-3667354983-r14 { fill: #eeffff }
- .terminal-3667354983-r15 { fill: #c3e88d }
- .terminal-3667354983-r16 { fill: #141410;font-weight: bold }
- .terminal-3667354983-r17 { fill: #dfdfdf;text-decoration: underline; }
- .terminal-3667354983-r18 { fill: #9d9d9d }
- .terminal-3667354983-r19 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r1 { fill: #363636 }
+ .terminal-9999999-r2 { fill: #6c6d4c }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #606060 }
+ .terminal-9999999-r6 { fill: #3c3c3c }
+ .terminal-9999999-r7 { fill: #101010 }
+ .terminal-9999999-r8 { fill: #5f5f5f }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #777777 }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r12 { fill: #1d1d1d }
+ .terminal-9999999-r13 { fill: #d2d2d2 }
+ .terminal-9999999-r14 { fill: #eeffff }
+ .terminal-9999999-r15 { fill: #c3e88d }
+ .terminal-9999999-r16 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r17 { fill: #dfdfdf;text-decoration: underline; }
+ .terminal-9999999-r18 { fill: #9d9d9d }
+ .terminal-9999999-r19 { fill: #226d58;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 │
- │╭─ Harlequin Help ─────────────────────────────────────────────────────────────────────╮│
- ││││
- ││Welcome to Harlequin! This screen contains a small subset of the online docs, ││
- ││available at https://harlequin.sh/docs/getting-started││
- ││││
- ││╭────────────────────────────────────────────────────────────────────────────────╮││
- ││││││
- │││Using Harlequin with DuckDB│││
- ││││││
- │││ Harlequin defaults to using its DuckDB database adapter.│││
- │││▅▅│││
- │││ From any shell, to open one or more DuckDB database files:│││
- ││││││
- ││││││
- │││harlequin "path/to/duck.db""another_duck.db"││───────────────╯
- │││││ Run Query
- │││││───────────────╮
- │││ To open an in-memory DuckDB session, run Harlequin with no arguments:│││
- ││││││
- ││││││
- │││harlequin│││
- ││││││
- ││││││
- │││ If you want to control the version of DuckDB that Harlequin uses, see the │││
- │││Troubleshooting page.│││
- ││││││
- │││Using Harlequin with SQLite and Other Adapters│││
- ││╰────────────────────────────────────────────────────────────────────────────────╯││
- ││││
- ││Scroll with arrows. Press any other key to continue.││
- ││││
- │╰──────────────────────────────────────────────────────────────────────────────────────╯│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 │
+ │╭─ Harlequin Help ─────────────────────────────────────────────────────────────────────╮│
+ ││││
+ ││Welcome to Harlequin! This screen contains a small subset of the online docs, ││
+ ││available at https://harlequin.sh/docs/getting-started││
+ ││││
+ ││╭────────────────────────────────────────────────────────────────────────────────╮││
+ ││││││
+ │││Using Harlequin with DuckDB│││
+ ││││││
+ │││ Harlequin defaults to using its DuckDB database adapter.│││
+ │││▅▅│││
+ │││ From any shell, to open one or more DuckDB database files:│││
+ ││││││
+ ││││││
+ │││harlequin "path/to/duck.db""another_duck.db"││───────────────╯
+ │││││ Run Query
+ │││││───────────────╮
+ │││ To open an in-memory DuckDB session, run Harlequin with no arguments:│││
+ ││││││
+ ││││││
+ │││harlequin│││
+ ││││││
+ ││││││
+ │││ If you want to control the version of DuckDB that Harlequin uses, see the │││
+ │││Troubleshooting page.│││
+ ││││││
+ │││Using Harlequin with SQLite and Other Adapters│││
+ ││╰────────────────────────────────────────────────────────────────────────────────╯││
+ ││││
+ ││Scroll with arrows. Press any other key to continue.││
+ ││││
+ │╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
diff --git a/tests/functional_tests/__snapshots__/test_history_screen.ambr b/tests/functional_tests/__snapshots__/test_history_screen.ambr
index b79910ef..0a8af533 100644
--- a/tests/functional_tests/__snapshots__/test_history_screen.ambr
+++ b/tests/functional_tests/__snapshots__/test_history_screen.ambr
@@ -22,192 +22,192 @@
font-weight: 700;
}
- .terminal-880833008-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-880833008-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-880833008-r1 { fill: #feffac }
- .terminal-880833008-r2 { fill: #777777 }
- .terminal-880833008-r3 { fill: #c5c8c6 }
- .terminal-880833008-r4 { fill: #dfdfdf }
- .terminal-880833008-r5 { fill: #dfdfdf;font-weight: bold }
- .terminal-880833008-r6 { fill: #f4005f;font-weight: bold;font-style: italic; }
- .terminal-880833008-r7 { fill: #c8c8c8;font-weight: bold }
- .terminal-880833008-r8 { fill: #4a4a4a }
- .terminal-880833008-r9 { fill: #feffac;font-weight: bold }
- .terminal-880833008-r10 { fill: #dddddd }
- .terminal-880833008-r11 { fill: #ffb6d9;font-weight: bold }
- .terminal-880833008-r12 { fill: #08211a }
- .terminal-880833008-r13 { fill: #08211a;font-weight: bold }
- .terminal-880833008-r14 { fill: #1d1d1d }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #777777 }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r6 { fill: #f4005f;font-weight: bold;font-style: italic; }
+ .terminal-9999999-r7 { fill: #c8c8c8;font-weight: bold }
+ .terminal-9999999-r8 { fill: #4a4a4a }
+ .terminal-9999999-r9 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r14 { fill: #1d1d1d }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query History ──────────────────────────────────────────╮╭─ Highlighted Query Preview ──────────────────────────────╮
- │Fri, Jan 26 10:15:00 ERROR││1 select14│
- │ sel │││
- ││││
- │Fri, Jan 26 10:14:00 1 record in 1.00s│││
- │ select 14 │││
- ││││
- │Fri, Jan 26 10:13:00 1 record in 1.00s│││
- │ select 13 │││
- ││││
- │Fri, Jan 26 10:12:00 1 record in 1.00s│││
- │ select 12 │││
- ││││
- │Fri, Jan 26 10:11:00 1 record in 1.00s│││
- │ select 11 │││
- ││││
- │Fri, Jan 26 10:10:00 1 record in 1.00s│││
- │ select 10 │││
- ││││
- │Fri, Jan 26 10:09:00 1 record in 1.00s│││
- │ select 9 │││
- ││││
- │Fri, Jan 26 10:08:00 1 record in 1.00s│││
- │ select 8 │││
- ││││
- │Fri, Jan 26 10:07:00 1 record in 1.00s▇▇│││
- │ select 7 │││
- ││││
- │Fri, Jan 26 10:06:00 1 record in 1.00s│││
- │ select 6 │││
- ││││
- │Fri, Jan 26 10:05:00 1 record in 1.00s│││
- │ select 5 │││
- ││││
- │Fri, Jan 26 10:04:00 1 record in 1.00s│││
- ╰───────────── Enter or click to select; Escape to cancel ─╯╰──────────────────────────────────────────────────────────╯
+
+ ╭─ Query History ──────────────────────────────────────────╮╭─ Highlighted Query Preview ──────────────────────────────╮
+ │Fri, Jan 26 10:15:00 ERROR││1 select14│
+ │ sel │││
+ ││││
+ │Fri, Jan 26 10:14:00 1 record in 1.00s│││
+ │ select 14 │││
+ ││││
+ │Fri, Jan 26 10:13:00 1 record in 1.00s│││
+ │ select 13 │││
+ ││││
+ │Fri, Jan 26 10:12:00 1 record in 1.00s│││
+ │ select 12 │││
+ ││││
+ │Fri, Jan 26 10:11:00 1 record in 1.00s│││
+ │ select 11 │││
+ ││││
+ │Fri, Jan 26 10:10:00 1 record in 1.00s│││
+ │ select 10 │││
+ ││││
+ │Fri, Jan 26 10:09:00 1 record in 1.00s│││
+ │ select 9 │││
+ ││││
+ │Fri, Jan 26 10:08:00 1 record in 1.00s│││
+ │ select 8 │││
+ ││││
+ │Fri, Jan 26 10:07:00 1 record in 1.00s▇▇│││
+ │ select 7 │││
+ ││││
+ │Fri, Jan 26 10:06:00 1 record in 1.00s│││
+ │ select 6 │││
+ ││││
+ │Fri, Jan 26 10:05:00 1 record in 1.00s│││
+ │ select 5 │││
+ ││││
+ │Fri, Jan 26 10:04:00 1 record in 1.00s│││
+ ╰───────────── Enter or click to select; Escape to cancel ─╯╰──────────────────────────────────────────────────────────╯
@@ -237,193 +237,194 @@
font-weight: 700;
}
- .terminal-119510548-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-119510548-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-119510548-r1 { fill: #777777 }
- .terminal-119510548-r2 { fill: #feffac }
- .terminal-119510548-r3 { fill: #c5c8c6 }
- .terminal-119510548-r4 { fill: #dfdfdf }
- .terminal-119510548-r5 { fill: #686868 }
- .terminal-119510548-r6 { fill: #dfdfdf;font-weight: bold }
- .terminal-119510548-r7 { fill: #232323 }
- .terminal-119510548-r8 { fill: #858585 }
- .terminal-119510548-r9 { fill: #181818;font-weight: bold }
- .terminal-119510548-r10 { fill: #feffac;font-weight: bold }
- .terminal-119510548-r11 { fill: #dddddd }
- .terminal-119510548-r12 { fill: #ffb6d9;font-weight: bold }
- .terminal-119510548-r13 { fill: #0c0c0c;font-weight: bold }
- .terminal-119510548-r14 { fill: #212116;font-weight: bold }
- .terminal-119510548-r15 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #001b14;font-weight: bold }
+ .terminal-9999999-r6 { fill: #686868 }
+ .terminal-9999999-r7 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r8 { fill: #232323 }
+ .terminal-9999999-r9 { fill: #858585 }
+ .terminal-9999999-r10 { fill: #181818;font-weight: bold }
+ .terminal-9999999-r11 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r12 { fill: #dddddd }
+ .terminal-9999999-r13 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r14 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r15 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r16 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 2│
- │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 select14│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 2│
+ │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 select14│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
diff --git a/tests/functional_tests/__snapshots__/test_keys_app.ambr b/tests/functional_tests/__snapshots__/test_keys_app.ambr
index 2646ff07..77387c50 100644
--- a/tests/functional_tests/__snapshots__/test_keys_app.ambr
+++ b/tests/functional_tests/__snapshots__/test_keys_app.ambr
@@ -22,201 +22,200 @@
font-weight: 700;
}
- .terminal-3144241796-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3144241796-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3144241796-r1 { fill: #dfdfdf }
- .terminal-3144241796-r2 { fill: #606060;font-style: italic; }
- .terminal-3144241796-r3 { fill: #c5c8c6 }
- .terminal-3144241796-r4 { fill: #606060;font-weight: bold }
- .terminal-3144241796-r5 { fill: #6c6d4c }
- .terminal-3144241796-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-3144241796-r7 { fill: #feffac }
- .terminal-3144241796-r8 { fill: #606060 }
- .terminal-3144241796-r9 { fill: #dfdfdf;font-weight: bold }
- .terminal-3144241796-r10 { fill: #8a8a8a;font-style: italic; }
- .terminal-3144241796-r11 { fill: #0a1411 }
- .terminal-3144241796-r12 { fill: #8a8a8a;font-weight: bold }
- .terminal-3144241796-r13 { fill: #8a8a8a }
- .terminal-3144241796-r14 { fill: #121212 }
- .terminal-3144241796-r15 { fill: #777777 }
- .terminal-3144241796-r16 { fill: #ffb6d9 }
- .terminal-3144241796-r17 { fill: #45ffca }
- .terminal-3144241796-r18 { fill: #45ffca;font-weight: bold }
- .terminal-3144241796-r19 { fill: #686868 }
- .terminal-3144241796-r20 { fill: #ededed;font-weight: bold }
- .terminal-3144241796-r21 { fill: #212116;font-weight: bold }
- .terminal-3144241796-r22 { fill: #226d58;font-weight: bold }
- .terminal-3144241796-r23 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #dfdfdf }
+ .terminal-9999999-r2 { fill: #606060;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r5 { fill: #6c6d4c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #feffac }
+ .terminal-9999999-r8 { fill: #606060 }
+ .terminal-9999999-r9 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r10 { fill: #8a8a8a;font-style: italic; }
+ .terminal-9999999-r11 { fill: #0a1411 }
+ .terminal-9999999-r12 { fill: #8a8a8a;font-weight: bold }
+ .terminal-9999999-r13 { fill: #8a8a8a }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #ffb6d9 }
+ .terminal-9999999-r16 { fill: #45ffca }
+ .terminal-9999999-r17 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r18 { fill: #686868 }
+ .terminal-9999999-r19 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r20 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r21 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r22 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action ╭──────────────────────────────────────────────────────────╮│
- │ Quit │││
- │ Help │Action: Focus Query Editor││
- │ Focus Next │││
- │ Focus Previous │Use the buttons below to replace, remove, or ││
- │ Focus Query Editor │add bindings for this action.││
- │ Focus Results Viewer │Enter: Select Button; Tab: Next Button││
- │ Focus Data Catalog │││
- │ Toggle Sidebar ││▇▇│
- │ Toggle Full Screen │╭──────────────────╮╭───╮││
- │ Show Query History │ Key: │ f3 ││ X │││
- │ Show Data Exporter │╰──────────────────╯╰───╯││
- │ Refresh Catalog │╭──────────────────╮╭───╮││
- │ Run Query │ Key: │ f4 ││ X │││
- │ Cancel Query │╰──────────────────╯╰───╯││
- │ Code Editor: New Buffer │╭──────────────────╮││
- │ Code Editor: Close Buffer ││ Add Key │││
- │ Code Editor: Next Buffer │╰──────────────────╯││
- │ Code Editor: Run Query │╭────────────────────────────────╮││
- │ Code Editor: Format Buffer │ Key Display: │(Optional)│││
- │ Code Editor: Save Buffer │╰────────────────────────────────╯││
- │ Code Editor: Load Buffer │││
- │ Code Editor: Find │││
- │ Code Editor: Find Next │ Cancel Submit ││
- │ Code Editor: Goto Line │││
- │ Code Editor: Cursor Up │││
- │ Code Editor: Cursor Down ╰──────────────────────────────────────────────────────────╯│
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action ╭──────────────────────────────────────────────────────────╮│
+ │ Quit │││
+ │ Help │Action: Focus Query Editor││
+ │ Focus Next │││
+ │ Focus Previous │Use the buttons below to replace, remove, or ││
+ │ Focus Query Editor │add bindings for this action.││
+ │ Focus Results Viewer │Enter: Select Button; Tab: Next Button││
+ │ Focus Data Catalog │││
+ │ Toggle Sidebar │││
+ │ Toggle Full Screen │╭──────────────────╮╭───╮││
+ │ Show Query History │ Key: │ f3 ││ X │││
+ │ Show Data Exporter │╰──────────────────╯╰───╯││
+ │ Refresh Catalog │╭──────────────────╮╭───╮││
+ │ Run Query │ Key: │ f4 ││ X │││
+ │ Cancel Query │╰──────────────────╯╰───╯││
+ │ Code Editor: New Buffer │╭──────────────────╮││
+ │ Code Editor: Close Buffer ││ Add Key │││
+ │ Code Editor: Next Buffer │╰──────────────────╯││
+ │ Code Editor: Run Query │╭────────────────────────────────╮││
+ │ Code Editor: Format Buffer │ Key Display: │(Optional)│││
+ │ Code Editor: Save Buffer │╰────────────────────────────────╯││
+ │ Code Editor: Load Buffer │││
+ │ Code Editor: Find │││
+ │ Code Editor: Find Next │ Cancel Submit ││
+ │ Code Editor: Goto Line │││
+ │ Code Editor: Cursor Up │││
+ │ Code Editor: Cursor Down ╰──────────────────────────────────────────────────────────╯│
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -246,200 +245,199 @@
font-weight: 700;
}
- .terminal-4240007273-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4240007273-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4240007273-r1 { fill: #dfdfdf }
- .terminal-4240007273-r2 { fill: #606060;font-style: italic; }
- .terminal-4240007273-r3 { fill: #c5c8c6 }
- .terminal-4240007273-r4 { fill: #606060;font-weight: bold }
- .terminal-4240007273-r5 { fill: #6c6d4c }
- .terminal-4240007273-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-4240007273-r7 { fill: #606060 }
- .terminal-4240007273-r8 { fill: #feffac }
- .terminal-4240007273-r9 { fill: #dfdfdf;font-weight: bold }
- .terminal-4240007273-r10 { fill: #0a1411 }
- .terminal-4240007273-r11 { fill: #8a8a8a;font-style: italic; }
- .terminal-4240007273-r12 { fill: #8a8a8a;font-weight: bold }
- .terminal-4240007273-r13 { fill: #8a8a8a }
- .terminal-4240007273-r14 { fill: #121212 }
- .terminal-4240007273-r15 { fill: #45ffca }
- .terminal-4240007273-r16 { fill: #777777 }
- .terminal-4240007273-r17 { fill: #ffb6d9 }
- .terminal-4240007273-r18 { fill: #686868 }
- .terminal-4240007273-r19 { fill: #ededed;font-weight: bold }
- .terminal-4240007273-r20 { fill: #212116;font-weight: bold }
- .terminal-4240007273-r21 { fill: #226d58;font-weight: bold }
- .terminal-4240007273-r22 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #dfdfdf }
+ .terminal-9999999-r2 { fill: #606060;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r5 { fill: #6c6d4c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #606060 }
+ .terminal-9999999-r8 { fill: #feffac }
+ .terminal-9999999-r9 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0a1411 }
+ .terminal-9999999-r11 { fill: #8a8a8a;font-style: italic; }
+ .terminal-9999999-r12 { fill: #8a8a8a;font-weight: bold }
+ .terminal-9999999-r13 { fill: #8a8a8a }
+ .terminal-9999999-r14 { fill: #45ffca }
+ .terminal-9999999-r15 { fill: #777777 }
+ .terminal-9999999-r16 { fill: #ffb6d9 }
+ .terminal-9999999-r17 { fill: #686868 }
+ .terminal-9999999-r18 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r19 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r20 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r21 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help ╭──────────────────────────────────────────────────────────╮│
- │ Focus Next │││
- │ Focus Previous │Action: Focus Query Editor││
- │ Focus Query Editor │││
- │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
- │ Focus Data Catalog │add bindings for this action.││
- │ Toggle Sidebar │Enter: Select Button; Tab: Next Button│▇▇│
- │ Toggle Full Screen │││
- │ Show Query History │││
- │ Show Data Exporter │╭──────────────────╮╭───╮││
- │ Refresh Catalog │ Key: │ f3 ││ X │││
- │ Run Query │╰──────────────────╯╰───╯││
- │ Cancel Query │╭──────────────────╮││
- │ Code Editor: New Buffer ││ Add Key │││
- │ Code Editor: Close Buffer │╰──────────────────╯││
- │ Code Editor: Next Buffer │╭────────────────────────────────╮││
- │ Code Editor: Run Query │ Key Display: │(Optional)│││
- │ Code Editor: Format Buffer │╰────────────────────────────────╯││
- │ Code Editor: Save Buffer │││
- │ Code Editor: Load Buffer │││
- │ Code Editor: Find │ Cancel Submit ││
- │ Code Editor: Find Next │││
- │ Code Editor: Goto Line │││
- │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help ╭──────────────────────────────────────────────────────────╮│
+ │ Focus Next │││
+ │ Focus Previous │Action: Focus Query Editor││
+ │ Focus Query Editor │││
+ │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
+ │ Focus Data Catalog │add bindings for this action.││
+ │ Toggle Sidebar │Enter: Select Button; Tab: Next Button││
+ │ Toggle Full Screen │││
+ │ Show Query History │││
+ │ Show Data Exporter │╭──────────────────╮╭───╮││
+ │ Refresh Catalog │ Key: │ f3 ││ X │││
+ │ Run Query │╰──────────────────╯╰───╯││
+ │ Cancel Query │╭──────────────────╮││
+ │ Code Editor: New Buffer ││ Add Key │││
+ │ Code Editor: Close Buffer │╰──────────────────╯││
+ │ Code Editor: Next Buffer │╭────────────────────────────────╮││
+ │ Code Editor: Run Query │ Key Display: │(Optional)│││
+ │ Code Editor: Format Buffer │╰────────────────────────────────╯││
+ │ Code Editor: Save Buffer │││
+ │ Code Editor: Load Buffer │││
+ │ Code Editor: Find │ Cancel Submit ││
+ │ Code Editor: Find Next │││
+ │ Code Editor: Goto Line │││
+ │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -469,200 +467,199 @@
font-weight: 700;
}
- .terminal-4274610281-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4274610281-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4274610281-r1 { fill: #dfdfdf }
- .terminal-4274610281-r2 { fill: #606060;font-style: italic; }
- .terminal-4274610281-r3 { fill: #c5c8c6 }
- .terminal-4274610281-r4 { fill: #606060;font-weight: bold }
- .terminal-4274610281-r5 { fill: #6c6d4c }
- .terminal-4274610281-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-4274610281-r7 { fill: #606060 }
- .terminal-4274610281-r8 { fill: #feffac }
- .terminal-4274610281-r9 { fill: #dfdfdf;font-weight: bold }
- .terminal-4274610281-r10 { fill: #0a1411 }
- .terminal-4274610281-r11 { fill: #8a8a8a;font-style: italic; }
- .terminal-4274610281-r12 { fill: #8a8a8a;font-weight: bold }
- .terminal-4274610281-r13 { fill: #8a8a8a }
- .terminal-4274610281-r14 { fill: #121212 }
- .terminal-4274610281-r15 { fill: #777777 }
- .terminal-4274610281-r16 { fill: #45ffca }
- .terminal-4274610281-r17 { fill: #ffb6d9;font-weight: bold }
- .terminal-4274610281-r18 { fill: #686868 }
- .terminal-4274610281-r19 { fill: #ededed;font-weight: bold }
- .terminal-4274610281-r20 { fill: #212116;font-weight: bold }
- .terminal-4274610281-r21 { fill: #226d58;font-weight: bold }
- .terminal-4274610281-r22 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #dfdfdf }
+ .terminal-9999999-r2 { fill: #606060;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r5 { fill: #6c6d4c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #606060 }
+ .terminal-9999999-r8 { fill: #feffac }
+ .terminal-9999999-r9 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0a1411 }
+ .terminal-9999999-r11 { fill: #8a8a8a;font-style: italic; }
+ .terminal-9999999-r12 { fill: #8a8a8a;font-weight: bold }
+ .terminal-9999999-r13 { fill: #8a8a8a }
+ .terminal-9999999-r14 { fill: #777777 }
+ .terminal-9999999-r15 { fill: #45ffca }
+ .terminal-9999999-r16 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r17 { fill: #686868 }
+ .terminal-9999999-r18 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r19 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r20 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r21 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help ╭──────────────────────────────────────────────────────────╮│
- │ Focus Next │││
- │ Focus Previous │Action: Focus Query Editor││
- │ Focus Query Editor │││
- │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
- │ Focus Data Catalog │add bindings for this action.││
- │ Toggle Sidebar │Enter: Select Button; Tab: Next Button│▇▇│
- │ Toggle Full Screen │││
- │ Show Query History │││
- │ Show Data Exporter │╭──────────────────╮╭───╮││
- │ Refresh Catalog │ Key: │ f3 ││ X │││
- │ Run Query │╰──────────────────╯╰───╯││
- │ Cancel Query │╭──────────────────╮││
- │ Code Editor: New Buffer ││ Add Key │││
- │ Code Editor: Close Buffer │╰──────────────────╯││
- │ Code Editor: Next Buffer │╭────────────────────────────────╮││
- │ Code Editor: Run Query │ Key Display: │(Optional)│││
- │ Code Editor: Format Buffer │╰────────────────────────────────╯││
- │ Code Editor: Save Buffer │││
- │ Code Editor: Load Buffer │││
- │ Code Editor: Find │ Cancel Submit ││
- │ Code Editor: Find Next │││
- │ Code Editor: Goto Line │││
- │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help ╭──────────────────────────────────────────────────────────╮│
+ │ Focus Next │││
+ │ Focus Previous │Action: Focus Query Editor││
+ │ Focus Query Editor │││
+ │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
+ │ Focus Data Catalog │add bindings for this action.││
+ │ Toggle Sidebar │Enter: Select Button; Tab: Next Button││
+ │ Toggle Full Screen │││
+ │ Show Query History │││
+ │ Show Data Exporter │╭──────────────────╮╭───╮││
+ │ Refresh Catalog │ Key: │ f3 ││ X │││
+ │ Run Query │╰──────────────────╯╰───╯││
+ │ Cancel Query │╭──────────────────╮││
+ │ Code Editor: New Buffer ││ Add Key │││
+ │ Code Editor: Close Buffer │╰──────────────────╯││
+ │ Code Editor: Next Buffer │╭────────────────────────────────╮││
+ │ Code Editor: Run Query │ Key Display: │(Optional)│││
+ │ Code Editor: Format Buffer │╰────────────────────────────────╯││
+ │ Code Editor: Save Buffer │││
+ │ Code Editor: Load Buffer │││
+ │ Code Editor: Find │ Cancel Submit ││
+ │ Code Editor: Find Next │││
+ │ Code Editor: Goto Line │││
+ │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -692,200 +689,199 @@
font-weight: 700;
}
- .terminal-1368219752-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1368219752-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1368219752-r1 { fill: #dfdfdf }
- .terminal-1368219752-r2 { fill: #606060;font-style: italic; }
- .terminal-1368219752-r3 { fill: #c5c8c6 }
- .terminal-1368219752-r4 { fill: #606060;font-weight: bold }
- .terminal-1368219752-r5 { fill: #6c6d4c }
- .terminal-1368219752-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-1368219752-r7 { fill: #606060 }
- .terminal-1368219752-r8 { fill: #feffac }
- .terminal-1368219752-r9 { fill: #dfdfdf;font-weight: bold }
- .terminal-1368219752-r10 { fill: #0a1411 }
- .terminal-1368219752-r11 { fill: #8a8a8a;font-style: italic; }
- .terminal-1368219752-r12 { fill: #8a8a8a;font-weight: bold }
- .terminal-1368219752-r13 { fill: #8a8a8a }
- .terminal-1368219752-r14 { fill: #121212 }
- .terminal-1368219752-r15 { fill: #45ffca }
- .terminal-1368219752-r16 { fill: #777777 }
- .terminal-1368219752-r17 { fill: #ffb6d9 }
- .terminal-1368219752-r18 { fill: #686868 }
- .terminal-1368219752-r19 { fill: #ededed;font-weight: bold }
- .terminal-1368219752-r20 { fill: #212116;font-weight: bold }
- .terminal-1368219752-r21 { fill: #226d58;font-weight: bold }
- .terminal-1368219752-r22 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #dfdfdf }
+ .terminal-9999999-r2 { fill: #606060;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r5 { fill: #6c6d4c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #606060 }
+ .terminal-9999999-r8 { fill: #feffac }
+ .terminal-9999999-r9 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0a1411 }
+ .terminal-9999999-r11 { fill: #8a8a8a;font-style: italic; }
+ .terminal-9999999-r12 { fill: #8a8a8a;font-weight: bold }
+ .terminal-9999999-r13 { fill: #8a8a8a }
+ .terminal-9999999-r14 { fill: #45ffca }
+ .terminal-9999999-r15 { fill: #777777 }
+ .terminal-9999999-r16 { fill: #ffb6d9 }
+ .terminal-9999999-r17 { fill: #686868 }
+ .terminal-9999999-r18 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r19 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r20 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r21 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help ╭──────────────────────────────────────────────────────────╮│
- │ Focus Next │││
- │ Focus Previous │Action: Focus Query Editor││
- │ Focus Query Editor │││
- │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
- │ Focus Data Catalog │add bindings for this action.││
- │ Toggle Sidebar │Enter: Select Button; Tab: Next Button│▇▇│
- │ Toggle Full Screen │││
- │ Show Query History │││
- │ Show Data Exporter │╭──────────────────╮╭───╮││
- │ Refresh Catalog │ Key: │ f2 ││ X │││
- │ Run Query │╰──────────────────╯╰───╯││
- │ Cancel Query │╭──────────────────╮││
- │ Code Editor: New Buffer ││ Add Key │││
- │ Code Editor: Close Buffer │╰──────────────────╯││
- │ Code Editor: Next Buffer │╭────────────────────────────────╮││
- │ Code Editor: Run Query │ Key Display: │(Optional)│││
- │ Code Editor: Format Buffer │╰────────────────────────────────╯││
- │ Code Editor: Save Buffer │││
- │ Code Editor: Load Buffer │││
- │ Code Editor: Find │ Cancel Submit ││
- │ Code Editor: Find Next │││
- │ Code Editor: Goto Line │││
- │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help ╭──────────────────────────────────────────────────────────╮│
+ │ Focus Next │││
+ │ Focus Previous │Action: Focus Query Editor││
+ │ Focus Query Editor │││
+ │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
+ │ Focus Data Catalog │add bindings for this action.││
+ │ Toggle Sidebar │Enter: Select Button; Tab: Next Button││
+ │ Toggle Full Screen │││
+ │ Show Query History │││
+ │ Show Data Exporter │╭──────────────────╮╭───╮││
+ │ Refresh Catalog │ Key: │ f2 ││ X │││
+ │ Run Query │╰──────────────────╯╰───╯││
+ │ Cancel Query │╭──────────────────╮││
+ │ Code Editor: New Buffer ││ Add Key │││
+ │ Code Editor: Close Buffer │╰──────────────────╯││
+ │ Code Editor: Next Buffer │╭────────────────────────────────╮││
+ │ Code Editor: Run Query │ Key Display: │(Optional)│││
+ │ Code Editor: Format Buffer │╰────────────────────────────────╯││
+ │ Code Editor: Save Buffer │││
+ │ Code Editor: Load Buffer │││
+ │ Code Editor: Find │ Cancel Submit ││
+ │ Code Editor: Find Next │││
+ │ Code Editor: Goto Line │││
+ │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -915,200 +911,199 @@
font-weight: 700;
}
- .terminal-527851385-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-527851385-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-527851385-r1 { fill: #606060 }
- .terminal-527851385-r2 { fill: #2d2d2d;font-style: italic; }
- .terminal-527851385-r3 { fill: #c5c8c6 }
- .terminal-527851385-r4 { fill: #2d2d2d;font-weight: bold }
- .terminal-527851385-r5 { fill: #323225 }
- .terminal-527851385-r6 { fill: #323225;font-weight: bold }
- .terminal-527851385-r7 { fill: #2d2d2d }
- .terminal-527851385-r8 { fill: #6c6d4c }
- .terminal-527851385-r9 { fill: #dfdfdf }
- .terminal-527851385-r10 { fill: #606060;font-weight: bold }
- .terminal-527851385-r11 { fill: #0b0f0e }
- .terminal-527851385-r12 { fill: #3e3e3e;font-style: italic; }
- .terminal-527851385-r13 { fill: #3e3e3e;font-weight: bold }
- .terminal-527851385-r14 { fill: #3e3e3e }
- .terminal-527851385-r15 { fill: #0e0e0e }
- .terminal-527851385-r16 { fill: #feffac }
- .terminal-527851385-r17 { fill: #363636 }
- .terminal-527851385-r18 { fill: #303030 }
- .terminal-527851385-r19 { fill: #666666;font-weight: bold }
- .terminal-527851385-r20 { fill: #141410;font-weight: bold }
- .terminal-527851385-r21 { fill: #14322a;font-weight: bold }
- .terminal-527851385-r22 { fill: #14322a }
+ .terminal-9999999-r1 { fill: #606060 }
+ .terminal-9999999-r2 { fill: #2d2d2d;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #2d2d2d;font-weight: bold }
+ .terminal-9999999-r5 { fill: #323225 }
+ .terminal-9999999-r6 { fill: #323225;font-weight: bold }
+ .terminal-9999999-r7 { fill: #2d2d2d }
+ .terminal-9999999-r8 { fill: #6c6d4c }
+ .terminal-9999999-r9 { fill: #dfdfdf }
+ .terminal-9999999-r10 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r11 { fill: #0b0f0e }
+ .terminal-9999999-r12 { fill: #3e3e3e;font-style: italic; }
+ .terminal-9999999-r13 { fill: #3e3e3e;font-weight: bold }
+ .terminal-9999999-r14 { fill: #3e3e3e }
+ .terminal-9999999-r15 { fill: #feffac }
+ .terminal-9999999-r16 { fill: #363636 }
+ .terminal-9999999-r17 { fill: #303030 }
+ .terminal-9999999-r18 { fill: #666666;font-weight: bold }
+ .terminal-9999999-r19 { fill: #141410;font-weight: bold }
+ .terminal-9999999-r20 { fill: #14322a;font-weight: bold }
+ .terminal-9999999-r21 { fill: #14322a }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help ╭──────────────────────────────────────────────────────────╮│
- │ Focus Next │││
- │ Focus Previous │Action: Focus Query Editor││
- │ Focus Query Editor │││
- │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
- │ Focus Data Catalog │add bindings for this action.││
- │ Toggle Sidebar │Enter: Select Button; Tab: Next Button│▇▇│
- │ Toggle Full Screen │││
- │ Show Query History │╭──────────────────────────────────────────────╮││
- │ Show Data Exporter │││││
- │ Refresh Catalog │││││
- │ Run Query ││ Press a key combination │││
- │ Cancel Query │││││
- │ Code Editor: New Buffer │││││
- │ Code Editor: Close Buffer │╰──────────────────────────────────────────────╯││
- │ Code Editor: Next Buffer │╭────────────────────────────────╮││
- │ Code Editor: Run Query │ Key Display: │(Optional)│││
- │ Code Editor: Format Buffer │╰────────────────────────────────╯││
- │ Code Editor: Save Buffer │││
- │ Code Editor: Load Buffer │││
- │ Code Editor: Find │ Cancel Submit ││
- │ Code Editor: Find Next │││
- │ Code Editor: Goto Line │││
- │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help ╭──────────────────────────────────────────────────────────╮│
+ │ Focus Next │││
+ │ Focus Previous │Action: Focus Query Editor││
+ │ Focus Query Editor │││
+ │ Focus Results Viewer │Use the buttons below to replace, remove, or ││
+ │ Focus Data Catalog │add bindings for this action.││
+ │ Toggle Sidebar │Enter: Select Button; Tab: Next Button││
+ │ Toggle Full Screen │││
+ │ Show Query History │╭──────────────────────────────────────────────╮││
+ │ Show Data Exporter │││││
+ │ Refresh Catalog │││││
+ │ Run Query ││ Press a key combination │││
+ │ Cancel Query │││││
+ │ Code Editor: New Buffer │││││
+ │ Code Editor: Close Buffer │╰──────────────────────────────────────────────╯││
+ │ Code Editor: Next Buffer │╭────────────────────────────────╮││
+ │ Code Editor: Run Query │ Key Display: │(Optional)│││
+ │ Code Editor: Format Buffer │╰────────────────────────────────╯││
+ │ Code Editor: Save Buffer │││
+ │ Code Editor: Load Buffer │││
+ │ Code Editor: Find │ Cancel Submit ││
+ │ Code Editor: Find Next │││
+ │ Code Editor: Goto Line │││
+ │ Code Editor: Cursor Up ╰──────────────────────────────────────────────────────────╯│
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -1138,188 +1133,187 @@
font-weight: 700;
}
- .terminal-1093854887-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1093854887-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1093854887-r1 { fill: #c5c8c6 }
- .terminal-1093854887-r2 { fill: #dfdfdf;font-style: italic; }
- .terminal-1093854887-r3 { fill: #dfdfdf;font-weight: bold }
- .terminal-1093854887-r4 { fill: #feffac }
- .terminal-1093854887-r5 { fill: #feffac;font-weight: bold }
- .terminal-1093854887-r6 { fill: #dfdfdf }
- .terminal-1093854887-r7 { fill: #08211a }
- .terminal-1093854887-r8 { fill: #1d1d1d }
- .terminal-1093854887-r9 { fill: #45ffca;font-weight: bold }
- .terminal-1093854887-r10 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #c5c8c6 }
+ .terminal-9999999-r2 { fill: #dfdfdf;font-style: italic; }
+ .terminal-9999999-r3 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r4 { fill: #feffac }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #08211a }
+ .terminal-9999999-r8 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help f1 │
- │ Focus Next tab │
- │ Focus Previous shift+tab │
- │ Focus Query Editor f2 │
- │ Focus Results Viewer f5 │
- │ Focus Data Catalog f6 │
- │ Toggle Sidebar ctrl+b,f9 ▇▇│
- │ Toggle Full Screen f10 │
- │ Show Query History f8 │
- │ Show Data Exporter ctrl+e │
- │ Refresh Catalog ctrl+r │
- │ Run Query │
- │ Cancel Query │
- │ Code Editor: New Buffer ctrl+n │
- │ Code Editor: Close Buffer ctrl+w │
- │ Code Editor: Next Buffer ctrl+k │
- │ Code Editor: Run Query ctrl+enter,ctrl+j ^⏎ or ^j │
- │ Code Editor: Format Buffer f4 │
- │ Code Editor: Save Buffer ctrl+s │
- │ Code Editor: Load Buffer ctrl+o │
- │ Code Editor: Find ctrl+f │
- │ Code Editor: Find Next f3 │
- │ Code Editor: Goto Line ctrl+g │
- │ Code Editor: Cursor Up up │
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help f1 │
+ │ Focus Next tab │
+ │ Focus Previous shift+tab │
+ │ Focus Query Editor f2 │
+ │ Focus Results Viewer f5 │
+ │ Focus Data Catalog f6 │
+ │ Toggle Sidebar ctrl+b,f9 │
+ │ Toggle Full Screen f10 │
+ │ Show Query History f8 │
+ │ Show Data Exporter ctrl+e │
+ │ Refresh Catalog ctrl+r │
+ │ Run Query │
+ │ Cancel Query │
+ │ Code Editor: New Buffer ctrl+n │
+ │ Code Editor: Close Buffer ctrl+w │
+ │ Code Editor: Next Buffer ctrl+k │
+ │ Code Editor: Run Query ctrl+enter,ctrl+j ^⏎ or ^j │
+ │ Code Editor: Format Buffer f4 │
+ │ Code Editor: Save Buffer ctrl+s │
+ │ Code Editor: Load Buffer ctrl+o │
+ │ Code Editor: Find ctrl+f │
+ │ Code Editor: Find Next f3 │
+ │ Code Editor: Goto Line ctrl+g │
+ │ Code Editor: Cursor Up up │
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -1349,188 +1343,187 @@
font-weight: 700;
}
- .terminal-3270960808-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3270960808-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3270960808-r1 { fill: #c5c8c6 }
- .terminal-3270960808-r2 { fill: #dfdfdf;font-style: italic; }
- .terminal-3270960808-r3 { fill: #dfdfdf;font-weight: bold }
- .terminal-3270960808-r4 { fill: #feffac }
- .terminal-3270960808-r5 { fill: #feffac;font-weight: bold }
- .terminal-3270960808-r6 { fill: #dfdfdf }
- .terminal-3270960808-r7 { fill: #08211a }
- .terminal-3270960808-r8 { fill: #1d1d1d }
- .terminal-3270960808-r9 { fill: #45ffca;font-weight: bold }
- .terminal-3270960808-r10 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #c5c8c6 }
+ .terminal-9999999-r2 { fill: #dfdfdf;font-style: italic; }
+ .terminal-9999999-r3 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r4 { fill: #feffac }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #08211a }
+ .terminal-9999999-r8 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r9 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help f1 │
- │ Focus Next tab │
- │ Focus Previous shift+tab │
- │ Focus Query Editor f3 │
- │ Focus Results Viewer f5 │
- │ Focus Data Catalog f6 │
- │ Toggle Sidebar ctrl+b,f9 ▇▇│
- │ Toggle Full Screen f10 │
- │ Show Query History f8 │
- │ Show Data Exporter ctrl+e │
- │ Refresh Catalog ctrl+r │
- │ Run Query │
- │ Cancel Query │
- │ Code Editor: New Buffer ctrl+n │
- │ Code Editor: Close Buffer ctrl+w │
- │ Code Editor: Next Buffer ctrl+k │
- │ Code Editor: Run Query ctrl+enter,ctrl+j ^⏎ or ^j │
- │ Code Editor: Format Buffer f4 │
- │ Code Editor: Save Buffer ctrl+s │
- │ Code Editor: Load Buffer ctrl+o │
- │ Code Editor: Find ctrl+f │
- │ Code Editor: Find Next f3 │
- │ Code Editor: Goto Line ctrl+g │
- │ Code Editor: Cursor Up up │
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help f1 │
+ │ Focus Next tab │
+ │ Focus Previous shift+tab │
+ │ Focus Query Editor f3 │
+ │ Focus Results Viewer f5 │
+ │ Focus Data Catalog f6 │
+ │ Toggle Sidebar ctrl+b,f9 │
+ │ Toggle Full Screen f10 │
+ │ Show Query History f8 │
+ │ Show Data Exporter ctrl+e │
+ │ Refresh Catalog ctrl+r │
+ │ Run Query │
+ │ Cancel Query │
+ │ Code Editor: New Buffer ctrl+n │
+ │ Code Editor: Close Buffer ctrl+w │
+ │ Code Editor: Next Buffer ctrl+k │
+ │ Code Editor: Run Query ctrl+enter,ctrl+j ^⏎ or ^j │
+ │ Code Editor: Format Buffer f4 │
+ │ Code Editor: Save Buffer ctrl+s │
+ │ Code Editor: Load Buffer ctrl+o │
+ │ Code Editor: Find ctrl+f │
+ │ Code Editor: Find Next f3 │
+ │ Code Editor: Goto Line ctrl+g │
+ │ Code Editor: Cursor Up up │
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
@@ -1560,197 +1553,196 @@
font-weight: 700;
}
- .terminal-2225497621-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2225497621-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2225497621-r1 { fill: #dfdfdf }
- .terminal-2225497621-r2 { fill: #606060;font-style: italic; }
- .terminal-2225497621-r3 { fill: #c5c8c6 }
- .terminal-2225497621-r4 { fill: #606060;font-weight: bold }
- .terminal-2225497621-r5 { fill: #6c6d4c }
- .terminal-2225497621-r6 { fill: #6c6d4c;font-weight: bold }
- .terminal-2225497621-r7 { fill: #606060 }
- .terminal-2225497621-r8 { fill: #feffac }
- .terminal-2225497621-r9 { fill: #0a1411 }
- .terminal-2225497621-r10 { fill: #777777 }
- .terminal-2225497621-r11 { fill: #121212 }
- .terminal-2225497621-r12 { fill: #45ffca }
- .terminal-2225497621-r13 { fill: #0c0c0c }
- .terminal-2225497621-r14 { fill: #686868 }
- .terminal-2225497621-r15 { fill: #ededed;font-weight: bold }
- .terminal-2225497621-r16 { fill: #21171c;font-weight: bold }
- .terminal-2225497621-r17 { fill: #212116;font-weight: bold }
- .terminal-2225497621-r18 { fill: #226d58;font-weight: bold }
- .terminal-2225497621-r19 { fill: #226d58 }
+ .terminal-9999999-r1 { fill: #dfdfdf }
+ .terminal-9999999-r2 { fill: #606060;font-style: italic; }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #606060;font-weight: bold }
+ .terminal-9999999-r5 { fill: #6c6d4c }
+ .terminal-9999999-r6 { fill: #6c6d4c;font-weight: bold }
+ .terminal-9999999-r7 { fill: #606060 }
+ .terminal-9999999-r8 { fill: #feffac }
+ .terminal-9999999-r9 { fill: #0a1411 }
+ .terminal-9999999-r10 { fill: #777777 }
+ .terminal-9999999-r11 { fill: #45ffca }
+ .terminal-9999999-r12 { fill: #0c0c0c }
+ .terminal-9999999-r13 { fill: #686868 }
+ .terminal-9999999-r14 { fill: #ededed;font-weight: bold }
+ .terminal-9999999-r15 { fill: #21171c;font-weight: bold }
+ .terminal-9999999-r16 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r17 { fill: #226d58;font-weight: bold }
+ .terminal-9999999-r18 { fill: #226d58 }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- HarlequinKeys
+ HarlequinKeys
-
-
-
- The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
- to a keymap.
- Loaded Keymaps: vscode
- ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
- │ Action Keys Key Display │
- │ Quit ctrl+q │
- │ Help f1 │
- │ Focus Next tab │
- │ Focus Previous╭──────────────────────────────────────────────────────────────────────────────────────╮│
- │ Focus Query Ed│││
- │ Focus Results │││
- │ Focus Data Cat│╭────────────────────────────────────────────────────────────╮││
- │ Toggle Sidebar│ Config Path: │/tmp/harlequin/config.toml ││▇▇│
- │ Toggle Full Sc│╰────────────────────────────────────────────────────────────╯││
- │ Show Query His│││
- │ Show Data Expo│││
- │ Refresh Catalo│╭────────────────────────────────────────────────────────────╮││
- │ Run Query │ Keymap Name: │Enter a name for this keymap│││
- │ Cancel Query │╰────────────────────────────────────────────────────────────╯││
- │ Code Editor: N│││
- │ Code Editor: C│││
- │ Code Editor: N│││
- │ Code Editor: R│││
- │ Code Editor: F│ Keep Editing Discard + Quit Save + Quit ││
- │ Code Editor: S│││
- │ Code Editor: L│││
- │ Code Editor: F│││
- │ Code Editor: F╰──────────────────────────────────────────────────────────────────────────────────────╯│
- │ Code Editor: Goto Line ctrl+g │
- │ Code Editor: Cursor Up up │
- │ Code Editor: Cursor Down down │
- │ Code Editor: Cursor Left left │
- │ Code Editor: Cursor Right right │
- │ Code Editor: Cursor Word Left ctrl+left │
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit ⏎ Edit
+
+
+
+ The table below shows the active key bindings loaded from your config. Edit the key bindings, then quit to save them
+ to a keymap.
+ Loaded Keymaps: vscode
+ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+ │ Action Keys Key Display │
+ │ Quit ctrl+q │
+ │ Help f1 │
+ │ Focus Next tab │
+ │ Focus Previous╭──────────────────────────────────────────────────────────────────────────────────────╮│
+ │ Focus Query Ed│││
+ │ Focus Results │││
+ │ Focus Data Cat│╭────────────────────────────────────────────────────────────╮││
+ │ Toggle Sidebar│ Config Path: │/tmp/harlequin/config.toml │││
+ │ Toggle Full Sc│╰────────────────────────────────────────────────────────────╯││
+ │ Show Query His│││
+ │ Show Data Expo│││
+ │ Refresh Catalo│╭────────────────────────────────────────────────────────────╮││
+ │ Run Query │ Keymap Name: │Enter a name for this keymap│││
+ │ Cancel Query │╰────────────────────────────────────────────────────────────╯││
+ │ Code Editor: N│││
+ │ Code Editor: C│││
+ │ Code Editor: N│││
+ │ Code Editor: R│││
+ │ Code Editor: F│ Keep Editing Discard + Quit Save + Quit ││
+ │ Code Editor: S│││
+ │ Code Editor: L│││
+ │ Code Editor: F│││
+ │ Code Editor: F╰──────────────────────────────────────────────────────────────────────────────────────╯│
+ │ Code Editor: Goto Line ctrl+g │
+ │ Code Editor: Cursor Up up │
+ │ Code Editor: Cursor Down down │
+ │ Code Editor: Cursor Left left │
+ │ Code Editor: Cursor Right right │
+ │ Code Editor: Cursor Word Left ctrl+left │
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit ⏎ Edit
diff --git a/tests/functional_tests/__snapshots__/test_layout.ambr b/tests/functional_tests/__snapshots__/test_layout.ambr
index bb8f8ac4..7d83c92e 100644
--- a/tests/functional_tests/__snapshots__/test_layout.ambr
+++ b/tests/functional_tests/__snapshots__/test_layout.ambr
@@ -22,139 +22,139 @@
font-weight: 700;
}
- .terminal-1885436802-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1885436802-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1885436802-r1 { fill: #feffac }
- .terminal-1885436802-r2 { fill: #c5c8c6 }
- .terminal-1885436802-r3 { fill: #858585 }
- .terminal-1885436802-r4 { fill: #181818 }
- .terminal-1885436802-r5 { fill: #dddddd }
- .terminal-1885436802-r6 { fill: #dfdfdf }
- .terminal-1885436802-r7 { fill: #777777 }
- .terminal-1885436802-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-1885436802-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
@@ -184,139 +184,139 @@
font-weight: 700;
}
- .terminal-3787778908-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3787778908-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3787778908-r1 { fill: #777777 }
- .terminal-3787778908-r2 { fill: #feffac }
- .terminal-3787778908-r3 { fill: #c5c8c6 }
- .terminal-3787778908-r4 { fill: #dfdfdf }
- .terminal-3787778908-r5 { fill: #858585 }
- .terminal-3787778908-r6 { fill: #181818 }
- .terminal-3787778908-r7 { fill: #dddddd }
- .terminal-3787778908-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3787778908-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ╰──────────────────╯▐X▌ Limit 500 Run Query
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ╰──────────────────╯▐X▌ Limit 500 Run Query
@@ -346,139 +346,139 @@
font-weight: 700;
}
- .terminal-1885436802-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1885436802-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1885436802-r1 { fill: #feffac }
- .terminal-1885436802-r2 { fill: #c5c8c6 }
- .terminal-1885436802-r3 { fill: #858585 }
- .terminal-1885436802-r4 { fill: #181818 }
- .terminal-1885436802-r5 { fill: #dddddd }
- .terminal-1885436802-r6 { fill: #dfdfdf }
- .terminal-1885436802-r7 { fill: #777777 }
- .terminal-1885436802-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-1885436802-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
@@ -508,140 +508,140 @@
font-weight: 700;
}
- .terminal-3789326413-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3789326413-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3789326413-r1 { fill: #777777 }
- .terminal-3789326413-r2 { fill: #feffac }
- .terminal-3789326413-r3 { fill: #c5c8c6 }
- .terminal-3789326413-r4 { fill: #dfdfdf }
- .terminal-3789326413-r5 { fill: #858585 }
- .terminal-3789326413-r6 { fill: #181818 }
- .terminal-3789326413-r7 { fill: #dddddd }
- .terminal-3789326413-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3789326413-r9 { fill: #212116;font-weight: bold }
- .terminal-3789326413-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -671,140 +671,140 @@
font-weight: 700;
}
- .terminal-2633981075-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2633981075-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2633981075-r1 { fill: #feffac }
- .terminal-2633981075-r2 { fill: #c5c8c6 }
- .terminal-2633981075-r3 { fill: #858585 }
- .terminal-2633981075-r4 { fill: #181818 }
- .terminal-2633981075-r5 { fill: #dddddd }
- .terminal-2633981075-r6 { fill: #dfdfdf }
- .terminal-2633981075-r7 { fill: #777777 }
- .terminal-2633981075-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2633981075-r9 { fill: #212116;font-weight: bold }
- .terminal-2633981075-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
- ╭─ Query Results ──────────────────────────────────────────────────────────────╮
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
+ ╭─ Query Results ──────────────────────────────────────────────────────────────╮
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -834,144 +834,144 @@
font-weight: 700;
}
- .terminal-3528888178-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3528888178-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3528888178-r1 { fill: #777777 }
- .terminal-3528888178-r2 { fill: #c5c8c6 }
- .terminal-3528888178-r3 { fill: #dfdfdf }
- .terminal-3528888178-r4 { fill: #858585 }
- .terminal-3528888178-r5 { fill: #feffac;font-weight: bold }
- .terminal-3528888178-r6 { fill: #dddddd }
- .terminal-3528888178-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-3528888178-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3528888178-r9 { fill: #212116;font-weight: bold }
- .terminal-3528888178-r10 { fill: #feffac }
- .terminal-3528888178-r11 { fill: #777777;font-weight: bold }
- .terminal-3528888178-r12 { fill: #08211a }
- .terminal-3528888178-r13 { fill: #45ffca;font-weight: bold }
- .terminal-3528888178-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -1001,140 +1001,140 @@
font-weight: 700;
}
- .terminal-3789326413-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3789326413-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3789326413-r1 { fill: #777777 }
- .terminal-3789326413-r2 { fill: #feffac }
- .terminal-3789326413-r3 { fill: #c5c8c6 }
- .terminal-3789326413-r4 { fill: #dfdfdf }
- .terminal-3789326413-r5 { fill: #858585 }
- .terminal-3789326413-r6 { fill: #181818 }
- .terminal-3789326413-r7 { fill: #dddddd }
- .terminal-3789326413-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3789326413-r9 { fill: #212116;font-weight: bold }
- .terminal-3789326413-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -1164,137 +1164,137 @@
font-weight: 700;
}
- .terminal-249506557-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-249506557-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-249506557-r1 { fill: #777777 }
- .terminal-249506557-r2 { fill: #feffac }
- .terminal-249506557-r3 { fill: #c5c8c6 }
- .terminal-249506557-r4 { fill: #dfdfdf }
- .terminal-249506557-r5 { fill: #feffac;font-weight: bold }
- .terminal-249506557-r6 { fill: #777777;font-weight: bold }
- .terminal-249506557-r7 { fill: #08211a }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r7 { fill: #08211a }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Results (1 Records) ──────────────────────────────╮
- │▶ memory db││ 1 # │
- │││ 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+
+ ╭─ Data Catalog ───╮╭─ Query Results (1 Records) ──────────────────────────────╮
+ │▶ memory db││ 1 # │
+ │││ 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
@@ -1324,136 +1324,136 @@
font-weight: 700;
}
- .terminal-2265234196-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2265234196-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2265234196-r1 { fill: #feffac }
- .terminal-2265234196-r2 { fill: #c5c8c6 }
- .terminal-2265234196-r3 { fill: #feffac;font-weight: bold }
- .terminal-2265234196-r4 { fill: #777777;font-weight: bold }
- .terminal-2265234196-r5 { fill: #08211a }
- .terminal-2265234196-r6 { fill: #dfdfdf }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r4 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r5 { fill: #08211a }
+ .terminal-9999999-r6 { fill: #dfdfdf }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Results (1 Records) ──────────────────────────────────────────────────╮
- │ 1 # │
- │ 1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
+
+ ╭─ Query Results (1 Records) ──────────────────────────────────────────────────╮
+ │ 1 # │
+ │ 1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
@@ -1483,140 +1483,140 @@
font-weight: 700;
}
- .terminal-2633981075-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2633981075-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2633981075-r1 { fill: #feffac }
- .terminal-2633981075-r2 { fill: #c5c8c6 }
- .terminal-2633981075-r3 { fill: #858585 }
- .terminal-2633981075-r4 { fill: #181818 }
- .terminal-2633981075-r5 { fill: #dddddd }
- .terminal-2633981075-r6 { fill: #dfdfdf }
- .terminal-2633981075-r7 { fill: #777777 }
- .terminal-2633981075-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2633981075-r9 { fill: #212116;font-weight: bold }
- .terminal-2633981075-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
- ╭─ Query Results ──────────────────────────────────────────────────────────────╮
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
+ ╭─ Query Results ──────────────────────────────────────────────────────────────╮
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -1646,140 +1646,140 @@
font-weight: 700;
}
- .terminal-2633981075-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2633981075-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2633981075-r1 { fill: #feffac }
- .terminal-2633981075-r2 { fill: #c5c8c6 }
- .terminal-2633981075-r3 { fill: #858585 }
- .terminal-2633981075-r4 { fill: #181818 }
- .terminal-2633981075-r5 { fill: #dddddd }
- .terminal-2633981075-r6 { fill: #dfdfdf }
- .terminal-2633981075-r7 { fill: #777777 }
- .terminal-2633981075-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2633981075-r9 { fill: #212116;font-weight: bold }
- .terminal-2633981075-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
- ╭─ Query Results ──────────────────────────────────────────────────────────────╮
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
+ ╭─ Query Results ──────────────────────────────────────────────────────────────╮
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -1809,140 +1809,140 @@
font-weight: 700;
}
- .terminal-2633981075-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2633981075-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2633981075-r1 { fill: #feffac }
- .terminal-2633981075-r2 { fill: #c5c8c6 }
- .terminal-2633981075-r3 { fill: #858585 }
- .terminal-2633981075-r4 { fill: #181818 }
- .terminal-2633981075-r5 { fill: #dddddd }
- .terminal-2633981075-r6 { fill: #dfdfdf }
- .terminal-2633981075-r7 { fill: #777777 }
- .terminal-2633981075-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-2633981075-r9 { fill: #212116;font-weight: bold }
- .terminal-2633981075-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #feffac }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #858585 }
+ .terminal-9999999-r4 { fill: #181818 }
+ .terminal-9999999-r5 { fill: #dddddd }
+ .terminal-9999999-r6 { fill: #dfdfdf }
+ .terminal-9999999-r7 { fill: #777777 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
- │1 │
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ▐X▌ Limit 500 Run Query
- ╭─ Query Results ──────────────────────────────────────────────────────────────╮
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ││
- ╰──────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Query Editor ───────────────────────────────────────────────────────────────╮
+ │1 │
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ▐X▌ Limit 500 Run Query
+ ╭─ Query Results ──────────────────────────────────────────────────────────────╮
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ││
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -1972,140 +1972,140 @@
font-weight: 700;
}
- .terminal-3789326413-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3789326413-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3789326413-r1 { fill: #777777 }
- .terminal-3789326413-r2 { fill: #feffac }
- .terminal-3789326413-r3 { fill: #c5c8c6 }
- .terminal-3789326413-r4 { fill: #dfdfdf }
- .terminal-3789326413-r5 { fill: #858585 }
- .terminal-3789326413-r6 { fill: #181818 }
- .terminal-3789326413-r7 { fill: #dddddd }
- .terminal-3789326413-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3789326413-r9 { fill: #212116;font-weight: bold }
- .terminal-3789326413-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2135,140 +2135,140 @@
font-weight: 700;
}
- .terminal-3789326413-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3789326413-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3789326413-r1 { fill: #777777 }
- .terminal-3789326413-r2 { fill: #feffac }
- .terminal-3789326413-r3 { fill: #c5c8c6 }
- .terminal-3789326413-r4 { fill: #dfdfdf }
- .terminal-3789326413-r5 { fill: #858585 }
- .terminal-3789326413-r6 { fill: #181818 }
- .terminal-3789326413-r7 { fill: #dddddd }
- .terminal-3789326413-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3789326413-r9 { fill: #212116;font-weight: bold }
- .terminal-3789326413-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
diff --git a/tests/functional_tests/__snapshots__/test_query_editor.ambr b/tests/functional_tests/__snapshots__/test_query_editor.ambr
index d86fbc07..605f2253 100644
--- a/tests/functional_tests/__snapshots__/test_query_editor.ambr
+++ b/tests/functional_tests/__snapshots__/test_query_editor.ambr
@@ -22,144 +22,144 @@
font-weight: 700;
}
- .terminal-3008006675-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3008006675-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3008006675-r1 { fill: #777777 }
- .terminal-3008006675-r2 { fill: #feffac }
- .terminal-3008006675-r3 { fill: #c5c8c6 }
- .terminal-3008006675-r4 { fill: #dfdfdf }
- .terminal-3008006675-r5 { fill: #858585 }
- .terminal-3008006675-r6 { fill: #dddddd }
- .terminal-3008006675-r7 { fill: #181818 }
- .terminal-3008006675-r8 { fill: #08211a;font-weight: bold }
- .terminal-3008006675-r9 { fill: #777777;font-weight: bold }
- .terminal-3008006675-r10 { fill: #e3e3e3 }
- .terminal-3008006675-r11 { fill: #1d1d1d }
- .terminal-3008006675-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-3008006675-r13 { fill: #212116;font-weight: bold }
- .terminal-3008006675-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #1d1d1d }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ small db││1 "drivers".│
- │││"drivers".code s│
- │││"drivers".dob d│
- │││"drivers".driverId ##│
- │││"drivers".driverRef s│
- │││"drivers".forename s│
- │││"drivers".nationality s│
- │││"drivers".number s│
- │││"drivers".surname s▇▇│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▼ small db││1 "drivers".│
+ │├─ empty sch││"drivers".code s│
+ │└─ ▼ main sch││"drivers".dob d│
+ │ └─ ▶ drivers ││"drivers".driverId ##│
+ │││"drivers".driverRef s│
+ │││"drivers".forename s│
+ │││"drivers".nationality s│
+ │││"drivers".number s│
+ │││"drivers".surname s▇▇│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │▏│││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -189,140 +189,140 @@
font-weight: 700;
}
- .terminal-3087847148-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3087847148-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3087847148-r1 { fill: #777777 }
- .terminal-3087847148-r2 { fill: #feffac }
- .terminal-3087847148-r3 { fill: #c5c8c6 }
- .terminal-3087847148-r4 { fill: #dfdfdf }
- .terminal-3087847148-r5 { fill: #858585 }
- .terminal-3087847148-r6 { fill: #dddddd }
- .terminal-3087847148-r7 { fill: #181818 }
- .terminal-3087847148-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3087847148-r9 { fill: #212116;font-weight: bold }
- .terminal-3087847148-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ small db││1 "drivers"."code"│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▼ small db││1 "drivers"."code"│
+ │├─ empty sch│││
+ │└─ ▼ main sch│││
+ │ └─ ▶ drivers │││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │▏│││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -352,144 +352,144 @@
font-weight: 700;
}
- .terminal-2228193831-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2228193831-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2228193831-r1 { fill: #777777 }
- .terminal-2228193831-r2 { fill: #feffac }
- .terminal-2228193831-r3 { fill: #c5c8c6 }
- .terminal-2228193831-r4 { fill: #dfdfdf }
- .terminal-2228193831-r5 { fill: #858585 }
- .terminal-2228193831-r6 { fill: #dddddd }
- .terminal-2228193831-r7 { fill: #181818 }
- .terminal-2228193831-r8 { fill: #08211a;font-weight: bold }
- .terminal-2228193831-r9 { fill: #777777;font-weight: bold }
- .terminal-2228193831-r10 { fill: #e3e3e3 }
- .terminal-2228193831-r11 { fill: #1d1d1d }
- .terminal-2228193831-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-2228193831-r13 { fill: #212116;font-weight: bold }
- .terminal-2228193831-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #1d1d1d }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
-
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ small db││1 "drivers".""│
- │││"drivers"."code s│
- │││"drivers"."dob d│
- │││"drivers"."driverId ##│
- │││"drivers"."driverRef s│
- │││"drivers"."forename s│
- │││"drivers"."nationality s│
- │││"drivers"."number s│
- │││"drivers"."surname s▇▇│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▼ small db││1 "drivers".""│
+ │├─ empty sch││"drivers"."code s│
+ │└─ ▼ main sch││"drivers"."dob d│
+ │ └─ ▶ drivers ││"drivers"."driverId ##│
+ │││"drivers"."driverRef s│
+ │││"drivers"."forename s│
+ │││"drivers"."nationality s│
+ │││"drivers"."number s│
+ │││"drivers"."surname s▇▇│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │▏│││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -519,188 +519,188 @@
font-weight: 700;
}
- .terminal-272243032-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-272243032-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-272243032-r1 { fill: #777777 }
- .terminal-272243032-r2 { fill: #feffac }
- .terminal-272243032-r3 { fill: #c5c8c6 }
- .terminal-272243032-r4 { fill: #dfdfdf }
- .terminal-272243032-r5 { fill: #858585 }
- .terminal-272243032-r6 { fill: #181818 }
- .terminal-272243032-r7 { fill: #dddddd }
- .terminal-272243032-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-272243032-r9 { fill: #212116;font-weight: bold }
- .terminal-272243032-r10 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #181818 }
+ .terminal-9999999-r7 { fill: #dddddd }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db││1 tab 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db││1 tab 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -730,191 +730,191 @@
font-weight: 700;
}
- .terminal-1415915373-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1415915373-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1415915373-r1 { fill: #777777 }
- .terminal-1415915373-r2 { fill: #feffac }
- .terminal-1415915373-r3 { fill: #c5c8c6 }
- .terminal-1415915373-r4 { fill: #dfdfdf }
- .terminal-1415915373-r5 { fill: #dfdfdf;font-weight: bold }
- .terminal-1415915373-r6 { fill: #686868 }
- .terminal-1415915373-r7 { fill: #232323 }
- .terminal-1415915373-r8 { fill: #858585 }
- .terminal-1415915373-r9 { fill: #181818 }
- .terminal-1415915373-r10 { fill: #dddddd }
- .terminal-1415915373-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-1415915373-r12 { fill: #212116;font-weight: bold }
- .terminal-1415915373-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r6 { fill: #686868 }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 2Tab 3│
- │││━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 2Tab 3│
+ │││━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -944,191 +944,191 @@
font-weight: 700;
}
- .terminal-206094009-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-206094009-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-206094009-r1 { fill: #777777 }
- .terminal-206094009-r2 { fill: #feffac }
- .terminal-206094009-r3 { fill: #c5c8c6 }
- .terminal-206094009-r4 { fill: #dfdfdf }
- .terminal-206094009-r5 { fill: #dfdfdf;font-weight: bold }
- .terminal-206094009-r6 { fill: #686868 }
- .terminal-206094009-r7 { fill: #232323 }
- .terminal-206094009-r8 { fill: #858585 }
- .terminal-206094009-r9 { fill: #181818 }
- .terminal-206094009-r10 { fill: #dddddd }
- .terminal-206094009-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-206094009-r12 { fill: #212116;font-weight: bold }
- .terminal-206094009-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r6 { fill: #686868 }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 3│
- │││━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 1 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 3│
+ │││━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 1 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -1158,191 +1158,191 @@
font-weight: 700;
}
- .terminal-926269113-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-926269113-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-926269113-r1 { fill: #777777 }
- .terminal-926269113-r2 { fill: #feffac }
- .terminal-926269113-r3 { fill: #c5c8c6 }
- .terminal-926269113-r4 { fill: #dfdfdf }
- .terminal-926269113-r5 { fill: #686868 }
- .terminal-926269113-r6 { fill: #dfdfdf;font-weight: bold }
- .terminal-926269113-r7 { fill: #232323 }
- .terminal-926269113-r8 { fill: #858585 }
- .terminal-926269113-r9 { fill: #181818 }
- .terminal-926269113-r10 { fill: #dddddd }
- .terminal-926269113-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-926269113-r12 { fill: #212116;font-weight: bold }
- .terminal-926269113-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #686868 }
+ .terminal-9999999-r6 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 2│
- │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 2 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 2│
+ │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -1372,191 +1372,191 @@
font-weight: 700;
}
- .terminal-1342383982-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1342383982-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1342383982-r1 { fill: #777777 }
- .terminal-1342383982-r2 { fill: #feffac }
- .terminal-1342383982-r3 { fill: #c5c8c6 }
- .terminal-1342383982-r4 { fill: #dfdfdf }
- .terminal-1342383982-r5 { fill: #686868 }
- .terminal-1342383982-r6 { fill: #dfdfdf;font-weight: bold }
- .terminal-1342383982-r7 { fill: #232323 }
- .terminal-1342383982-r8 { fill: #858585 }
- .terminal-1342383982-r9 { fill: #181818 }
- .terminal-1342383982-r10 { fill: #dddddd }
- .terminal-1342383982-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-1342383982-r12 { fill: #212116;font-weight: bold }
- .terminal-1342383982-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #686868 }
+ .terminal-9999999-r6 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 2Tab 3│
- │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 2 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 2Tab 3│
+ │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -1586,191 +1586,191 @@
font-weight: 700;
}
- .terminal-1269573487-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1269573487-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1269573487-r1 { fill: #777777 }
- .terminal-1269573487-r2 { fill: #feffac }
- .terminal-1269573487-r3 { fill: #c5c8c6 }
- .terminal-1269573487-r4 { fill: #dfdfdf }
- .terminal-1269573487-r5 { fill: #686868 }
- .terminal-1269573487-r6 { fill: #dfdfdf;font-weight: bold }
- .terminal-1269573487-r7 { fill: #232323 }
- .terminal-1269573487-r8 { fill: #858585 }
- .terminal-1269573487-r9 { fill: #181818 }
- .terminal-1269573487-r10 { fill: #dddddd }
- .terminal-1269573487-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-1269573487-r12 { fill: #212116;font-weight: bold }
- .terminal-1269573487-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #686868 }
+ .terminal-9999999-r6 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 2Tab 3│
- │││━━━━━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 3 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 2Tab 3│
+ │││━━━━━━━━━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 3 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -1800,191 +1800,191 @@
font-weight: 700;
}
- .terminal-3323510459-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3323510459-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3323510459-r1 { fill: #777777 }
- .terminal-3323510459-r2 { fill: #feffac }
- .terminal-3323510459-r3 { fill: #c5c8c6 }
- .terminal-3323510459-r4 { fill: #dfdfdf }
- .terminal-3323510459-r5 { fill: #686868 }
- .terminal-3323510459-r6 { fill: #dfdfdf;font-weight: bold }
- .terminal-3323510459-r7 { fill: #232323 }
- .terminal-3323510459-r8 { fill: #858585 }
- .terminal-3323510459-r9 { fill: #181818 }
- .terminal-3323510459-r10 { fill: #dddddd }
- .terminal-3323510459-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-3323510459-r12 { fill: #212116;font-weight: bold }
- .terminal-3323510459-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #686868 }
+ .terminal-9999999-r6 { fill: #dfdfdf;font-weight: bold }
+ .terminal-9999999-r7 { fill: #232323 }
+ .terminal-9999999-r8 { fill: #858585 }
+ .terminal-9999999-r9 { fill: #181818 }
+ .terminal-9999999-r10 { fill: #dddddd }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ memory db│││
- │││Tab 1Tab 3│
- │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
- │││1 tab 3 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ memory db│││
+ │││Tab 1Tab 3│
+ │││━━━━━━━━━╸━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│
+ │││1 tab 3 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ────────────────────────────────────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Query ^o Open Query ^f Find f3 Find Next
@@ -2014,143 +2014,143 @@
font-weight: 700;
}
- .terminal-347505482-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-347505482-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-347505482-r1 { fill: #777777 }
- .terminal-347505482-r2 { fill: #feffac }
- .terminal-347505482-r3 { fill: #c5c8c6 }
- .terminal-347505482-r4 { fill: #dfdfdf }
- .terminal-347505482-r5 { fill: #858585 }
- .terminal-347505482-r6 { fill: #dddddd }
- .terminal-347505482-r7 { fill: #181818 }
- .terminal-347505482-r8 { fill: #08211a;font-weight: bold }
- .terminal-347505482-r9 { fill: #777777;font-weight: bold }
- .terminal-347505482-r10 { fill: #e3e3e3 }
- .terminal-347505482-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-347505482-r12 { fill: #212116;font-weight: bold }
- .terminal-347505482-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 s│
- │││schema kw│
- │││select kw│
- │││sequence kw│
- │││set kw│
- │││show kw│
- │││similar kw│
- │││some kw│
- │││summarize kw│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 s│
+ │││schema kw│
+ │││select kw│
+ │││sequence kw│
+ │││set kw│
+ │││show kw│
+ │││similar kw│
+ │││some kw│
+ │││summarize kw│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2180,144 +2180,144 @@
font-weight: 700;
}
- .terminal-3864822385-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3864822385-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3864822385-r1 { fill: #777777 }
- .terminal-3864822385-r2 { fill: #feffac }
- .terminal-3864822385-r3 { fill: #c5c8c6 }
- .terminal-3864822385-r4 { fill: #dfdfdf }
- .terminal-3864822385-r5 { fill: #858585 }
- .terminal-3864822385-r6 { fill: #dddddd }
- .terminal-3864822385-r7 { fill: #181818 }
- .terminal-3864822385-r8 { fill: #08211a;font-weight: bold }
- .terminal-3864822385-r9 { fill: #777777;font-weight: bold }
- .terminal-3864822385-r10 { fill: #e3e3e3 }
- .terminal-3864822385-r11 { fill: #1d1d1d }
- .terminal-3864822385-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-3864822385-r13 { fill: #212116;font-weight: bold }
- .terminal-3864822385-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #1d1d1d }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 se│
- │││select kw│
- │││sequence kw│
- │││set kw▁▁│
- │││search kw│
- │││second kw│
- │││second fn│
- │││seconds kw│
- │││secret kw│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 se│
+ │││select kw│
+ │││sequence kw│
+ │││set kw▁▁│
+ │││search kw│
+ │││second kw│
+ │││second fn│
+ │││seconds kw│
+ │││secret kw│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2347,144 +2347,144 @@
font-weight: 700;
}
- .terminal-3864822385-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3864822385-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3864822385-r1 { fill: #777777 }
- .terminal-3864822385-r2 { fill: #feffac }
- .terminal-3864822385-r3 { fill: #c5c8c6 }
- .terminal-3864822385-r4 { fill: #dfdfdf }
- .terminal-3864822385-r5 { fill: #858585 }
- .terminal-3864822385-r6 { fill: #dddddd }
- .terminal-3864822385-r7 { fill: #181818 }
- .terminal-3864822385-r8 { fill: #08211a;font-weight: bold }
- .terminal-3864822385-r9 { fill: #777777;font-weight: bold }
- .terminal-3864822385-r10 { fill: #e3e3e3 }
- .terminal-3864822385-r11 { fill: #1d1d1d }
- .terminal-3864822385-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-3864822385-r13 { fill: #212116;font-weight: bold }
- .terminal-3864822385-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #1d1d1d }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 se│
- │││select kw│
- │││sequence kw│
- │││set kw▁▁│
- │││search kw│
- │││second kw│
- │││second fn│
- │││seconds kw│
- │││secret kw│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 se│
+ │││select kw│
+ │││sequence kw│
+ │││set kw▁▁│
+ │││search kw│
+ │││second kw│
+ │││second fn│
+ │││seconds kw│
+ │││secret kw│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2514,142 +2514,142 @@
font-weight: 700;
}
- .terminal-4022852970-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4022852970-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4022852970-r1 { fill: #777777 }
- .terminal-4022852970-r2 { fill: #feffac }
- .terminal-4022852970-r3 { fill: #c5c8c6 }
- .terminal-4022852970-r4 { fill: #dfdfdf }
- .terminal-4022852970-r5 { fill: #858585 }
- .terminal-4022852970-r6 { fill: #dddddd }
- .terminal-4022852970-r7 { fill: #181818 }
- .terminal-4022852970-r8 { fill: #08211a;font-weight: bold }
- .terminal-4022852970-r9 { fill: #777777;font-weight: bold }
- .terminal-4022852970-r10 { fill: #0c0c0c;font-weight: bold }
- .terminal-4022852970-r11 { fill: #212116;font-weight: bold }
- .terminal-4022852970-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r11 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 sel│
- │││select kw│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 sel│
+ │││select kw│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2679,141 +2679,141 @@
font-weight: 700;
}
- .terminal-2382680475-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2382680475-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2382680475-r1 { fill: #777777 }
- .terminal-2382680475-r2 { fill: #feffac }
- .terminal-2382680475-r3 { fill: #c5c8c6 }
- .terminal-2382680475-r4 { fill: #dfdfdf }
- .terminal-2382680475-r5 { fill: #858585 }
- .terminal-2382680475-r6 { fill: #feffac;font-weight: bold }
- .terminal-2382680475-r7 { fill: #181818 }
- .terminal-2382680475-r8 { fill: #dddddd }
- .terminal-2382680475-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-2382680475-r10 { fill: #212116;font-weight: bold }
- .terminal-2382680475-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #dddddd }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -2843,144 +2843,144 @@
font-weight: 700;
}
- .terminal-3246534041-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3246534041-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3246534041-r1 { fill: #777777 }
- .terminal-3246534041-r2 { fill: #feffac }
- .terminal-3246534041-r3 { fill: #c5c8c6 }
- .terminal-3246534041-r4 { fill: #dfdfdf }
- .terminal-3246534041-r5 { fill: #858585 }
- .terminal-3246534041-r6 { fill: #dddddd }
- .terminal-3246534041-r7 { fill: #181818 }
- .terminal-3246534041-r8 { fill: #08211a;font-weight: bold }
- .terminal-3246534041-r9 { fill: #777777;font-weight: bold }
- .terminal-3246534041-r10 { fill: #e3e3e3 }
- .terminal-3246534041-r11 { fill: #1d1d1d }
- .terminal-3246534041-r12 { fill: #0c0c0c;font-weight: bold }
- .terminal-3246534041-r13 { fill: #212116;font-weight: bold }
- .terminal-3246534041-r14 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #1d1d1d }
+ .terminal-9999999-r12 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r13 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 s│
- │││savepoint kw│
- │││schema kw│
- │││select kw▃▃│
- │││sequence kw│
- │││set kw│
- │││similar kw│
- │││sqrt fn│
- │││sum agg│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 s│
+ │││savepoint kw│
+ │││schema kw│
+ │││select kw▃▃│
+ │││sequence kw│
+ │││set kw│
+ │││similar kw│
+ │││sqrt fn│
+ │││sum agg│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -3010,143 +3010,143 @@
font-weight: 700;
}
- .terminal-2367134888-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2367134888-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2367134888-r1 { fill: #777777 }
- .terminal-2367134888-r2 { fill: #feffac }
- .terminal-2367134888-r3 { fill: #c5c8c6 }
- .terminal-2367134888-r4 { fill: #dfdfdf }
- .terminal-2367134888-r5 { fill: #858585 }
- .terminal-2367134888-r6 { fill: #dddddd }
- .terminal-2367134888-r7 { fill: #181818 }
- .terminal-2367134888-r8 { fill: #08211a;font-weight: bold }
- .terminal-2367134888-r9 { fill: #777777;font-weight: bold }
- .terminal-2367134888-r10 { fill: #e3e3e3 }
- .terminal-2367134888-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-2367134888-r12 { fill: #212116;font-weight: bold }
- .terminal-2367134888-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 se│
- │││select kw│
- │││sequence kw│
- │││set kw│
- │││secure_delete pragma│
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 se│
+ │││select kw│
+ │││sequence kw│
+ │││set kw│
+ │││secure_delete pragma│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -3176,143 +3176,143 @@
font-weight: 700;
}
- .terminal-2367134888-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2367134888-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2367134888-r1 { fill: #777777 }
- .terminal-2367134888-r2 { fill: #feffac }
- .terminal-2367134888-r3 { fill: #c5c8c6 }
- .terminal-2367134888-r4 { fill: #dfdfdf }
- .terminal-2367134888-r5 { fill: #858585 }
- .terminal-2367134888-r6 { fill: #dddddd }
- .terminal-2367134888-r7 { fill: #181818 }
- .terminal-2367134888-r8 { fill: #08211a;font-weight: bold }
- .terminal-2367134888-r9 { fill: #777777;font-weight: bold }
- .terminal-2367134888-r10 { fill: #e3e3e3 }
- .terminal-2367134888-r11 { fill: #0c0c0c;font-weight: bold }
- .terminal-2367134888-r12 { fill: #212116;font-weight: bold }
- .terminal-2367134888-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #e3e3e3 }
+ .terminal-9999999-r11 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r12 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 se│
- │││select kw│
- │││sequence kw│
- │││set kw│
- │││secure_delete pragma│
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 se│
+ │││select kw│
+ │││sequence kw│
+ │││set kw│
+ │││secure_delete pragma│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -3342,142 +3342,142 @@
font-weight: 700;
}
- .terminal-2694482159-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2694482159-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2694482159-r1 { fill: #777777 }
- .terminal-2694482159-r2 { fill: #feffac }
- .terminal-2694482159-r3 { fill: #c5c8c6 }
- .terminal-2694482159-r4 { fill: #dfdfdf }
- .terminal-2694482159-r5 { fill: #858585 }
- .terminal-2694482159-r6 { fill: #dddddd }
- .terminal-2694482159-r7 { fill: #181818 }
- .terminal-2694482159-r8 { fill: #08211a;font-weight: bold }
- .terminal-2694482159-r9 { fill: #777777;font-weight: bold }
- .terminal-2694482159-r10 { fill: #0c0c0c;font-weight: bold }
- .terminal-2694482159-r11 { fill: #212116;font-weight: bold }
- .terminal-2694482159-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #08211a;font-weight: bold }
+ .terminal-9999999-r9 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r10 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r11 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 sel│
- │││select kw│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 sel│
+ │││select kw│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -3507,141 +3507,141 @@
font-weight: 700;
}
- .terminal-942636320-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-942636320-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-942636320-r1 { fill: #777777 }
- .terminal-942636320-r2 { fill: #feffac }
- .terminal-942636320-r3 { fill: #c5c8c6 }
- .terminal-942636320-r4 { fill: #dfdfdf }
- .terminal-942636320-r5 { fill: #858585 }
- .terminal-942636320-r6 { fill: #feffac;font-weight: bold }
- .terminal-942636320-r7 { fill: #181818 }
- .terminal-942636320-r8 { fill: #dddddd }
- .terminal-942636320-r9 { fill: #0c0c0c;font-weight: bold }
- .terminal-942636320-r10 { fill: #212116;font-weight: bold }
- .terminal-942636320-r11 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #dddddd }
+ .terminal-9999999-r9 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results ──────────────────────────────────────────╮
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results ──────────────────────────────────────────╮
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
diff --git a/tests/functional_tests/__snapshots__/test_results_viewer.ambr b/tests/functional_tests/__snapshots__/test_results_viewer.ambr
index bcd890cc..64aa67af 100644
--- a/tests/functional_tests/__snapshots__/test_results_viewer.ambr
+++ b/tests/functional_tests/__snapshots__/test_results_viewer.ambr
@@ -22,145 +22,145 @@
font-weight: 700;
}
- .terminal-3210702884-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-3210702884-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-3210702884-r1 { fill: #777777 }
- .terminal-3210702884-r2 { fill: #feffac }
- .terminal-3210702884-r3 { fill: #c5c8c6 }
- .terminal-3210702884-r4 { fill: #dfdfdf }
- .terminal-3210702884-r5 { fill: #858585 }
- .terminal-3210702884-r6 { fill: #dddddd }
- .terminal-3210702884-r7 { fill: #181818 }
- .terminal-3210702884-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-3210702884-r9 { fill: #212116;font-weight: bold }
- .terminal-3210702884-r10 { fill: #feffac;font-weight: bold }
- .terminal-3210702884-r11 { fill: #777777;font-weight: bold }
- .terminal-3210702884-r12 { fill: #e3efeb }
- .terminal-3210702884-r13 { fill: #08211a }
- .terminal-3210702884-r14 { fill: #1d1d1d }
- .terminal-3210702884-r15 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #e3efeb }
+ .terminal-9999999-r13 { fill: #08211a }
+ .terminal-9999999-r14 { fill: #1d1d1d }
+ .terminal-9999999-r15 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 7 German http://en.wikipedia.org/wiki/Nico_Rosberg│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- │││▏│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ '1985-06-27' s 'German' s 'http://en.wikipedia.org/wi… │
- │││ 1985-06-27 German http://en.wikipedia.org/wik… │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- │││▏│
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 7 German http://en.wikipedia.org/wiki/Nico_Rosberg│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │││▏│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ '1985-06-27' s 'German' s 'http://en.wikipedia.org/wi… │
+ │││ 1985-06-27 German http://en.wikipedia.org/wik… │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │││▏│
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -190,145 +190,145 @@
font-weight: 700;
}
- .terminal-4144962469-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-4144962469-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-4144962469-r1 { fill: #777777 }
- .terminal-4144962469-r2 { fill: #feffac }
- .terminal-4144962469-r3 { fill: #c5c8c6 }
- .terminal-4144962469-r4 { fill: #dfdfdf }
- .terminal-4144962469-r5 { fill: #858585 }
- .terminal-4144962469-r6 { fill: #dddddd }
- .terminal-4144962469-r7 { fill: #181818 }
- .terminal-4144962469-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-4144962469-r9 { fill: #212116;font-weight: bold }
- .terminal-4144962469-r10 { fill: #feffac;font-weight: bold }
- .terminal-4144962469-r11 { fill: #777777;font-weight: bold }
- .terminal-4144962469-r12 { fill: #e3efeb }
- .terminal-4144962469-r13 { fill: #08211a }
- .terminal-4144962469-r14 { fill: #1d1d1d }
- .terminal-4144962469-r15 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #feffac }
+ .terminal-9999999-r3 { fill: #c5c8c6 }
+ .terminal-9999999-r4 { fill: #dfdfdf }
+ .terminal-9999999-r5 { fill: #858585 }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #181818 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #e3efeb }
+ .terminal-9999999-r13 { fill: #08211a }
+ .terminal-9999999-r14 { fill: #1d1d1d }
+ .terminal-9999999-r15 { fill: #45ffca;font-weight: bold }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 7 German http://en.wikipedia.org/wiki/Nico_Rosberg│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- │││▏│
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ '1985-06-27' s 'German' s 'http://en.wikipedia.org/wi… │
- │││ 1985-06-27 German http://en.wikipedia.org/wik… │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- │││▋│
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 7 German http://en.wikipedia.org/wiki/Nico_Rosberg│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │││▏│
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ '1985-06-27' s 'German' s 'http://en.wikipedia.org/wi… │
+ │││ 1985-06-27 German http://en.wikipedia.org/wik… │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ │││▋│
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History ^⏎ or ^j Run Query f4 Format Query ^s Save Quer
@@ -358,143 +358,143 @@
font-weight: 700;
}
- .terminal-359026021-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-359026021-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-359026021-r1 { fill: #777777 }
- .terminal-359026021-r2 { fill: #c5c8c6 }
- .terminal-359026021-r3 { fill: #dfdfdf }
- .terminal-359026021-r4 { fill: #858585 }
- .terminal-359026021-r5 { fill: #feffac;font-weight: bold }
- .terminal-359026021-r6 { fill: #dddddd }
- .terminal-359026021-r7 { fill: #ffb6d9 }
- .terminal-359026021-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-359026021-r9 { fill: #212116;font-weight: bold }
- .terminal-359026021-r10 { fill: #feffac }
- .terminal-359026021-r11 { fill: #08211a }
- .terminal-359026021-r12 { fill: #45ffca;font-weight: bold }
- .terminal-359026021-r13 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #08211a }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select'supercalifragilisticexpialidocious'│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ 'supercalifragilisticexpial… │
- │││ supercalifragilisticexpiali… │
- │││╭────────────────────────────╮│
- ││││supercalifragilisticexpial││
- ││││idocious││
- │││╰────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select'supercalifragilisticexpialidocious'│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ 'supercalifragilisticexpial… │
+ │││ supercalifragilisticexpiali… │
+ │││╭────────────────────────────╮│
+ ││││supercalifragilisticexpial││
+ ││││idocious││
+ │││╰────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -524,143 +524,143 @@
font-weight: 700;
}
- .terminal-1292302555-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1292302555-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1292302555-r1 { fill: #777777 }
- .terminal-1292302555-r2 { fill: #c5c8c6 }
- .terminal-1292302555-r3 { fill: #dfdfdf }
- .terminal-1292302555-r4 { fill: #858585 }
- .terminal-1292302555-r5 { fill: #feffac;font-weight: bold }
- .terminal-1292302555-r6 { fill: #dddddd }
- .terminal-1292302555-r7 { fill: #ffb6d9 }
- .terminal-1292302555-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-1292302555-r9 { fill: #212116;font-weight: bold }
- .terminal-1292302555-r10 { fill: #feffac }
- .terminal-1292302555-r11 { fill: #08211a }
- .terminal-1292302555-r12 { fill: #45ffca;font-weight: bold }
- .terminal-1292302555-r13 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9 }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #08211a }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select'supercalifragilisticexpialidocious'│
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ 'supercalifragilisticexpial… │
- │││ supercalifragilisticexpiali… │
- │││╭────────────────────────────╮│
- ││││supercalifragilisticexpial││
- ││││idocious││
- │││╰────────────────────────────╯│
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select'supercalifragilisticexpialidocious'│
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ 'supercalifragilisticexpial… │
+ │││ supercalifragilisticexpiali… │
+ │││╭────────────────────────────╮│
+ ││││supercalifragilisticexpial││
+ ││││idocious││
+ │││╰────────────────────────────╯│
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -690,144 +690,144 @@
font-weight: 700;
}
- .terminal-987111947-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-987111947-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-987111947-r1 { fill: #777777 }
- .terminal-987111947-r2 { fill: #c5c8c6 }
- .terminal-987111947-r3 { fill: #dfdfdf }
- .terminal-987111947-r4 { fill: #858585 }
- .terminal-987111947-r5 { fill: #feffac;font-weight: bold }
- .terminal-987111947-r6 { fill: #dddddd }
- .terminal-987111947-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-987111947-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-987111947-r9 { fill: #212116;font-weight: bold }
- .terminal-987111947-r10 { fill: #feffac }
- .terminal-987111947-r11 { fill: #777777;font-weight: bold }
- .terminal-987111947-r12 { fill: #08211a }
- .terminal-987111947-r13 { fill: #45ffca;font-weight: bold }
- .terminal-987111947-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │▶ memory db││1 select1as a, 1as a, 2as a, 2as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ a # a # a # a # │
- │││ 1 1 2 2 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │▶ memory db││1 select1as a, 1as a, 2as a, 2as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ a # a # a # a # │
+ │││ 1 1 2 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -857,144 +857,144 @@
font-weight: 700;
}
- .terminal-1611845005-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1611845005-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1611845005-r1 { fill: #777777 }
- .terminal-1611845005-r2 { fill: #c5c8c6 }
- .terminal-1611845005-r3 { fill: #dfdfdf }
- .terminal-1611845005-r4 { fill: #858585 }
- .terminal-1611845005-r5 { fill: #feffac;font-weight: bold }
- .terminal-1611845005-r6 { fill: #dddddd }
- .terminal-1611845005-r7 { fill: #ffb6d9;font-weight: bold }
- .terminal-1611845005-r8 { fill: #0c0c0c;font-weight: bold }
- .terminal-1611845005-r9 { fill: #212116;font-weight: bold }
- .terminal-1611845005-r10 { fill: #feffac }
- .terminal-1611845005-r11 { fill: #777777;font-weight: bold }
- .terminal-1611845005-r12 { fill: #08211a }
- .terminal-1611845005-r13 { fill: #45ffca;font-weight: bold }
- .terminal-1611845005-r14 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #ffb6d9;font-weight: bold }
+ .terminal-9999999-r8 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r9 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r10 { fill: #feffac }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
- │main db││1 select1as a, 1as a, 2as a, 2as a │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰──────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 500 Run Query
- ││╭─ Query Results (1 Records) ──────────────────────────────╮
- │││ a ## a ## a ## a ## │
- │││ 1 1 2 2 │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ───╮╭─ Query Editor ───────────────────────────────────────────╮
+ │main db││1 select1as a, 1as a, 2as a, 2as a │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰──────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 500 Run Query
+ ││╭─ Query Results (1 Records) ──────────────────────────────╮
+ │││ a ## a ## a ## a ## │
+ │││ 1 1 2 2 │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ╰──────────────────╯╰──────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
diff --git a/tests/functional_tests/__snapshots__/test_run_query_bar.ambr b/tests/functional_tests/__snapshots__/test_run_query_bar.ambr
index fe3766c3..700600d2 100644
--- a/tests/functional_tests/__snapshots__/test_run_query_bar.ambr
+++ b/tests/functional_tests/__snapshots__/test_run_query_bar.ambr
@@ -22,193 +22,193 @@
font-weight: 700;
}
- .terminal-772990662-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-772990662-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-772990662-r1 { fill: #777777 }
- .terminal-772990662-r2 { fill: #c5c8c6 }
- .terminal-772990662-r3 { fill: #dfdfdf }
- .terminal-772990662-r4 { fill: #858585 }
- .terminal-772990662-r5 { fill: #feffac;font-weight: bold }
- .terminal-772990662-r6 { fill: #dddddd }
- .terminal-772990662-r7 { fill: #0c0c0c;font-weight: bold }
- .terminal-772990662-r8 { fill: #ffb6d9 }
- .terminal-772990662-r9 { fill: #0c0c0c }
- .terminal-772990662-r10 { fill: #212116;font-weight: bold }
- .terminal-772990662-r11 { fill: #777777;font-weight: bold }
- .terminal-772990662-r12 { fill: #08211a }
- .terminal-772990662-r13 { fill: #45ffca;font-weight: bold }
- .terminal-772990662-r14 { fill: #feffac }
- .terminal-772990662-r15 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #0c0c0c;font-weight: bold }
+ .terminal-9999999-r8 { fill: #ffb6d9 }
+ .terminal-9999999-r9 { fill: #0c0c0c }
+ .terminal-9999999-r10 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r11 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r12 { fill: #08211a }
+ .terminal-9999999-r13 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r14 { fill: #feffac }
+ .terminal-9999999-r15 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ small db││1 select * from drivers │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit a500 Run Query
- ││╭─ Query Results (500 Records) ──────────────────────────────────────────────────────────╮
- │││ driverId ## driverRef s number s code s forename s surname s│
- │││ 1 hamilton 44 HAM Lewis Hamilton │
- │││ 2 heidfeld \N HEI Nick Heidfeld │
- │││ 3 rosberg 6 ROS Nico Rosberg │
- │││ 4 alonso 14 ALO Fernando Alonso │
- │││ 5 kovalainen \N KOV Heikki Kovalainen │
- │││ 6 nakajima \N NAK Kazuki Nakajima │
- │││ 7 bourdais \N BOU Sébastien Bourdais │
- │││ 8 raikkonen 7 RAI Kimi Räikkönen │
- │││ 9 kubica 88 KUB Robert Kubica │
- │││ 10 glock \N GLO Timo Glock │
- │││ 11 sato \N SAT Takuma Sato │
- │││ 12 piquet_jr \N PIQ Nelson Piquet Jr. │
- │││ 13 massa 19 MAS Felipe Massa │
- ││││
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ small db││1 select * from drivers │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit a500 Run Query
+ ││╭─ Query Results (500 Records) ──────────────────────────────────────────────────────────╮
+ │││ driverId ## driverRef s number s code s forename s surname s│
+ │││ 1 hamilton 44 HAM Lewis Hamilton │
+ │││ 2 heidfeld \N HEI Nick Heidfeld │
+ │││ 3 rosberg 6 ROS Nico Rosberg │
+ │││ 4 alonso 14 ALO Fernando Alonso │
+ │││ 5 kovalainen \N KOV Heikki Kovalainen │
+ │││ 6 nakajima \N NAK Kazuki Nakajima │
+ │││ 7 bourdais \N BOU Sébastien Bourdais │
+ │││ 8 raikkonen 7 RAI Kimi Räikkönen │
+ │││ 9 kubica 88 KUB Robert Kubica │
+ │││ 10 glock \N GLO Timo Glock │
+ │││ 11 sato \N SAT Takuma Sato │
+ │││ 12 piquet_jr \N PIQ Nelson Piquet Jr. │
+ │││ 13 massa 19 MAS Felipe Massa │
+ ││││
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -238,191 +238,191 @@
font-weight: 700;
}
- .terminal-1621817413-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-1621817413-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-1621817413-r1 { fill: #777777 }
- .terminal-1621817413-r2 { fill: #c5c8c6 }
- .terminal-1621817413-r3 { fill: #dfdfdf }
- .terminal-1621817413-r4 { fill: #858585 }
- .terminal-1621817413-r5 { fill: #feffac;font-weight: bold }
- .terminal-1621817413-r6 { fill: #dddddd }
- .terminal-1621817413-r7 { fill: #1d1d1d }
- .terminal-1621817413-r8 { fill: #212116;font-weight: bold }
- .terminal-1621817413-r9 { fill: #feffac }
- .terminal-1621817413-r10 { fill: #777777;font-weight: bold }
- .terminal-1621817413-r11 { fill: #08211a }
- .terminal-1621817413-r12 { fill: #45ffca;font-weight: bold }
- .terminal-1621817413-r13 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #1d1d1d }
+ .terminal-9999999-r8 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r11 { fill: #08211a }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- Harlequin
+ Harlequin
-
+
-
- ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
- │▶ small db││1 select * from drivers │
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││││
- ││╰────────────────────────────────────────────────────────────────────────────────────────╯
- ││▐X▌ Limit 100 Run Query
- ││╭─ Query Results (100 Records) ──────────────────────────────────────────────────────────╮
- │││ driverId ## driverRef s number s code s forename s surname s do│
- │││ 1 hamilton 44 HAM Lewis Hamilton 19│
- │││ 2 heidfeld \N HEI Nick Heidfeld 19│
- │││ 3 rosberg 6 ROS Nico Rosberg 19│
- │││ 4 alonso 14 ALO Fernando Alonso 19│
- │││ 5 kovalainen \N KOV Heikki Kovalainen 19│
- │││ 6 nakajima \N NAK Kazuki Nakajima 19│
- │││ 7 bourdais \N BOU Sébastien Bourdais 19│
- │││ 8 raikkonen 7 RAI Kimi Räikkönen 19│
- │││ 9 kubica 88 KUB Robert Kubica 19│
- │││ 10 glock \N GLO Timo Glock 19│
- │││ 11 sato \N SAT Takuma Sato 19│
- │││ 12 piquet_jr \N PIQ Nelson Piquet Jr. 19│
- │││ 13 massa 19 MAS Felipe Massa 19│
- │││▊│
- ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
- ^q Quit f1 Help f8 History
+
+ ╭─ Data Catalog ─────────────╮╭─ Query Editor ─────────────────────────────────────────────────────────────────────────╮
+ │▶ small db││1 select * from drivers │
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││││
+ ││╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ││▐X▌ Limit 100 Run Query
+ ││╭─ Query Results (100 Records) ──────────────────────────────────────────────────────────╮
+ │││ driverId ## driverRef s number s code s forename s surname s do│
+ │││ 1 hamilton 44 HAM Lewis Hamilton 19│
+ │││ 2 heidfeld \N HEI Nick Heidfeld 19│
+ │││ 3 rosberg 6 ROS Nico Rosberg 19│
+ │││ 4 alonso 14 ALO Fernando Alonso 19│
+ │││ 5 kovalainen \N KOV Heikki Kovalainen 19│
+ │││ 6 nakajima \N NAK Kazuki Nakajima 19│
+ │││ 7 bourdais \N BOU Sébastien Bourdais 19│
+ │││ 8 raikkonen 7 RAI Kimi Räikkönen 19│
+ │││ 9 kubica 88 KUB Robert Kubica 19│
+ │││ 10 glock \N GLO Timo Glock 19│
+ │││ 11 sato \N SAT Takuma Sato 19│
+ │││ 12 piquet_jr \N PIQ Nelson Piquet Jr. 19│
+ │││ 13 massa 19 MAS Felipe Massa 19│
+ │││▊│
+ ╰────────────────────────────╯╰────────────────────────────────────────────────────────────────────────────────────────╯
+ ^q Quit f1 Help f8 History
@@ -452,191 +452,191 @@
font-weight: 700;
}
- .terminal-2061265411-matrix {
+ .terminal-9999999-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2061265411-title {
+ .terminal-9999999-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2061265411-r1 { fill: #777777 }
- .terminal-2061265411-r2 { fill: #c5c8c6 }
- .terminal-2061265411-r3 { fill: #dfdfdf }
- .terminal-2061265411-r4 { fill: #858585 }
- .terminal-2061265411-r5 { fill: #feffac;font-weight: bold }
- .terminal-2061265411-r6 { fill: #dddddd }
- .terminal-2061265411-r7 { fill: #1d1d1d }
- .terminal-2061265411-r8 { fill: #212116;font-weight: bold }
- .terminal-2061265411-r9 { fill: #feffac }
- .terminal-2061265411-r10 { fill: #777777;font-weight: bold }
- .terminal-2061265411-r11 { fill: #08211a }
- .terminal-2061265411-r12 { fill: #45ffca;font-weight: bold }
- .terminal-2061265411-r13 { fill: #45ffca }
+ .terminal-9999999-r1 { fill: #777777 }
+ .terminal-9999999-r2 { fill: #c5c8c6 }
+ .terminal-9999999-r3 { fill: #dfdfdf }
+ .terminal-9999999-r4 { fill: #858585 }
+ .terminal-9999999-r5 { fill: #feffac;font-weight: bold }
+ .terminal-9999999-r6 { fill: #dddddd }
+ .terminal-9999999-r7 { fill: #1d1d1d }
+ .terminal-9999999-r8 { fill: #212116;font-weight: bold }
+ .terminal-9999999-r9 { fill: #feffac }
+ .terminal-9999999-r10 { fill: #777777;font-weight: bold }
+ .terminal-9999999-r11 { fill: #08211a }
+ .terminal-9999999-r12 { fill: #45ffca;font-weight: bold }
+ .terminal-9999999-r13 { fill: #45ffca }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+