- Notifications
You must be signed in to change notification settings - Fork 150
Closed
Labels
bugDescribes a bug in the system.Describes a bug in the system.
Description
Describe the bug
A TypeError when passed integer to literal()
To Reproduce
import os import asyncio from gino import Gino from sqlalchemy import Integer db = Gino() async def main(): await db.set_bind('FILLME') query = db.select([ db.literal(1, type_=Integer).label('test') ], bind=db) print(await query.gino.all()) await db.pop_bind().close() asyncio.get_event_loop().run_until_complete(main())Expected result
Expect to get an equivalent of this:
database=> select 1::int as test; test ------ 1 (1 row) Actual result
Traceback (most recent call last): File "asyncpg/protocol/prepared_stmt.pyx", line 155, in asyncpg.protocol.protocol.PreparedStatementState._encode_bind_msg File "asyncpg/protocol/codecs/base.pyx", line 193, in asyncpg.protocol.protocol.Codec.encode File "asyncpg/protocol/codecs/base.pyx", line 104, in asyncpg.protocol.protocol.Codec.encode_scalar File "asyncpg/pgproto/./codecs/text.pyx", line 29, in asyncpg.pgproto.pgproto.text_encode File "asyncpg/pgproto/./codecs/text.pyx", line 12, in asyncpg.pgproto.pgproto.as_pg_string_and_size TypeError: expected str, got int The above exception was the direct cause of the following exception: Traceback (most recent call last): File "test_gino.py", line 18, in <module> asyncio.get_event_loop().run_until_complete(main()) File "lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete return future.result() File "test_gino.py", line 13, in main print(await query.gino.all()) File "lib/python3.9/site-packages/gino/api.py", line 127, in all return await self._query.bind.all(self._query, *multiparams, **params) File "lib/python3.9/site-packages/gino/api.py", line 472, in all return await self.bind.all(clause, *multiparams, **params) File "lib/python3.9/site-packages/gino/engine.py", line 740, in all return await conn.all(clause, *multiparams, **params) File "lib/python3.9/site-packages/gino/engine.py", line 316, in all return await result.execute() File "lib/python3.9/site-packages/gino/dialects/base.py", line 214, in execute rows = await cursor.async_execute( File "lib/python3.9/site-packages/gino/dialects/asyncpg.py", line 184, in async_execute result, stmt = await getattr(conn, "_do_execute")(query, executor, timeout) File "lib/python3.9/site-packages/asyncpg/connection.py", line 1711, in _do_execute result = await executor(stmt, None) File "asyncpg/protocol/protocol.pyx", line 183, in bind_execute File "asyncpg/protocol/prepared_stmt.pyx", line 171, in asyncpg.protocol.protocol.PreparedStatementState._encode_bind_msg asyncpg.exceptions.DataError: invalid input for query argument $1: 1 (expected str, got int) Environment (please complete the following information):
- GINO: 1.0.1
- SQLAlchemy: 1.3.24
- Asyncpg: 0.24
Metadata
Metadata
Assignees
Labels
bugDescribes a bug in the system.Describes a bug in the system.