MagicStack / MagicStack/asyncpg

[Feature Request]Adding compatibility support for KingbaseES

Offen
#1,318 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
8.1k
Forks
468
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Durchsicht von asyncpg/protocol/ und der vorhandenen SQL-Pfade für Authentication und Type Introspection, um die für KingbaseES relevanten PostgreSQL-Annahmen zu ermitteln. Vergleiche diese Pfade mit den gemeldeten Unterschieden in pg_catalog und entscheide, ob die Erkennung der Serverversion oder ein explizites Verbindungs-Flag angemessen ist. Als abgeschlossen gilt die Aufgabe, wenn grundlegende Verbindungen funktionieren, variantenspezifische Integrationstests bestehen und die vollständige asyncpg-Testsuite mit KingbaseES weiterhin stabil bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
postgresql, python
Bereich
databases
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.