Skip to content

Community db drivers #3435

Description

@SockworkOrange

I very much like the WASM plugin based approach of supporting different programming languages.

I was wondering if there is any thought of applying that same logic to db drivers - it would be awesome, and would integrate much better with existing SQL parsing tooling.

In that context but a slightly different question - does SQLC welcome community contributions of new SQL engines?

Activity

  1. kyleconroy commented on Jun 11, 2024

    @kyleconroy
    Collaborator

    I very much like the WASM plugin based approach of supporting different programming languages.

    I do too! The interface has worked out well for the project. I'm hoping that as WASI Preview 2 support lands in more places we'll be able to offer a much richer plugin interface to address some of the limitations. See #3433 for a good list.

    does SQLC welcome community contributions of new SQL engines?

    Sadly, the answer right now is no. It's not because I don't want to.

    The first issue is that I have big plans for the database driver interface over the next six months. Our current database-backed analyzer is tacked onto our existing analyzer. I want to switch to a pure database analyzer, which will improve accuracy and solve many of our open bugs.

    However, until that switch is made, I don't want to add additional database drivers.

    The second issue is about WASM. Codegen plugins work because they don't need to talk to the network. WASM doesn't have good support for talking to databases yet, and until wazero / go-wasmtime do, we'd have to only support process-based plugins, which are difficult to distribute.

  2. locked and limited conversation to collaborators on Jun 11, 2024
  3. converted this issue into a discussion #3436 on Jun 11, 2024
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions