@@ -264,6 +264,7 @@ def __init__(
264264 self ._inner_cursor : SnowflakeCursor | None = None
265265 self ._prefetch_hook = None
266266 self ._rownumber : int | None = None
267+ self ._cached_last_result : dict | None = None
267268
268269 self .reset ()
269270
@@ -542,6 +543,8 @@ def interrupt_handler(*_): # pragma: no cover
542543 self ._timebomb .cancel ()
543544 logger .debug ("cancelled timebomb in finally" )
544545
546+ self ._cached_last_result = ret
547+
545548 if "data" in ret and "parameters" in ret ["data" ]:
546549 parameters = ret ["data" ]["parameters" ]
547550 # Set session parameters for cursor object
@@ -1073,6 +1076,7 @@ def query_result(self, qid: str) -> SnowflakeCursor:
10731076 Error .errorhandler_wrapper (
10741077 self .connection , self , ProgrammingError , errvalue
10751078 )
1079+ self ._cached_last_result = ret
10761080 return self
10771081
10781082 def fetch_arrow_batches (self ) -> Iterator [Table ]:
@@ -1122,6 +1126,7 @@ def fetch_pandas_all(self, **kwargs: Any) -> DataFrame:
11221126 def abort_query (self , qid : str ) -> bool :
11231127 url = f"/queries/{ qid } /abort-request"
11241128 ret = self ._connection .rest .request (url = url , method = "post" )
1129+ self ._cached_last_result = ret
11251130 return ret .get ("success" )
11261131
11271132 def executemany (
@@ -1457,6 +1462,7 @@ def wait_until_ready() -> None:
14571462 ):
14581463 url = f"/queries/{ sfqid } /result"
14591464 ret = self ._connection .rest .request (url = url , method = "get" )
1465+ self ._cached_last_result = ret
14601466 if "data" in ret and "resultIds" in ret ["data" ]:
14611467 self ._init_multi_statement_results (ret ["data" ])
14621468
0 commit comments