Skip to content

Commit 82a2528

Browse files
committed
SNOW-26262: split_statement returns a single SQL statement and a flag indicating PUT or GET command
1 parent 874bc10 commit 82a2528

File tree

4 files changed

+191
-126
lines changed

4 files changed

+191
-126
lines changed

connection.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,12 @@ def execute_string(self, sql_text,
340340
sql_text, str) else sql_text)
341341
else:
342342
stream = StringIO(sql_text)
343-
for sql in split_statements(
343+
for sql, is_put_or_get in split_statements(
344344
stream, remove_comments=remove_comments):
345345
cur = self.cursor()
346346
if return_cursors:
347347
ret.append(cur)
348-
cur.execute(sql)
348+
cur.execute(sql, _is_put_get=is_put_or_get)
349349
return ret
350350

351351
def execute_stream(self, stream,
@@ -354,10 +354,10 @@ def execute_stream(self, stream,
354354
Executes a stream of SQL statements.
355355
This is a non-standard convenient method.
356356
"""
357-
for sql in split_statements(
357+
for sql, is_put_or_get in split_statements(
358358
stream, remove_comments=remove_comments):
359359
cur = self.cursor()
360-
cur.execute(sql)
360+
cur.execute(sql, _is_put_get=is_put_or_get)
361361
yield cur
362362

363363
def __set_error_attributes(self):

cursor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def __init__(self, connection):
7575
self._total_rowcount = -1
7676
self._sequence_counter = -1
7777
self._request_id = None
78+
self._is_file_transfer = False
7879

7980
self._timestamp_output_format = None
8081
self._timestamp_ltz_output_format = None
@@ -245,7 +246,7 @@ def is_file_transfer(self):
245246
"""
246247
Is PUT or GET command?
247248
"""
248-
return self._is_file_transfer is not None
249+
return hasattr(self, '_is_file_transfer') and self._is_file_transfer
249250

250251
def callproc(self, procname, args=()):
251252
u"""
@@ -458,8 +459,8 @@ def execute(self, command, params=None, timeout=None,
458459
self._connection._role = data[u'finalRoleName']
459460

460461
# self.logger.debug(ret)
461-
self.logger.debug(u"PUT OR GET: %s", self._is_file_transfer)
462-
if self._is_file_transfer:
462+
self.logger.debug(u"PUT OR GET: %s", self.is_file_transfer)
463+
if self.is_file_transfer:
463464
sf_file_transfer_agent = SnowflakeFileTransferAgent(
464465
self, query, ret,
465466
put_callback=_put_callback,

0 commit comments

Comments
 (0)