Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Bit objects not supported with Psycopg 2 and pg8000

Ouverte Adaptée aux débutants
#169 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
postgresql, python
Domaine
database

Piste de recherche

Commencez par lire les modèles existants de HalfvecAdapter et register_out_adapter, puis vérifiez comment les adaptateurs de Vector, HalfVector et SparseVector sont testés pour Psycopg 2 et pg8000. Ajoutez une adaptation de texte équivalente pour Bit dans les deux pilotes ; le travail est terminé lorsque les deux exemples de requête acceptent Bit('101') et que la valeur pg8000 est traitée comme la chaîne de bits attendue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Hi, pgvector.Bit works as a query parameter with Psycopg 3 (it registers a dumper), but not with Psycopg 2 or pg8000:

cur.execute('SELECT %s::bit(3)', (Bit('101'),))       # psycopg2: ProgrammingError: can't adapt type 'Bit'
conn.run('SELECT CAST(:b AS bit(3))', b=Bit('101'))   # pg8000: "i" is not a valid binary digit

Passing to_text() works, but it's inconsistent with Vector/HalfVector/SparseVector, which both drivers adapt. The pg8000 case is a bit worse since it sends the wrong value rather than raising a clear error.

For both drivers this is a small text adapter (same pattern as HalfvecAdapter / register_out_adapter); happy to open a PR if you'd like. (asyncpg left out on purpose, per #110.)

Tested with main (b5d9b70), Postgres 17, pgvector master.

Langage dominant
Python
Étoiles
1.5k
Forks
100
Merge moyen
13 min
PR mergées (30 j)
1

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de pgvector/pgvector-python

Toutes les issues de pgvector/pgvector-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.