apache-airflow-providers-snowflake 6.5.2__tar.gz → 6.5.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/PKG-INFO +8 -9
  2. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/README.rst +5 -6
  3. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/changelog.rst +25 -0
  4. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/index.rst +6 -8
  5. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/provider.yaml +2 -1
  6. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/pyproject.toml +4 -4
  7. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/__init__.py +1 -1
  8. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/hooks/snowflake_sql_api.py +15 -1
  9. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/hooks/test_snowflake_sql_api.py +15 -2
  10. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/operators/test_snowflake.py +27 -6
  11. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/.latest-doc-only-change.txt +0 -0
  12. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/commits.rst +0 -0
  13. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/conf.py +0 -0
  14. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/connections/snowflake.rst +0 -0
  15. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/decorators/index.rst +0 -0
  16. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/decorators/snowpark.rst +0 -0
  17. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/installing-providers-from-sources.rst +0 -0
  18. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/integration-logos/Snowflake.png +0 -0
  19. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/operators/copy_into_snowflake.rst +0 -0
  20. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/operators/index.rst +0 -0
  21. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/operators/snowflake.rst +0 -0
  22. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/operators/snowpark.rst +0 -0
  23. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/docs/security.rst +0 -0
  24. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/__init__.py +0 -0
  25. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/__init__.py +0 -0
  26. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/LICENSE +0 -0
  27. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/decorators/__init__.py +0 -0
  28. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/decorators/snowpark.py +0 -0
  29. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/get_provider_info.py +0 -0
  30. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/hooks/__init__.py +0 -0
  31. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/hooks/snowflake.py +0 -0
  32. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/operators/__init__.py +0 -0
  33. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/operators/snowflake.py +0 -0
  34. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/operators/snowpark.py +0 -0
  35. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/transfers/__init__.py +0 -0
  36. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/transfers/copy_into_snowflake.py +0 -0
  37. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/triggers/__init__.py +0 -0
  38. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/triggers/snowflake_trigger.py +0 -0
  39. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/utils/__init__.py +0 -0
  40. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/utils/common.py +0 -0
  41. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/utils/openlineage.py +0 -0
  42. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/utils/snowpark.py +0 -0
  43. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/utils/sql_api_generate_jwt.py +0 -0
  44. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/src/airflow/providers/snowflake/version_compat.py +0 -0
  45. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/conftest.py +0 -0
  46. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/__init__.py +0 -0
  47. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/__init__.py +0 -0
  48. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/example_copy_into_snowflake.py +0 -0
  49. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/example_snowflake.py +0 -0
  50. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/example_snowflake_snowflake_op_template_file.sql +0 -0
  51. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/example_snowpark_decorator.py +0 -0
  52. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/system/snowflake/example_snowpark_operator.py +0 -0
  53. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/__init__.py +0 -0
  54. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/__init__.py +0 -0
  55. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/decorators/__init__.py +0 -0
  56. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/decorators/test_snowpark.py +0 -0
  57. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/hooks/__init__.py +0 -0
  58. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/hooks/test_snowflake.py +0 -0
  59. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/hooks/test_sql.py +0 -0
  60. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/operators/__init__.py +0 -0
  61. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/operators/test_snowflake_sql.py +0 -0
  62. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/operators/test_snowpark.py +0 -0
  63. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/transfers/__init__.py +0 -0
  64. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/transfers/test_copy_into_snowflake.py +0 -0
  65. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/triggers/__init__.py +0 -0
  66. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/triggers/test_snowflake.py +0 -0
  67. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/utils/__init__.py +0 -0
  68. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/utils/test_common.py +0 -0
  69. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/utils/test_openlineage.py +0 -0
  70. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/utils/test_snowpark.py +0 -0
  71. {apache_airflow_providers_snowflake-6.5.2 → apache_airflow_providers_snowflake-6.5.3}/tests/unit/snowflake/utils/test_sql_api_generate_jwt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-snowflake
3
- Version: 6.5.2
3
+ Version: 6.5.3
4
4
  Summary: Provider package apache-airflow-providers-snowflake for Apache Airflow
5
5
  Keywords: airflow-provider,snowflake,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -33,8 +33,8 @@ Requires-Dist: snowflake-snowpark-python>=1.17.0;python_version<'3.12'
33
33
  Requires-Dist: snowflake-snowpark-python>=1.27.0,<9999;python_version>='3.12' and python_version<'3.13'
34
34
  Requires-Dist: apache-airflow-providers-openlineage>=2.3.0 ; extra == "openlineage"
35
35
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
36
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/changelog.html
37
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2
36
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html
37
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3
38
38
  Project-URL: Mastodon, https://fosstodon.org/@airflow
39
39
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
40
40
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -66,9 +66,8 @@ Provides-Extra: openlineage
66
66
 
67
67
  Package ``apache-airflow-providers-snowflake``
68
68
 
69
- Release: ``6.5.2``
69
+ Release: ``6.5.3``
70
70
 
71
- Release Date: ``|PypiReleaseDate|``
72
71
 
73
72
  `Snowflake <https://www.snowflake.com/>`__
74
73
 
@@ -80,12 +79,12 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
80
79
  are in ``airflow.providers.snowflake`` python package.
81
80
 
82
81
  You can find package information and changelog for the provider
83
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/>`_.
82
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/>`_.
84
83
 
85
84
  Installation
86
85
  ------------
87
86
 
88
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
87
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
89
88
  for the minimum Airflow version supported) via
90
89
  ``pip install apache-airflow-providers-snowflake``
91
90
 
@@ -99,7 +98,7 @@ PIP package Version required
99
98
  ========================================== ========================================================================
100
99
  ``apache-airflow`` ``>=2.10.0``
101
100
  ``apache-airflow-providers-common-compat`` ``>=1.6.0``
102
- ``apache-airflow-providers-common-sql`` ``>=1.21.0``
101
+ ``apache-airflow-providers-common-sql`` ``>=1.27.5``
103
102
  ``pandas`` ``>=2.1.2; python_version < "3.13"``
104
103
  ``pandas`` ``>=2.2.3; python_version >= "3.13"``
105
104
  ``pyarrow`` ``>=16.1.0; python_version < "3.13"``
@@ -132,5 +131,5 @@ Dependent package
132
131
  ================================================================================================================== =================
133
132
 
134
133
  The changelog for the provider package can be found in the
135
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/changelog.html>`_.
134
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html>`_.
136
135
 
@@ -23,9 +23,8 @@
23
23
 
24
24
  Package ``apache-airflow-providers-snowflake``
25
25
 
26
- Release: ``6.5.2``
26
+ Release: ``6.5.3``
27
27
 
28
- Release Date: ``|PypiReleaseDate|``
29
28
 
30
29
  `Snowflake <https://www.snowflake.com/>`__
31
30
 
@@ -37,12 +36,12 @@ This is a provider package for ``snowflake`` provider. All classes for this prov
37
36
  are in ``airflow.providers.snowflake`` python package.
38
37
 
39
38
  You can find package information and changelog for the provider
40
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/>`_.
41
40
 
42
41
  Installation
43
42
  ------------
44
43
 
45
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
44
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
46
45
  for the minimum Airflow version supported) via
47
46
  ``pip install apache-airflow-providers-snowflake``
48
47
 
@@ -56,7 +55,7 @@ PIP package Version required
56
55
  ========================================== ========================================================================
57
56
  ``apache-airflow`` ``>=2.10.0``
58
57
  ``apache-airflow-providers-common-compat`` ``>=1.6.0``
59
- ``apache-airflow-providers-common-sql`` ``>=1.21.0``
58
+ ``apache-airflow-providers-common-sql`` ``>=1.27.5``
60
59
  ``pandas`` ``>=2.1.2; python_version < "3.13"``
61
60
  ``pandas`` ``>=2.2.3; python_version >= "3.13"``
62
61
  ``pyarrow`` ``>=16.1.0; python_version < "3.13"``
@@ -89,4 +88,4 @@ Dependent package
89
88
  ================================================================================================================== =================
90
89
 
91
90
  The changelog for the provider package can be found in the
92
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/changelog.html>`_.
91
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html>`_.
@@ -27,6 +27,31 @@
27
27
  Changelog
28
28
  ---------
29
29
 
30
+ 6.5.3
31
+ .....
32
+
33
+
34
+ Release Date: ``|PypiReleaseDate|``
35
+
36
+ Bug Fixes
37
+ ~~~~~~~~~
38
+
39
+ * ``fix(snowflake): enhance error message formatting for SQL errors (#54063)``
40
+
41
+ Doc-only
42
+ ~~~~~~~~
43
+
44
+ * ``Make term Dag consistent in providers docs (#55101)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``Remove airflow.models.DAG (#54383)``
49
+ * ``Switch pre-commit to prek (#54258)``
50
+ * ``make bundle_name not nullable (#47592)``
51
+
52
+ .. Review and move the new changes to one of the sections above:
53
+ * ``Fix Airflow 2 reference in README/index of providers (#55240)``
54
+
30
55
  6.5.2
31
56
  .....
32
57
 
@@ -57,7 +57,7 @@
57
57
  :maxdepth: 1
58
58
  :caption: Resources
59
59
 
60
- Example DAGs <https://github.com/apache/airflow/tree/providers-snowflake/|version|/providers/snowflake/tests/system/snowflake>
60
+ Example Dags <https://github.com/apache/airflow/tree/providers-snowflake/|version|/providers/snowflake/tests/system/snowflake>
61
61
  PyPI Repository <https://pypi.org/project/apache-airflow-providers-snowflake/>
62
62
  Installing from sources <installing-providers-from-sources>
63
63
 
@@ -78,9 +78,7 @@ apache-airflow-providers-snowflake package
78
78
  `Snowflake <https://www.snowflake.com/>`__
