<h1 align="center">harlequin-exasol</h1>
<p align="center">
Harelequin adapter for Exasol
</p>
<p align="center">
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/pypi/l/harlequin-exasol" alt="License">
</a>
<a href="https://pypi.org/project/harlequin-exasol/">
<img src="https://img.shields.io/pypi/dm/harlequin-exasol" alt="Downloads">
</a>
<a href="https://pypi.org/project/harlequin-exasol/">
<img src="https://img.shields.io/pypi/pyversions/harlequin-exasol" alt="Supported Python Versions">
</a>
<a href="https://pypi.org/project/harlequin-exasol/">
<img src="https://img.shields.io/pypi/v/harlequin-exasol" alt="PyPi Package">
</a>
</p>
## โ ๏ธ Disclaimer
**The current state of this project is a spikeโan initial evaluation of what is possible and how much effort specific tasks will require. It should only be used for evaluating Exasol usage via Harlequin.**
**Below, you will find information if you are interested in trying it out and getting an idea of it. While issues reported beyond the mentioned limitations are welcome for tracking purposes, addressing these issues is unlikely at any point. However, having a list of issues may be helpful to other evaluators.**
## ๐ Features
* Basic Catalog
* Basic Query Completion
* Basic Query Support, including DDL
## Getting Started
### ๐๏ธ Prerequisites
- [Python](https://www.python.org/) >= 3.9
### ๐พ Installation
Install the package using `pipx`:
```shell
pipx install harlequin-exasol --include-deps
```
### โถ๏ธ Starting Harlequin
Open Harlequin and connect it to your database:
```shell
harlequin -a exasol --schema 'foo' --host '8.9.10.1' --port 8563 ...
```
For connecting to a standard [Exasol Docker DB](https://hub.docker.com/r/exasol/docker-db/), most defaults should work just fine:
```shell
harlequin -a exasol --disable-certificate-validation
```
## ๐ Documentation
> **Note:**
> For further help on the supported settings and flags, check out the `Exasol Adapter Options` section in the help provided by Harlequin:
>
> ```shell
> harlequin --help
> ```
Details about Harlequin can be found on the [official website](https://harlequin.sh):
- [Keyboard bindings](https://harlequin.sh/docs/bindings)
- [Configuration](https://harlequin.sh/docs/config-file)
- [Theming](https://harlequin.sh/docs/themes)
## ๐ Todo's
* Investigate dbapi2 issue with parameters in the prepared statement where clause (`exasol.driver.dbapi2`):
```python
schema = 'foo'
query = f"SELECT TABLE_NAME FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA='{schema}';"
cursor.execute(query)
```
vs
```python
schema = 'foo'
query = "SELECT TABLE_NAME FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA=?;"
cursor.execute(query, schema)
```
* Consider making catalog functions asynchronous to improve progress indicator updates.
* Support subcategories for system tables based on schema (`SYS`, `EXA_STATISTICS`).
* Support table details (columns) for system tables.
* Add/Update unit/integration tests.
* Add CI/CD.
* Contact the maintainer of Harlequin to mention Exasol support on the [Harlequin website](https://harlequin.sh).
Raw data
{
"_id": null,
"home_page": "https://github.com/nicoretti/harlequin-exasol",
"name": "harlequin-exasol",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "exasol, harlequin",
"author": "Nicola Coretti",
"author_email": "nicola.coretti@exasol.com",
"download_url": "https://files.pythonhosted.org/packages/00/3a/e8f79d81bb105852e7963bb5290fc07f0f2785897edc4587259b56ffb474/harlequin_exasol-0.2.0.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">harlequin-exasol</h1>\n\n<p align=\"center\">\nHarelequin adapter for Exasol\n</p>\n\n<p align=\"center\">\n\n<a href=\"https://opensource.org/licenses/MIT\">\n <img src=\"https://img.shields.io/pypi/l/harlequin-exasol\" alt=\"License\">\n</a>\n<a href=\"https://pypi.org/project/harlequin-exasol/\">\n <img src=\"https://img.shields.io/pypi/dm/harlequin-exasol\" alt=\"Downloads\">\n</a>\n<a href=\"https://pypi.org/project/harlequin-exasol/\">\n <img src=\"https://img.shields.io/pypi/pyversions/harlequin-exasol\" alt=\"Supported Python Versions\">\n</a>\n<a href=\"https://pypi.org/project/harlequin-exasol/\">\n <img src=\"https://img.shields.io/pypi/v/harlequin-exasol\" alt=\"PyPi Package\">\n</a>\n</p>\n\n\n## \u26a0\ufe0f Disclaimer\n\n**The current state of this project is a spike\u2014an initial evaluation of what is possible and how much effort specific tasks will require. It should only be used for evaluating Exasol usage via Harlequin.**\n\n**Below, you will find information if you are interested in trying it out and getting an idea of it. While issues reported beyond the mentioned limitations are welcome for tracking purposes, addressing these issues is unlikely at any point. However, having a list of issues may be helpful to other evaluators.**\n\n## \ud83d\ude80 Features\n\n* Basic Catalog\n* Basic Query Completion\n* Basic Query Support, including DDL\n\n## Getting Started\n\n### \ud83d\udd0c\ufe0f Prerequisites\n\n- [Python](https://www.python.org/) >= 3.9\n\n### \ud83d\udcbe Installation\n\nInstall the package using `pipx`:\n\n```shell\npipx install harlequin-exasol --include-deps\n```\n\n### \u25b6\ufe0f Starting Harlequin\n\nOpen Harlequin and connect it to your database:\n\n```shell\nharlequin -a exasol --schema 'foo' --host '8.9.10.1' --port 8563 ...\n```\n\nFor connecting to a standard [Exasol Docker DB](https://hub.docker.com/r/exasol/docker-db/), most defaults should work just fine:\n\n```shell\nharlequin -a exasol --disable-certificate-validation\n```\n\n## \ud83d\udcda Documentation\n\n> **Note:**\n> For further help on the supported settings and flags, check out the `Exasol Adapter Options` section in the help provided by Harlequin:\n>\n> ```shell\n> harlequin --help\n> ```\n\nDetails about Harlequin can be found on the [official website](https://harlequin.sh):\n\n- [Keyboard bindings](https://harlequin.sh/docs/bindings)\n- [Configuration](https://harlequin.sh/docs/config-file)\n- [Theming](https://harlequin.sh/docs/themes)\n\n## \ud83d\udcdd Todo's\n\n* Investigate dbapi2 issue with parameters in the prepared statement where clause (`exasol.driver.dbapi2`):\n\n ```python\n schema = 'foo'\n query = f\"SELECT TABLE_NAME FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA='{schema}';\"\n cursor.execute(query)\n ```\n\n vs\n\n ```python\n schema = 'foo'\n query = \"SELECT TABLE_NAME FROM EXA_ALL_TABLES WHERE TABLE_SCHEMA=?;\"\n cursor.execute(query, schema)\n ```\n\n* Consider making catalog functions asynchronous to improve progress indicator updates.\n* Support subcategories for system tables based on schema (`SYS`, `EXA_STATISTICS`).\n* Support table details (columns) for system tables.\n* Add/Update unit/integration tests.\n* Add CI/CD.\n* Contact the maintainer of Harlequin to mention Exasol support on the [Harlequin website](https://harlequin.sh).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Harelequin adapter for Exasol",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/nicoretti/harlequin-exasol",
"Repository": "https://github.com/nicoretti/harlequin-exasol"
},
"split_keywords": [
"exasol",
" harlequin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "42af4710d0f6f7074020104dd95af61e040eadfc61d2a40d2d8c20d30e5baedf",
"md5": "974ca784d28df8d197dda28b0defa64e",
"sha256": "9b0940037117cb9dc37cdb9e05e50ea7f6e6af87801c50ce834cc88531c06bac"
},
"downloads": -1,
"filename": "harlequin_exasol-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "974ca784d28df8d197dda28b0defa64e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 9707,
"upload_time": "2024-08-01T12:12:20",
"upload_time_iso_8601": "2024-08-01T12:12:20.914340Z",
"url": "https://files.pythonhosted.org/packages/42/af/4710d0f6f7074020104dd95af61e040eadfc61d2a40d2d8c20d30e5baedf/harlequin_exasol-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "003ae8f79d81bb105852e7963bb5290fc07f0f2785897edc4587259b56ffb474",
"md5": "0d97687a3f996187e4f5287f33623efa",
"sha256": "29c51387996a8cd02d3f93b936249c079115203077bcc428ac401061f648ce99"
},
"downloads": -1,
"filename": "harlequin_exasol-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "0d97687a3f996187e4f5287f33623efa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 9098,
"upload_time": "2024-08-01T12:12:22",
"upload_time_iso_8601": "2024-08-01T12:12:22.552349Z",
"url": "https://files.pythonhosted.org/packages/00/3a/e8f79d81bb105852e7963bb5290fc07f0f2785897edc4587259b56ffb474/harlequin_exasol-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-01 12:12:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nicoretti",
"github_project": "harlequin-exasol",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "harlequin-exasol"
}