Skip to content

feat: add exasol, impala, materialize, risingwave, druid dialects to IbisBackend#85

Merged
discreteds merged 2 commits into
developfrom
feature/remaining-sql-dialects
May 12, 2026
Merged

feat: add exasol, impala, materialize, risingwave, druid dialects to IbisBackend#85
discreteds merged 2 commits into
developfrom
feature/remaining-sql-dialects

Conversation

@discreteds

Copy link
Copy Markdown
Member

Summary

Adds the 5 remaining SQL-based ibis backends, completing full coverage of all server-based ibis dialects:

Dialect Port Auth Notable
Exasol 8563 PasswordAuth Timezone parameter
Impala 21050 PasswordAuth, NoAuth Auth mechanism enum (NOSASL/PLAIN/GSSAPI/LDAP), Kerberos support
Materialize 6875 PasswordAuth, NoAuth Postgres-like + cluster param for streaming SQL
RisingWave 5432 PasswordAuth, NoAuth Postgres-compatible streaming SQL
Druid 8082 PasswordAuth, NoAuth REST-based SQL, ENDPOINT_PATH + SCHEME params

Brings total dialect count from 15 → 20. All use KWARGS connection mode with no custom adapters.

Note: Druid uses ENDPOINT_PATH instead of PATH to avoid collision with the system PATH environment variable in pydantic settings.

Stacks on: #84 (SingleStoreDB dialect)

Changes

  • core/constants.py — 5 new entries in provider type, backend, and prefix enums
  • core/settings/{exasol,impala,materialize,risingwave,druid}.py — Settings classes
  • core/settings/__init__.py — Wire up exports
  • backends/ibis/dialects/_registry.py — 5 connection builders + DialectSpec entries
  • pyproject.toml — 5 optional extras
  • tests/ — 33 new unit tests across 5 test files, registry count 15 → 20

Test plan

  • All 413 tests pass (5 pre-existing skips)
  • 33 new tests across 5 dialects pass
  • Dialect registry count test updated and passing
  • Manual testing against live instances (not available locally)

🤖 Generated with Claude Code

discreteds and others added 2 commits May 11, 2026 10:24
Registers SingleStoreDB as the 15th supported dialect. MySQL-compatible
connection model with added driver protocol selector (mysql/http/https)
and local_infile parameter. No adapter needed — all params map directly
via driver_key.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Registers 5 remaining SQL-based ibis backends, bringing the total to 20
supported dialects. All follow the established DialectSpec + BackendDescriptor
pattern with no custom adapters needed.

Notable: Druid uses ENDPOINT_PATH (not PATH) to avoid collision with the
system PATH environment variable in pydantic settings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@discreteds discreteds merged commit 147c96d into develop May 12, 2026
5 of 6 checks passed
@discreteds discreteds deleted the feature/remaining-sql-dialects branch May 12, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant