Closed
Description
- asyncpg version: 0.11
- PostgreSQL version: 9.5.4_1
- Python version: 3.6
- Platform: Sanic
- Do you use pgbouncer?: No
- Did you install asyncpg with pip?: yes
Trying to overwrite the type conversion:
await connection.set_builtin_type_codec(typename='uuid', schema='pg_catalog', codec_name='char')
ValueError
cannot override codec for type 2950
Traceback (most recent call last):
File /Users/konstruktor/Documents/development/sparkline/env/lib/python3.6/site-packages/sanic/app.py, line 471, in handle_request
response = await response
File /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/coroutines.py, line 109, in __next__
return self.gen.send(None)
File app.py, line 79, in results
await connection.set_builtin_type_codec(typename='uuid', schema='pg_catalog', codec_name='char')
File /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/coroutines.py, line 109, in __next__
return self.gen.send(None)
File /Users/konstruktor/Documents/development/sparkline/env/lib/python3.6/site-packages/asyncpg/connection.py, line 806, in set_builtin_type_codec
oid, typename, schema, 'scalar', codec_name)
File asyncpg/protocol/settings.pyx, line 40, in asyncpg.protocol.protocol.ConnectionSettings.set_builtin_type_codec (asyncpg/protocol/protocol.c:5512)
File asyncpg/protocol/settings.pyx, line 42, in asyncpg.protocol.protocol.ConnectionSettings.set_builtin_type_codec (asyncpg/protocol/protocol.c:5390)
File asyncpg/protocol/codecs/base.pyx, line 526, in asyncpg.protocol.protocol.DataCodecConfig.set_builtin_type_codec (asyncpg/protocol/protocol.c:19818)
File asyncpg/protocol/codecs/base.pyx, line 501, in asyncpg.protocol.protocol.DataCodecConfig._set_builtin_type_codec (asyncpg/protocol/protocol.c:19271)
If I use a custom python encoder decoder with uuid type - they are never called.
def uuid_encoder(value):
return str(1)
def uuid_decoder(value):
return str(1)
async with app.pool.acquire() as connection:
#await connection.set_builtin_type_codec(typename='uuid', schema='pg_catalog', codec_name='char')
await connection.set_type_codec(
typename='uuid',
encoder=uuid_encoder,
decoder=uuid_decoder,
schema='pg_catalog'
)
results = await connection.fetch('SELECT * FROM checks')
Metadata
Metadata
Assignees
Labels
No labels