Skip to content

Commit ce66dbb

Browse files
committed
Merge branch 'main' of github.com:snowflakedb/snowpark-python into bkogan-decfloat
2 parents c85c197 + 03d045e commit ce66dbb

File tree

5 files changed

+40
-19
lines changed

5 files changed

+40
-19
lines changed

ci/snyk/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
setuptools>=40.6.0
22
wheel
33
cloudpickle>=1.6.0,<=3.1.1,!=2.1.0,!=2.2.0
4-
snowflake-connector-python>=3.17.0,<5.0.0
4+
snowflake-connector-python>=4.0.0,<5.0.0
55
typing-extensions>=4.1.0,<5.0.0

tests/integ/test_stored_procedure.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,9 @@ def return_all_datatypes(
983983
reason="session.sql not supported in local testing",
984984
)
985985
def test_register_sp_with_preserve_parameter_names(session, resources_path):
986+
sp_pow_name = Utils.random_name_for_temp_object(TempObjectType.PROCEDURE)
987+
mod5_name = Utils.random_name_for_temp_object(TempObjectType.PROCEDURE)
988+
986989
def sp_pow(session_, x, y):
987990
return (
988991
session_.create_dataframe([[x, y]])
@@ -993,7 +996,7 @@ def sp_pow(session_, x, y):
993996

994997
pow_sp = sproc(
995998
sp_pow,
996-
name="sp_pow",
999+
name=sp_pow_name,
9971000
return_type=DoubleType(),
9981001
input_types=[IntegerType(), IntegerType()],
9991002
preserve_parameter_names=True,
@@ -1003,7 +1006,7 @@ def sp_pow(session_, x, y):
10031006
mod5_sp = session.sproc.register_from_file(
10041007
test_files.test_sp_py_file,
10051008
"mod5",
1006-
name="mod5",
1009+
name=mod5_name,
10071010
return_type=IntegerType(),
10081011
input_types=[IntegerType()],
10091012
preserve_parameter_names=True,
@@ -1012,8 +1015,8 @@ def sp_pow(session_, x, y):
10121015
assert pow_sp(2, 10) == 1024
10131016
assert mod5_sp(3) == 3
10141017
# assert parameter names preserved by issuing a SQL CALL with named arguments
1015-
assert session.sql("call sp_pow(y=>3, x=>2)").collect()[0][0] == 8
1016-
assert session.sql("call mod5(x=>3)").collect()[0][0] == 3
1018+
assert session.sql(f"call {sp_pow_name}(y=>3, x=>2)").collect()[0][0] == 8
1019+
assert session.sql(f"call {mod5_name}(x=>3)").collect()[0][0] == 3
10171020

10181021

10191022
@pytest.mark.xfail(

tests/integ/test_udaf.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,9 @@ def finish(self):
747747

748748

749749
def test_register_udaf_with_preserve_parameter_names(session, resources_path):
750+
sum_udaf_name = Utils.random_name_for_temp_object(TempObjectType.AGGREGATE_FUNCTION)
751+
my_udaf_name = Utils.random_name_for_temp_object(TempObjectType.AGGREGATE_FUNCTION)
752+
750753
class PythonSumUDAFHandler:
751754
def __init__(self) -> None:
752755
self._sum = 0
@@ -766,24 +769,26 @@ def finish(self):
766769

767770
sum_udaf = udaf(
768771
PythonSumUDAFHandler,
769-
name="sum_udaf",
772+
name=sum_udaf_name,
770773
return_type=IntegerType(),
771774
input_types=[IntegerType(), IntegerType()],
772775
preserve_parameter_names=True,
773776
)
774777
df = session.create_dataframe([[1, 3], [1, 4], [2, 5], [2, 6]]).to_df("a", "b")
775778
Utils.check_answer(df.agg(sum_udaf("a", "b")), [Row(24)])
776-
describe_udaf = session.sql("describe function sum_udaf(int, int)").collect()
779+
describe_udaf = session.sql(
780+
f"describe function {sum_udaf_name}(int, int)"
781+
).collect()
777782
assert describe_udaf[0][1] == "(INPUT_VALUE1 NUMBER, INPUT_VALUE2 NUMBER)"
778783

779784
test_files = TestFiles(resources_path)
780785
session.udaf.register_from_file(
781786
test_files.test_udaf_py_file,
782787
"MyUDAFWithTypeHints",
783-
name="my_udaf",
788+
name=my_udaf_name,
784789
input_types=[IntegerType()],
785790
return_type=IntegerType(),
786791
preserve_parameter_names=True,
787792
)
788-
describe_udaf = session.sql("describe function my_udaf(int)").collect()
793+
describe_udaf = session.sql(f"describe function {my_udaf_name}(int)").collect()
789794
assert describe_udaf[0][1] == "(INPUT_VALUE NUMBER)"

tests/integ/test_udf.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,9 +1218,13 @@ def return_all_datatypes(
12181218
reason="session.sql not supported in local testing",
12191219
)
12201220
def test_register_udf_with_preserve_parameter_names(session, resources_path):
1221+
pow_udf_name = Utils.random_name_for_temp_object(TempObjectType.FUNCTION)
1222+
pow_udf_name2 = Utils.random_name_for_temp_object(TempObjectType.FUNCTION)
1223+
mod5_name = Utils.random_name_for_temp_object(TempObjectType.FUNCTION)
1224+
12211225
pow_udf = udf(
12221226
lambda x, y: x**y,
1223-
name="pow_udf",
1227+
name=pow_udf_name,
12241228
return_type=DoubleType(),
12251229
input_types=[IntegerType(), IntegerType()],
12261230
preserve_parameter_names=True,
@@ -1232,7 +1236,7 @@ def test_register_udf_with_preserve_parameter_names(session, resources_path):
12321236
mod5_udf = session.udf.register_from_file(
12331237
test_files.test_udf_py_file,
12341238
"mod5",
1235-
name="mod5",
1239+
name=mod5_name,
12361240
return_type=IntegerType(),
12371241
input_types=[IntegerType()],
12381242
preserve_parameter_names=True,
@@ -1245,7 +1249,7 @@ def test_register_udf_with_preserve_parameter_names(session, resources_path):
12451249
Row(0, 1),
12461250
],
12471251
)
1248-
assert session.sql("select mod5(x=>2)").collect()[0][0] == 2
1252+
assert session.sql(f"select {mod5_name}(x=>2)").collect()[0][0] == 2
12491253

12501254
Utils.check_answer(
12511255
df.select(pow_udf(col("a"), "b"), "b"),
@@ -1254,16 +1258,16 @@ def test_register_udf_with_preserve_parameter_names(session, resources_path):
12541258
Row(15625.0, 6),
12551259
],
12561260
)
1257-
assert session.sql("select pow_udf(y=>3, x=>2)").collect()[0][0] == 8
1261+
assert session.sql(f"select {pow_udf_name}(y=>3, x=>2)").collect()[0][0] == 8
12581262

12591263
# without preserve_parameter_names, it should use arg1 and arg2 as parameter names
12601264
udf(
12611265
lambda x, y: x**y,
1262-
name="pow_udf2",
1266+
name=pow_udf_name2,
12631267
return_type=DoubleType(),
12641268
input_types=[IntegerType(), IntegerType()],
12651269
)
1266-
assert session.sql("select pow_udf2(arg2=>3, arg1=>2)").collect()[0][0] == 8
1270+
assert session.sql(f"select {pow_udf_name2}(arg2=>3, arg1=>2)").collect()[0][0] == 8
12671271

12681272

12691273
@pytest.mark.xfail(

tests/integ/test_udtf.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,16 @@ def process(
361361

362362

363363
def test_register_udtf_with_preserve_parameter_names(session, resources_path):
364+
udtf_echo_name = Utils.random_name_for_temp_object(TempObjectType.TABLE_FUNCTION)
365+
generator_udtf_name = Utils.random_name_for_temp_object(
366+
TempObjectType.TABLE_FUNCTION
367+
)
368+
364369
@udtf(
365370
output_schema=["a", "b"],
366371
input_types=[IntegerType(), IntegerType()],
367372
preserve_parameter_names=True,
368-
name="udtf_echo",
373+
name=udtf_echo_name,
369374
)
370375
class UDTFEcho:
371376
def process(
@@ -380,14 +385,16 @@ def process(
380385
df,
381386
[Row(3, 4)],
382387
)
383-
describe_udaf = session.sql("describe function udtf_echo(int, int)").collect()
388+
describe_udaf = session.sql(
389+
f"describe function {udtf_echo_name}(int, int)"
390+
).collect()
384391
assert describe_udaf[0][1] == "(A NUMBER, B NUMBER)"
385392

386393
test_files = TestFiles(resources_path)
387394
my_udtf = session.udtf.register_from_file(
388395
test_files.test_udtf_py_file,
389396
"GeneratorUDTF",
390-
name="generator_udtf",
397+
name=generator_udtf_name,
391398
input_types=[IntegerType()],
392399
output_schema=StructType([StructField("number", IntegerType())]),
393400
preserve_parameter_names=True,
@@ -405,7 +412,9 @@ def process(
405412
Row(1),
406413
],
407414
)
408-
describe_udaf = session.sql("describe function generator_udtf(int)").collect()
415+
describe_udaf = session.sql(
416+
f"describe function {generator_udtf_name}(int)"
417+
).collect()
409418
assert describe_udaf[0][1] == "(N NUMBER)"
410419

411420

0 commit comments

Comments
 (0)