Skip to content

Commit

Permalink
SNOW-1325652: release snowpark 1.15.0 (#1415)
Browse files Browse the repository at this point in the history
  • Loading branch information
sfc-gh-aling authored Apr 24, 2024
1 parent fbc2f22 commit 3a5c7b0
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 38 deletions.
78 changes: 43 additions & 35 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,45 @@
# Release History

## 1.15.0 (TBD)
## 1.15.0 (2024-04-24)

### New Features

- Added support for registering udfs and stored procedure to local testing.
- Added support for the following local testing APIs:
- Added `truncate` save mode in `DataFrameWrite` to overwrite existing tables by truncating the underlying table instead of dropping it.
- Added telemetry to calculate query plan height and number of duplicate nodes during collect operations.
- Added the functions below to unload data from a `DataFrame` into one or more files in a stage:
- `DataFrame.write.json`
- `DataFrame.write.csv`
- `DataFrame.write.parquet`
- Added distributed tracing using open telemetry APIs for action functions in `DataFrame` and `DataFrameWriter`:
- snowflake.snowpark.DataFrame:
- collect
- collect_nowait
- to_pandas
- count
- show
- snowflake.snowpark.DataFrameWriter:
- save_as_table
- Added support for snow:// URLs to `snowflake.snowpark.Session.file.get` and `snowflake.snowpark.Session.file.get_stream`
- Added support to register stored procedures and UDxFs with a `comment`.
- UDAF client support is ready for public preview. Please stay tuned for the Snowflake announcement of UDAF public preview.
- Added support for dynamic pivot. This feature is currently in private preview.

### Improvements

- Improved the generated query performance for both compilation and execution by converting duplicate subqueries to Common Table Expressions (CTEs). It is still an experimental feature not enabled by default, and can be enabled by setting `session.cte_optimization_enabled` to `True`.

### Bug Fixes

- Fixed a bug where `statement_params` was not passed to query executions that register stored procedures and user defined functions.
- Fixed a bug causing `snowflake.snowpark.Session.file.get_stream` to fail for quoted stage locations.
- Fixed a bug that an internal type hint in `utils.py` might raise AttributeError in case the underlying module can not be found.

### Local Testing Updates

#### New Features

- Added support for registering UDFs and stored procedures.
- Added support for the following APIs:
- snowflake.snowpark.Session:
- file.put
- file.put_stream
Expand Down Expand Up @@ -34,40 +68,14 @@
- sqrt
- udf
- sproc
- Added `truncate` save mode in `DataFrameWrite` to overwrite existing tables by truncating the underlying table instead of dropping it.
- Added support for StringType, TimestampType and VariantType data conversion in the local testing mocked function `to_time`.
- Added telemetry to calculate query plan height and number of duplicate nodes during collect operations.
- Added the functions below to unload data from a `DataFrame` into one or more files in a stage:
- `DataFrame.write.json`
- `DataFrame.write.csv`
- `DataFrame.write.parquet`
- Added distributed tracing using open telemetry apis for action functions in `DataFrame` and `DataFrameWriter`:
- snowflake.snowpark.DataFrame:
- collect
- collect_nowait
- to_pandas
- count
- show
- snowflake.snowpark.DataFrameWriter:
- save_as_table
- Added support for snow:// URLs to `snowflake.snowpark.Session.file.get` and `snowflake.snowpark.Session.file.get_stream`
- Added support to register stored procedures and UDxFs with a `comment`.
- UDAF client support is ready for public preview. Please stay tuned for the Snowflake announcement of UDAF public preview.
- Added support for dynamic pivot. This feature is currently in private preview.
- Added support for StringType, TimestampType and VariantType data conversion in the mocked function `to_time`.

### Improvements

- Improved the generated query performance for both compilation and execution by converting duplicate subqueries to Common Table Expressions (CTEs). It is still an experimental feature, and can be enabled by setting `session.cte_optimization_enabled` to `True`.

### Bug Fixes
#### Bug Fixes

- Fixed a bug in local testing that null filled columns for constant functions.
- Fixed a bug where `statement_params` was not passed to query executions that register stored procedures and user defined functions.
- Fixed a bug causing `snowflake.snowpark.Session.file.get_stream` to fail for quoted stage locations
- Fixed a bug in local testing implementation of to_object, to_array and to_binary to better handle null inputs.
- Fixed a bug in local testing implementation that timestamp data comparison can not handle year beyond 2262.
- Fixed a bug in local testing that `Session.builder.getOrCreate` should return the created mock session.
- Fixed a bug that an internal type hint in `utils.py` might raise AttributeError in case the underlying module can not be found.
- Fixed a bug that null filled columns for constant functions.
- Fixed a bug that implementation of to_object, to_array and to_binary to better handle null inputs.
- Fixed a bug that timestamp data comparison can not handle year beyond 2262.
- Fixed a bug that `Session.builder.getOrCreate` should return the created mock session.

## 1.14.0 (2024-03-20)

Expand Down
2 changes: 1 addition & 1 deletion recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% set name = "snowflake-snowpark-python" %}
{% set version = "1.14.0" %}
{% set version = "1.15.0" %}

package:
name: {{ name|lower }}
Expand Down
2 changes: 1 addition & 1 deletion src/snowflake/snowpark/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
#

# Update this for the versions
VERSION = (1, 14, 0)
VERSION = (1, 15, 0)
6 changes: 5 additions & 1 deletion tests/unit/test_stored_procedure.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from snowflake.snowpark.functions import sproc
from snowflake.snowpark.stored_procedure import StoredProcedureRegistration
from snowflake.snowpark.types import IntegerType
from snowflake.snowpark.version import VERSION


@pytest.mark.parametrize(
Expand Down Expand Up @@ -134,7 +135,10 @@ def mock_callback(extension_function_properties):
== f"{sys.version_info[0]}.{sys.version_info[1]}"
)
assert callableProperties.all_imports == ""
assert callableProperties.all_packages == "'snowflake-snowpark-python==1.14.0'"
assert (
callableProperties.all_packages
== f"'snowflake-snowpark-python=={'.'.join(map(str, VERSION))}'"
)
assert callableProperties.external_access_integrations is None
assert callableProperties.secrets is None
assert callableProperties.handler is None
Expand Down

0 comments on commit 3a5c7b0

Please sign in to comment.