Cassandra and ScyllaDB driver for the Linux app · Issue #3644 · TableProApp/TablePro · GitHub
Skip to content

Cassandra and ScyllaDB driver for the Linux app #3644

Closed

Description

@datlechin

Problem

The Linux app has no Cassandra or ScyllaDB driver (linux/README.md, Status), while the macOS app opens both through its plugin.

linux/ROADMAP.md, Backlog, More engines lists Cassandra and ScyllaDB with the client, scylla 1.x with rustls-023, and no condition.

CQL looks like SQL but behaves differently in the places the contract leans on (linux/docs/adding-drivers.md): no transactions, writes that are upserts, paging by the server's paging state instead of OFFSET or a key seek, and no message to cancel a request the server is running.

Proposed solution

  • A crates/drivers/cassandra crate on scylla 1.x with rustls and aws-lc-rs, reached through the app's transport. Through an SSH tunnel, pin the driver to the one forwarded node, since other nodes advertise addresses the tunnel does not reach.
  • A SqlGrammar variant for CQL, with its cases in crates/core/tests/script_corpus.rs (adding-drivers.md, section 7).
  • Capabilities that say what the engine does: StatementByStatement writes, Unavailable commit resolution, and a read-only mode the app enforces.
  • Page tables with the server's paging state, and require the full primary key for a row edit or delete.
  • Decide how the contract's stop rule applies to CQL, which has no cancel request: stop reading and drop the request, and say in the driver's page that the server runs it to its own timeout.
  • The sidebar lists keyspaces, tables and materialized views; Show CREATE TABLE uses the server's schema tables.
  • The conformance suites, a Docker fixture for Cassandra and one for ScyllaDB, and a page in linux/docs/drivers/.

Done means: a Cassandra and a ScyllaDB connection list keyspaces, page a table and edit a row by its key, and the adding-drivers.md checklist is complete.

Alternatives considered

No response

Platform

Linux

Related database type

Cassandra

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions