Bit objects not supported with Psycopg 2 and pg8000
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 72/100
Direção de pesquisa
Comece lendo os padrões existentes de HalfvecAdapter e register_out_adapter e, em seguida, confira como os adaptadores de Vector, HalfVector e SparseVector são testados para Psycopg 2 e pg8000. Adicione uma adaptação de texto equivalente para Bit nos dois drivers; o trabalho estará concluído quando os dois exemplos de consulta aceitarem Bit('101') e o valor do pg8000 for tratado como a string de bits pretendida.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Python
- Estrelas
- 1.5k
- Forks
- 100
- Merge médio
- 13min
- PRs com merge (30d)
- 1
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de pgvector/pgvector-python
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
pgvector/pgvector-python#168 ·
Todas as issues de pgvector/pgvector-python
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
zach-blumenfeld/aip#13 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
nathanmarlor/foxess_modbus#1287 ·
Mantenedores costumam responder em até 4 dias
-
bug good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
OpenLakeForge/openlakeforge#498 ·
Mantenedores costumam responder em até 1 dia
-
good first issue hacktoberfest help wanted python
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 69/100
pollen-robotics/reachy_mini#1493 ·
Mantenedores costumam responder em até 1 dia