Metadata-Version: 2.5
Name: harlequin-odbc-vertica
Version: 0.1.1
Summary: A Harlequin adapter for Vertica via ODBC, fixing catalog and column metadata issues.
Project-URL: Repository, https://github.com/clang-engineer/harlequin-odbc-vertica
Project-URL: Issues, https://github.com/clang-engineer/harlequin-odbc-vertica/issues
Author: clang-engineer
License-Expression: MIT
License-File: LICENSE
Keywords: database,harlequin,odbc,sql,vertica
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Requires-Python: >=3.10
Requires-Dist: harlequin-odbc>=0.4.0
Requires-Dist: harlequin<3,>=1.25
Description-Content-Type: text/markdown

# harlequin-odbc-vertica

[![PyPI](https://img.shields.io/pypi/v/harlequin-odbc-vertica)](https://pypi.org/project/harlequin-odbc-vertica/)
[![CI](https://github.com/clang-engineer/harlequin-odbc-vertica/actions/workflows/ci.yml/badge.svg)](https://github.com/clang-engineer/harlequin-odbc-vertica/actions/workflows/ci.yml)

A [Harlequin](https://harlequin.sh) adapter for [Vertica](https://www.vertica.com/) via ODBC.

This adapter extends `harlequin-odbc` to fix Vertica-specific issues with catalog and column metadata retrieval.

## Problem

The standard `harlequin-odbc` adapter has two issues when used with Vertica:

1. **Empty Data Catalog**: Vertica's ODBC driver returns `None` for catalog names, causing all tables to be filtered out.
2. **Column listing error**: Vertica's ODBC driver does not support the `catalog` parameter in `SQLColumns`, resulting in `HYC00` errors.

## Solution

`harlequin-odbc-vertica` overrides two methods in the ODBC adapter:

- `_list_tables`: Uses `SELECT current_database()` as a fallback when the catalog name is `None`.
- `_list_columns_in_relation`: Omits the `catalog` parameter when calling `pyodbc.Cursor.columns()`.

## Installation

```bash
pip install harlequin-odbc-vertica
```

Or with `uv`:

```bash
uv tool install harlequin --with harlequin-odbc-vertica
```

### Prerequisites

You need:

- [Harlequin](https://harlequin.sh) installed
- An ODBC driver manager (`unixodbc` on macOS/Linux)
- The [Vertica ODBC driver](https://www.vertica.com/download/vertica/odbc-driver/) installed and registered in `odbcinst.ini`

## Usage

```bash
harlequin -a odbc-vertica 'DRIVER={Vertica};SERVER=your-server;PORT=5433;DATABASE=your-db;UID=user;PWD=password'
```

## License

MIT
