Skip to content

Commit 8f3a4be

Browse files
SNOW-1976643: Allow creating multi-session in sprocs if enabled (#3146)
1 parent df5501a commit 8f3a4be

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

src/snowflake/snowpark/session.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,13 @@ def __init__(
557557
conn: Union[ServerConnection, MockServerConnection, NopConnection],
558558
options: Optional[Dict[str, Any]] = None,
559559
) -> None:
560-
if len(_active_sessions) >= 1 and is_in_stored_procedure():
560+
if (
561+
len(_active_sessions) >= 1
562+
and is_in_stored_procedure()
563+
and not conn._get_client_side_session_parameter(
564+
"ENABLE_CREATE_SESSION_IN_STORED_PROCS", False
565+
)
566+
):
561567
raise SnowparkClientExceptionMessages.DONT_CREATE_SESSION_IN_SP()
562568
self._conn = conn
563569
self._query_tag = None

tests/integ/test_session.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,19 @@ def test_create_session_in_sp(session):
284284
original_platform = internal_utils.PLATFORM
285285
internal_utils.PLATFORM = "XP"
286286
try:
287-
with pytest.raises(SnowparkSessionException) as exec_info:
288-
Session(session._conn)
289-
assert exec_info.value.error_code == "1410"
287+
if not session._conn._get_client_side_session_parameter(
288+
"ENABLE_CREATE_SESSION_IN_STORED_PROCS", False
289+
):
290+
with pytest.raises(SnowparkSessionException) as exec_info:
291+
Session(session._conn)
292+
assert exec_info.value.error_code == "1410"
293+
with patch.object(
294+
session._conn, "_get_client_side_session_parameter", return_value=True
295+
):
296+
try:
297+
Session(session._conn)
298+
except SnowparkSessionException as e:
299+
pytest.fail(f"Unexpected exception {e} was raised")
290300
finally:
291301
internal_utils.PLATFORM = original_platform
292302

0 commit comments

Comments
 (0)