@@ -93,32 +93,31 @@ async def fetch_all(
9393 self , query : typing .Union [ClauseElement , str ], values : dict = None
9494 ) -> typing .List [RowProxy ]:
9595 async with self .connection () as connection :
96- return await connection .fetch_all (query = self . _build_query ( query , values ) )
96+ return await connection .fetch_all (query , values )
9797
9898 async def fetch_one (
9999 self , query : typing .Union [ClauseElement , str ], values : dict = None
100100 ) -> RowProxy :
101101 async with self .connection () as connection :
102- return await connection .fetch_one (query = self . _build_query ( query , values ) )
102+ return await connection .fetch_one (query , values )
103103
104104 async def execute (
105105 self , query : typing .Union [ClauseElement , str ], values : dict = None
106106 ) -> typing .Any :
107107 async with self .connection () as connection :
108- return await connection .execute (self . _build_query ( query , values ) )
108+ return await connection .execute (query , values )
109109
110110 async def execute_many (
111111 self , query : typing .Union [ClauseElement , str ], values : list
112112 ) -> None :
113113 async with self .connection () as connection :
114- queries = [self ._build_query (query , values_set ) for values_set in values ]
115- return await connection .execute_many (queries )
114+ return await connection .execute_many (query , values )
116115
117116 async def iterate (
118117 self , query : typing .Union [ClauseElement , str ], values : dict = None
119118 ) -> typing .AsyncGenerator [RowProxy , None ]:
120119 async with self .connection () as connection :
121- async for record in connection .iterate (self . _build_query ( query , values ) ):
120+ async for record in connection .iterate (query , values ):
122121 yield record
123122
124123 def connection (self ) -> "Connection" :
@@ -135,19 +134,6 @@ def connection(self) -> "Connection":
135134 def transaction (self , * , force_rollback : bool = False ) -> "Transaction" :
136135 return self .connection ().transaction (force_rollback = force_rollback )
137136
138- @staticmethod
139- def _build_query (
140- query : typing .Union [ClauseElement , str ], values : dict = None
141- ) -> ClauseElement :
142- if isinstance (query , str ):
143- query = text (query )
144-
145- return query .bindparams (** values ) if values is not None else query
146- elif values :
147- return query .values (** values )
148-
149- return query
150-
151137
152138class Connection :
153139 def __init__ (self , backend : DatabaseBackend ) -> None :
@@ -179,22 +165,31 @@ async def __aexit__(
179165 if self ._connection_counter == 0 :
180166 await self ._connection .release ()
181167
182- async def fetch_all (self , query : ClauseElement ) -> typing .Any :
183- return await self ._connection .fetch_all (query = query )
168+ async def fetch_all (
169+ self , query : typing .Union [ClauseElement , str ], values : dict = None
170+ ) -> typing .Any :
171+ return await self ._connection .fetch_all (self ._build_query (query , values ))
184172
185- async def fetch_one (self , query : ClauseElement ) -> typing .Any :
186- return await self ._connection .fetch_one (query = query )
173+ async def fetch_one (
174+ self , query : typing .Union [ClauseElement , str ], values : dict = None
175+ ) -> typing .Any :
176+ return await self ._connection .fetch_one (self ._build_query (query , values ))
187177
188- async def execute (self , query : ClauseElement ) -> typing .Any :
189- return await self ._connection .execute (query )
178+ async def execute (
179+ self , query : typing .Union [ClauseElement , str ], values : dict = None
180+ ) -> typing .Any :
181+ return await self ._connection .execute (self ._build_query (query , values ))
190182
191- async def execute_many (self , queries : typing .List [ClauseElement ]) -> None :
183+ async def execute_many (
184+ self , query : typing .Union [ClauseElement , str ], values : list
185+ ) -> None :
186+ queries = [self ._build_query (query , values_set ) for values_set in values ]
192187 await self ._connection .execute_many (queries )
193188
194189 async def iterate (
195- self , query : ClauseElement
190+ self , query : typing . Union [ ClauseElement , str ], values : dict = None
196191 ) -> typing .AsyncGenerator [typing .Any , None ]:
197- async for record in self ._connection .iterate (query ):
192+ async for record in self ._connection .iterate (self . _build_query ( query , values ) ):
198193 yield record
199194
200195 def transaction (self , * , force_rollback : bool = False ) -> "Transaction" :
@@ -204,6 +199,19 @@ def transaction(self, *, force_rollback: bool = False) -> "Transaction":
204199 def raw_connection (self ) -> typing .Any :
205200 return self ._connection .raw_connection
206201
202+ @staticmethod
203+ def _build_query (
204+ query : typing .Union [ClauseElement , str ], values : dict = None
205+ ) -> ClauseElement :
206+ if isinstance (query , str ):
207+ query = text (query )
208+
209+ return query .bindparams (** values ) if values is not None else query
210+ elif values :
211+ return query .values (** values )
212+
213+ return query
214+
207215
208216class Transaction :
209217 def __init__ (self , connection : Connection , force_rollback : bool ) -> None :
0 commit comments