Avoiding introspection queries for built-in array types

Aperta
#1,272 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
postgresql, python
Ambito
databases

Direzione di ricerca

Inizia da asyncpg/protocol/codecs/array.pyx, in particolare da init_array_codecs e dalle righe collegate intorno a 861-875. Esamina come vengono inizializzati _oid e _text, quindi valuta i tipi di array integrati elencati e se includerli evita le query di introspezione senza gli svantaggi sollevati nell'issue. Il lavoro è completato quando sono disponibili una decisione chiara e una modifica appropriata o una motivazione documentata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Hi, and thanks for all the work on asyncpg! 👋

I’ve noticed that fresh connections usually emit introspection queries even for statements involving simple arrays of integers.

Looking at the code in init_array_codecs, asyncpg seems to initialize only the core codecs for _oid and _text (as mentioned in the comment, “to make type introspection query work”).

https://github.com/MagicStack/asyncpg/blob/5b14653e0b447d956aa01ec658562138e19f0293/asyncpg/protocol/codecs/array.pyx#L861-L875

I was wondering: was there a particular reason that asyncpg doesn’t include more built-in types there? From my perspective, types like _int2, _int4, _int8, _float4, _float8, _bool, and _char are very commonly used in queries. Including them might avoid a lot of introspection queries on new connections.

Is this something that could be considered, or are there trade-offs I might be missing?

Lingua principale
Python
Stelle
8.1k
Fork
469
Merge medio
4h 42m
PR unite (30g)
6

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MagicStack/asyncpg

Tutte le issue di MagicStack/asyncpg

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.