Skip to content

Proposal: write support for the JDBC data source #2164

Description

@ErikBPF

Problem

The JDBC data source is read-only (connectorX). There is no way to df.write from Sail.

Proposal

Add a DataSourceArrowWriter to the same source. PostgreSQL uses Arrow-native ADBC adbc_ingest; MySQL and SQL Server use a SQLAlchemy fallback (no ADBC ingest driver exists for them). Supports append and overwrite (staging-swap).

Open questions for maintainers

  1. Dependencies — the write path adds adbc-driver-postgresql, psycopg, sqlalchemy, pandas to the pysail[jdbc] extra; the MySQL/SQL Server DBAPI drivers (pymysql / pymssql) are installed by the user. Acceptable?
  2. Overwrite semantics — PostgreSQL offers atomic (staging DROP+RENAME) and truncate; other dialects use a DELETE + INSERT … SELECT swap. Reasonable?
  3. Dialect scope — PostgreSQL / MySQL / SQL Server to start, more via SQLAlchemy later. OK?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions