MagicStack / MagicStack/asyncpg

[Feature Request]Adding compatibility support for KingbaseES

Open
#1,318 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.1k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Hi asyncpg maintainers,

  I am writing to propose adding support for KingbaseES, a widely used database in China that is highly compatible with the PostgreSQL wire protocol. I plan to contribute and maintain this adaptation over the next 2 months.

 To ensure the performance and stability of asyncpg remain unaffected, I will follow these principles:
 1.Non-Invasive Implementation: I will not modify the Cython-based protocol parser (asyncpg/protocol/). The changes will be isolated to Authentication tweaks and Type Introspection SQL adjustments (handling minor pg_catalog differences).
 2.Strict Testing: I will run the full asyncpg test suite against KingbaseES and add dedicated integration tests for any variant-specific edge cases.
 3.Maintenance Commitment: I fully understand the burden of supporting variants. I commit to taking long-term ownership of Kingbase-related issues to keep the driver up-to-date.

 I have already verified basic connections locally. Would the community be open to accepting a Pull Request for this? Also, do you prefer handling such variants via automatic detection (server version) or explicit connection flags?
 Thank you for your incredible work on this high-performance driver!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing asyncpg/protocol/ and the existing Authentication and Type Introspection SQL paths to identify the PostgreSQL assumptions relevant to KingbaseES. Compare those paths with the reported pg_catalog differences and decide whether server-version detection or an explicit connection flag is appropriate. Done means basic connections work, variant-specific integration tests pass, and the full asyncpg test suite remains stable against KingbaseES.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgresql, python
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.