@@ -416,7 +416,7 @@ def __init__(
416416        self ._first_chunk_time  =  None 
417417
418418        self ._log_max_query_length  =  connection .log_max_query_length 
419-         self ._inner_cursor : SnowflakeCursor  |  None  =  None 
419+         self ._inner_cursor : SnowflakeCursorBase  |  None  =  None 
420420        self ._prefetch_hook  =  None 
421421        self ._rownumber : int  |  None  =  None 
422422
@@ -1722,20 +1722,31 @@ def wait_until_ready() -> None:
17221722            # Unset this function, so that we don't block anymore 
17231723            self ._prefetch_hook  =  None 
17241724
1725-             if  (
1726-                 self ._inner_cursor ._total_rowcount  ==  1 
1727-                 and  self ._inner_cursor .fetchall ()
1728-                 ==  [("Multiple statements executed successfully." ,)]
1725+             if  self ._inner_cursor ._total_rowcount  ==  1  and  _is_successful_multi_stmt (
1726+                 self ._inner_cursor .fetchall ()
17291727            ):
17301728                url  =  f"/queries/{ sfqid }  
17311729                ret  =  self ._connection .rest .request (url = url , method = "get" )
17321730                if  "data"  in  ret  and  "resultIds"  in  ret ["data" ]:
17331731                    self ._init_multi_statement_results (ret ["data" ])
17341732
1733+         def  _is_successful_multi_stmt (rows : list [Any ]) ->  bool :
1734+             if  len (rows ) !=  1 :
1735+                 return  False 
1736+             row  =  rows [0 ]
1737+             if  isinstance (row , tuple ):
1738+                 return  row  ==  ("Multiple statements executed successfully." ,)
1739+             elif  isinstance (row , dict ):
1740+                 return  row  ==  {
1741+                     "multiple statement execution" : "Multiple statements executed successfully." 
1742+                 }
1743+             else :
1744+                 return  False 
1745+ 
17351746        self .connection .get_query_status_throw_if_error (
17361747            sfqid 
17371748        )  # Trigger an exception if query failed 
1738-         self ._inner_cursor  =  SnowflakeCursor (self .connection )
1749+         self ._inner_cursor  =  self . __class__ (self .connection )
17391750        self ._sfqid  =  sfqid 
17401751        self ._prefetch_hook  =  wait_until_ready 
17411752
0 commit comments