79
79
 
80
80
 
81
- Release: 6.5.2
82
-
83
- Release Date: ``|PypiReleaseDate|``
81
+ Release: 6.5.3
84
82
 
85
83
  Provider package
86
84
  ----------------
@@ -91,7 +89,7 @@ All classes for this package are included in the ``airflow.providers.snowflake``
91
89
  Installation
92
90
  ------------
93
91
 
94
- You can install this package on top of an existing Airflow 2 installation via
92
+ You can install this package on top of an existing Airflow installation via
95
93
  ``pip install apache-airflow-providers-snowflake``.
96
94
  For the minimum Airflow version supported, see ``Requirements`` below.
97
95
 
@@ -105,7 +103,7 @@ PIP package Version required
105
103
  ========================================== ========================================================================
106
104
  ``apache-airflow`` ``>=2.10.0``
107
105
  ``apache-airflow-providers-common-compat`` ``>=1.6.0``
108
- ``apache-airflow-providers-common-sql`` ``>=1.21.0``
106
+ ``apache-airflow-providers-common-sql`` ``>=1.27.5``
109
107
  ``pandas`` ``>=2.1.2; python_version < "3.13"``
110
108
  ``pandas`` ``>=2.2.3; python_version >= "3.13"``
111
109
  ``pyarrow`` ``>=16.1.0; python_version < "3.13"``
@@ -143,5 +141,5 @@ Downloading official packages
143
141
  You can download officially released packages and verify their checksums and signatures from the
144
142
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
145
143
 
146
- * `The apache-airflow-providers-snowflake 6.5.2 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2.tar.gz.sha512>`__)
147
- * `The apache-airflow-providers-snowflake 6.5.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.2-py3-none-any.whl.sha512>`__)
144
+ * `The apache-airflow-providers-snowflake 6.5.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3.tar.gz.sha512>`__)
145
+ * `The apache-airflow-providers-snowflake 6.5.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_snowflake-6.5.3-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `Snowflake <https://www.snowflake.com/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1754503520
25
+ source-date-epoch: 1756877547
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 6.5.3
31
32
  - 6.5.2
32
33
  - 6.5.1
33
34
  - 6.5.0
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-snowflake"
28
- version = "6.5.2"
28
+ version = "6.5.3"
29
29
  description = "Provider package apache-airflow-providers-snowflake for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -54,7 +54,7 @@ requires-python = ">=3.10"
54
54
 
55
55
  # The dependencies should be modified in place in the generated file.
56
56
  # Any change in the dependencies is preserved when the file is regenerated
57
- # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
57
+ # Make sure to run ``prek update-providers-dependencies --all-files``
58
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
59
  dependencies = [
60
60
  "apache-airflow>=2.10.0",
@@ -117,8 +117,8 @@ apache-airflow-providers-common-sql = {workspace = true}
117
117
  apache-airflow-providers-standard = {workspace = true}
118
118
 
119
119
  [project.urls]
120
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2"
121
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.2/changelog.html"
120
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3"
121
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-snowflake/6.5.3/changelog.html"
122
122
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
123
123
  "Source Code" = "https://github.com/apache/airflow"
124
124
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "6.5.2"
32
+ __version__ = "6.5.3"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -288,7 +288,21 @@ class SnowflakeSqlApiHook(SnowflakeHook):
288
288
  if status_code == 202:
289
289
  return {"status": "running", "message": "Query statements are still running"}
290
290
  if status_code == 422:
291
- return {"status": "error", "message": resp["message"]}
291
+ error_message = resp.get("message", "Unknown error occurred")
292
+ error_details = []
293
+ if code := resp.get("code"):
294
+ error_details.append(f"Code: {code}")
295
+ if sql_state := resp.get("sqlState"):
296
+ error_details.append(f"SQL State: {sql_state}")
297
+ if statement_handle := resp.get("statementHandle"):
298
+ error_details.append(f"Statement Handle: {statement_handle}")
299
+
300
+ if error_details:
301
+ enhanced_message = f"{error_message} ({', '.join(error_details)})"
302
+ else:
303
+ enhanced_message = error_message
304
+
305
+ return {"status": "error", "message": enhanced_message}
292
306
  if status_code == 200:
293
307
  if resp_statement_handles := resp.get("statementHandles"):
294
308
  statement_handles = resp_statement_handles
@@ -618,7 +618,20 @@ class TestSnowflakeSqlApiHook:
618
618
  },
