MagicStack / MagicStack/asyncpg
text encoding of composite types error with schema and table name.
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 8.1k
- Forks
- 468
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
* **asyncpg version**: 0.23.0
* **PostgreSQL version**: 10.13
* **Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?**: No. I ran PG on local machine.
* **Python version**: 3.8.2
* **Platform**: MacOs catalina 10.15.7
* **Do you use pgbouncer?**: No
* **Did you install asyncpg with pip?**: Yes
* **If you built asyncpg locally, which version of Cython did you use?**: No
* **Can the issue be reproduced under both asyncio and
[uvloop](https://github.com/magicstack/uvloop)?**: Not tried
Hello!
I have table with [ltree](https://postgrespro.com/docs/enterprise/10/ltree) column:
```
create table product
(
product_id varchar(18) not null
constraint product_pkey
primary key,
category_path ltree
);
```
And trying execute this SQL query:
```
insert into product
(product_id, category_path)
(select r.product_id, r.category_path from unnest($1::product[]) as r)
```
Args:
```
[[{'category_path': 'A.B', 'product_id': '3912331'}]]
```
And i get this error:
```
File "/venv/lib/python3.8/site-packages/asyncpg/pool.py", line 530, in execute
return await con.execute(query, *args, timeout=timeout)
File "/venv/lib/python3.8/site-packages/asyncpg/connection.py", line 299, in execute
_, status, _ = await self._execute(
File "/venv/lib/python3.8/site-packages/asyncpg/connection.py", line 1623, in _execute
result, _ = await self.__execute(
File "/venv/lib/python3.8/site-packages/asyncpg/connection.py", line 1648, in __execute
return await self._do_execute(
File "/venv/lib/python3.8/site-packages/asyncpg/connection.py", line 1675, in _do_execute
stmt = await self._get_statement(
File "/venv/lib/python3.8/site-packages/asyncpg/connection.py", line 392, in _get_statement
settings.register_data_types(types)
File "asyncpg/protocol/settings.pyx", line 35, in asyncpg.protocol.protocol.ConnectionSettings.register_data_types
File "asyncpg/protocol/settings.pyx", line 36, in asyncpg.protocol.protocol.ConnectionSettings.register_data_types
File "asyncpg/protocol/codecs/base.pyx", line 506, in asyncpg.protocol.protocol.DataCodecConfig.add_types
File "asyncpg/protocol/codecs/base.pyx", line 371, in asyncpg.protocol.protocol.Codec.new_composite_codec
File "asyncpg/protocol/codecs/base.pyx", line 76, in asyncpg.protocol.protocol.Codec.init
asyncpg.exceptions._base.UnsupportedClientFeatureError: cannot decode type "public"."product": text encoding of composite types is not supported
```
But "public"."product" -- it's schema and table name.
If i create new table with `category_path` = `text` instead `ltree`, all ok.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
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.
Direção de pesquisa
Comece reproduzindo a consulta usando a coluna ltree e o tipo de produto composto; em seguida, inspecione asyncpg/protocol/settings.pyx e asyncpg/protocol/codecs/base.pyx, que aparecem no traceback. Rastreie o registro do tipo composto e verifique se o comportamento foi corrigido para este caso sem quebrar o tratamento existente de tipos compostos.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- postgresql, python
- Domínio
- databases
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 38/100