@@ -558,7 +558,10 @@ def _deallocate_prepared_statement(self, statement_name: str) -> None:
558558 def _generate_unique_statement_name (self ):
559559 return 'st_' + uuid .uuid4 ().hex .replace ('-' , '' )
560560
561- def execute (self , operation , params = None ):
561+ def execute (self , operation , params = None , ** kwargs : Any ):
562+ additional_http_headers = kwargs .get ("additional_http_headers" , None )
563+ deferred_fetch = kwargs .get ("deferred_fetch" , False )
564+
562565 if params :
563566 assert isinstance (params , (list , tuple )), (
564567 'params must be a list or tuple containing the query '
@@ -575,7 +578,10 @@ def execute(self, operation, params=None):
575578 self ._query = self ._execute_prepared_statement (
576579 statement_name , params
577580 )
578- self ._iterator = iter (self ._query .execute ())
581+ self ._iterator = iter (self ._query .execute (
582+ additional_http_headers = additional_http_headers ,
583+ deferred_fetch = deferred_fetch ,
584+ ))
579585 finally :
580586 # Send deallocate statement
581587 # At this point the query can be deallocated since it has already
@@ -584,12 +590,18 @@ def execute(self, operation, params=None):
584590 self ._deallocate_prepared_statement (statement_name )
585591 else :
586592 self ._query = self ._execute_immediate_statement (operation , params )
587- self ._iterator = iter (self ._query .execute ())
593+ self ._iterator = iter (self ._query .execute (
594+ additional_http_headers = additional_http_headers ,
595+ deferred_fetch = deferred_fetch ,
596+ ))
588597
589598 else :
590599 self ._query = trino .client .TrinoQuery (self ._request , query = operation ,
591600 legacy_primitive_types = self ._legacy_primitive_types )
592- self ._iterator = iter (self ._query .execute ())
601+ self ._iterator = iter (self ._query .execute (
602+ additional_http_headers = additional_http_headers ,
603+ deferred_fetch = deferred_fetch ,
604+ ))
593605 return self
594606
595607 def executemany (self , operation , seq_of_params ):
0 commit comments