619
619
  ),
620
620
  (202, {}, {"status": "running", "message": "Query statements are still running"}),
621
- (422, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
621
+ (422, {"message": "test"}, {"status": "error", "message": "test"}),
622
+ (
623
+ 422,
624
+ {
625
+ "message": "SQL compilation error",
626
+ "code": "000904",
627
+ "sqlState": "42000",
628
+ "statementHandle": "handle123",
629
+ },
630
+ {
631
+ "status": "error",
632
+ "message": "SQL compilation error (Code: 000904, SQL State: 42000, Statement Handle: handle123)",
633
+ },
634
+ ),
622
635
  (404, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
623
636
  ],
624
637
  )
@@ -678,7 +691,7 @@ class TestSnowflakeSqlApiHook:
678
691
  },
679
692
  ),
680
693
  (202, {}, {"status": "running", "message": "Query statements are still running"}),
681
- (422, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
694
+ (422, {"message": "test"}, {"status": "error", "message": "test"}),
682
695
  (404, {"status": "error", "message": "test"}, {"status": "error", "message": "test"}),
683
696
  ],
684
697
  )
@@ -36,10 +36,16 @@ from airflow.providers.snowflake.operators.snowflake import (
36
36
  SnowflakeValueCheckOperator,
37
37
  )
38
38
  from airflow.providers.snowflake.triggers.snowflake_trigger import SnowflakeSqlApiTrigger
39
- from airflow.utils import timezone # type: ignore[attr-defined]
40
39
  from airflow.utils.types import DagRunType
41
40
 
42
- from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS
41
+ from tests_common.test_utils.dag import sync_dag_to_db
42
+ from tests_common.test_utils.db import clear_db_dag_bundles, clear_db_dags, clear_db_runs
43
+ from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS, AIRFLOW_V_3_1_PLUS
44
+
45
+ if AIRFLOW_V_3_1_PLUS:
46
+ from airflow.sdk import timezone
47
+ else:
48
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
43
49
 
44
50
  DEFAULT_DATE = timezone.datetime(2015, 1, 1)
45
51
  DEFAULT_DATE_ISO = DEFAULT_DATE.isoformat()
@@ -235,10 +241,8 @@ def create_context(task, dag=None):
235
241
  logical_date = timezone.datetime(2022, 1, 1, 1, 0, 0, tzinfo=tzinfo)
236
242
  if AIRFLOW_V_3_0_PLUS:
237
243
  from airflow.models.dag_version import DagVersion
238
- from airflow.models.serialized_dag import SerializedDagModel
239
244
 
240
- dag.sync_to_db()
241
- SerializedDagModel.write_dag(dag, bundle_name="testing")
245
+ sync_dag_to_db(dag)
242
246
  dag_version = DagVersion.get_latest_version(dag.dag_id)
243
247
  task_instance = TaskInstance(task=task, run_id="test_run_id", dag_version_id=dag_version.id)
244
248
  dag_run = DagRun(
@@ -274,6 +278,20 @@ def create_context(task, dag=None):
274
278
 
275
279
  @pytest.mark.db_test
276
280
  class TestSnowflakeSqlApiOperator:
281
+ @pytest.fixture(autouse=True)
282
+ def setup_tests(self):
283
+ clear_db_dags()
284
+ clear_db_runs()
285
+ if AIRFLOW_V_3_0_PLUS:
286
+ clear_db_dag_bundles()
287
+
288
+ yield
289
+
290
+ clear_db_dags()
291
+ clear_db_runs()
292
+ if AIRFLOW_V_3_0_PLUS:
293
+ clear_db_dag_bundles()
294
+
277
295
  @pytest.fixture
278
296
  def mock_execute_query(self):
279
297
  with mock.patch(
@@ -328,7 +346,10 @@ class TestSnowflakeSqlApiOperator:
328
346
  with pytest.raises(AirflowException):
329
347
  operator.execute(context=None)
330
348
 
331
- @pytest.mark.parametrize("mock_sql, statement_count", [(SQL_MULTIPLE_STMTS, 4), (SINGLE_STMT, 1)])
349
+ @pytest.mark.parametrize(
350
+ "mock_sql, statement_count",
351
+ [pytest.param(SQL_MULTIPLE_STMTS, 4, id="multi"), pytest.param(SINGLE_STMT, 1, id="single")],
352
+ )
332
353
  @mock.patch("airflow.providers.snowflake.hooks.snowflake_sql_api.SnowflakeSqlApiHook.execute_query")
333
354
  def test_snowflake_sql_api_execute_operator_async(
334
355
  self, mock_execute_query, mock_sql, statement_count, mock_get_sql_api_query_status