示例#1
0
    async def execute(self, query: ClauseElement) -> None:
        query, args = compile(query, dialect=self.dialect)

        conn = await self.acquire_connection()
        try:
            await conn.execute(query, *args)
        finally:
            await self.release_connection()
示例#2
0
    async def fetchone(self, query: ClauseElement) -> typing.Any:
        query, args = compile(query, dialect=self.dialect)

        conn = await self.acquire_connection()
        try:
            return await conn.fetchrow(query, *args)
        finally:
            await self.release_connection()
示例#3
0
 async def executemany(self, query: ClauseElement, values: list) -> None:
     conn = await self.acquire_connection()
     try:
         # asyncpg uses prepared statements under the hood, so we just
         # loop through multiple executes here, which should all end up
         # using the same prepared statement.
         for item in values:
             single_query = query.values(item)
             single_query, args = compile(single_query,
                                          dialect=self.dialect)
             await conn.execute(single_query, *args)
     finally:
         await self.release_connection()