apache-airflow-providers-common-sql 1.28.2rc1__tar.gz → 1.30.1__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 (75) hide show
  1. apache_airflow_providers_common_sql-1.30.1/NOTICE +5 -0
  2. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/PKG-INFO +27 -22
  3. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/README.rst +19 -17
  4. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/changelog.rst +57 -7
  5. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/index.rst +20 -18
  6. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/provider.yaml +4 -1
  7. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/pyproject.toml +8 -5
  8. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/__init__.py +3 -3
  9. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/hooks/sql.py +3 -11
  10. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/hooks/sql.pyi +3 -3
  11. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/operators/generic_transfer.py +13 -12
  12. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/operators/generic_transfer.pyi +1 -1
  13. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/operators/sql.py +127 -93
  14. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/sensors/sql.py +2 -3
  15. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/sensors/sql.pyi +1 -7
  16. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/triggers/sql.py +1 -2
  17. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/version_compat.py +0 -14
  18. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/hooks/test_dbapi.py +1 -2
  19. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/hooks/test_sql.py +11 -4
  20. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/hooks/test_sqlparse.py +1 -1
  21. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/operators/test_generic_transfer.py +32 -0
  22. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/operators/test_sql.py +28 -11
  23. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/operators/test_sql_execute.py +3 -3
  24. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/sensors/test_sql.py +1 -1
  25. {apache_airflow_providers_common_sql-1.28.2rc1/src/airflow/providers/common/sql → apache_airflow_providers_common_sql-1.30.1}/LICENSE +0 -0
  26. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/.latest-doc-only-change.txt +0 -0
  27. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/commits.rst +0 -0
  28. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/conf.py +0 -0
  29. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/connections.rst +0 -0
  30. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/dataframes.rst +0 -0
  31. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/dialects.rst +0 -0
  32. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/installing-providers-from-sources.rst +0 -0
  33. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/integration-logos/sql.png +0 -0
  34. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/operators.rst +0 -0
  35. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/security.rst +0 -0
  36. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/docs/supported-database-types.rst +0 -0
  37. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/__init__.py +0 -0
  38. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/__init__.py +0 -0
  39. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/__init__.py +0 -0
  40. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/README_API.md +0 -0
  41. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/dialects/__init__.py +0 -0
  42. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/dialects/dialect.py +0 -0
  43. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/dialects/dialect.pyi +0 -0
  44. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/doc/adr/0001-record-architecture-decisions.md +0 -0
  45. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/doc/adr/0002-return-common-data-structure-from-dbapihook-derived-hooks.md +0 -0
  46. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/doc/adr/0003-introduce-notion-of-dialects-in-dbapihook.md +0 -0
  47. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/get_provider_info.py +0 -0
  48. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/get_provider_info.pyi +0 -0
  49. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/hooks/__init__.py +0 -0
  50. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/hooks/handlers.py +0 -0
  51. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/hooks/handlers.pyi +0 -0
  52. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/operators/__init__.py +0 -0
  53. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/sensors/__init__.py +0 -0
  54. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/triggers/__init__.py +0 -0
  55. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/src/airflow/providers/common/sql/triggers/sql.pyi +0 -0
  56. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/conftest.py +0 -0
  57. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/__init__.py +0 -0
  58. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/__init__.py +0 -0
  59. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/__init__.py +0 -0
  60. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/example_generic_transfer.py +0 -0
  61. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/example_sql_column_table_check.py +0 -0
  62. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/example_sql_execute_query.py +0 -0
  63. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/example_sql_insert_rows.py +0 -0
  64. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/system/common/sql/example_sql_threshold_check.py +0 -0
  65. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/__init__.py +0 -0
  66. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/__init__.py +0 -0
  67. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/__init__.py +0 -0
  68. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/dialects/__init__.py +0 -0
  69. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/dialects/test_dialect.py +0 -0
  70. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/hooks/__init__.py +0 -0
  71. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/hooks/test_handlers.py +0 -0
  72. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/operators/__init__.py +0 -0
  73. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/sensors/__init__.py +0 -0
  74. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/triggers/__init__.py +0 -0
  75. {apache_airflow_providers_common_sql-1.28.2rc1 → apache_airflow_providers_common_sql-1.30.1}/tests/unit/common/sql/triggers/test_sql.py +0 -0
@@ -0,0 +1,5 @@
1
+ Apache Airflow
2
+ Copyright 2016-2025 The Apache Software Foundation
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-common-sql
3
- Version: 1.28.2rc1
3
+ Version: 1.30.1
4
4
  Summary: Provider package apache-airflow-providers-common-sql for Apache Airflow
5
5
  Keywords: airflow-provider,common.sql,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
8
  Requires-Python: >=3.10
9
9
  Description-Content-Type: text/x-rst
10
+ License-Expression: Apache-2.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Environment :: Web Environment
@@ -14,13 +15,15 @@ Classifier: Intended Audience :: Developers
14
15
  Classifier: Intended Audience :: System Administrators
15
16
  Classifier: Framework :: Apache Airflow
16
17
  Classifier: Framework :: Apache Airflow :: Provider
17
- Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0rc1
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: apache-airflow>=2.11.0
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.10.1
24
27
  Requires-Dist: sqlparse>=0.5.1
25
28
  Requires-Dist: more-itertools>=9.0.0
26
29
  Requires-Dist: methodtools>=0.4.7
@@ -29,8 +32,8 @@ Requires-Dist: pandas[sql-other]>=2.1.2 ; extra == "pandas" and ( python_version
29
32
  Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13")
30
33
  Requires-Dist: polars>=1.26.0 ; extra == "polars"
31
34
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
32
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html
33
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.2
35
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/changelog.html
36
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1
34
37
  Project-URL: Mastodon, https://fosstodon.org/@airflow
35
38
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
36
39
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -64,7 +67,7 @@ Provides-Extra: polars
64
67
 
65
68
  Package ``apache-airflow-providers-common-sql``
66
69
 
67
- Release: ``1.28.2``
70
+ Release: ``1.30.1``
68
71
 
69
72
 
70
73
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
@@ -77,7 +80,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
77
80
  are in ``airflow.providers.common.sql`` python package.
78
81
 
79
82
  You can find package information and changelog for the provider
80
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/>`_.
83
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/>`_.
81
84
 
82
85
  Installation
83
86
  ------------
@@ -91,14 +94,15 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
91
94
  Requirements
92
95
  ------------
93
96
 
94
- ================== ==================
95
- PIP package Version required
96
- ================== ==================
97
- ``apache-airflow`` ``>=2.10.0``
98
- ``sqlparse`` ``>=0.5.1``
99
- ``more-itertools`` ``>=9.0.0``
100
- ``methodtools`` ``>=0.4.7``
101
- ================== ==================
97
+ ========================================== ==================
98
+ PIP package Version required
99
+ ========================================== ==================
100
+ ``apache-airflow`` ``>=2.11.0``
101
+ ``apache-airflow-providers-common-compat`` ``>=1.10.1``
102
+ ``sqlparse`` ``>=0.5.1``
103
+ ``more-itertools`` ``>=9.0.0``
104
+ ``methodtools`` ``>=0.4.7``
105
+ ========================================== ==================
102
106
 
103
107
  Cross provider package dependencies
104
108
  -----------------------------------
@@ -110,14 +114,15 @@ You can install such cross-provider dependencies when installing from PyPI. For
110
114
 
111
115
  .. code-block:: bash
112
116
 
113
- pip install apache-airflow-providers-common-sql[openlineage]
117
+ pip install apache-airflow-providers-common-sql[common.compat]
114
118
 
115
119
 
116
- ============================================================================================================== ===============
117
- Dependent package Extra
118
- ============================================================================================================== ===============
119
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
120
- ============================================================================================================== ===============
120
+ ================================================================================================================== =================
121
+ Dependent package Extra
122
+ ================================================================================================================== =================
123
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
124
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
125
+ ================================================================================================================== =================
121
126
 
122
127
  Optional dependencies
123
128
  ----------------------
@@ -131,5 +136,5 @@ Extra Dependencies
131
136
  =============== ================================================================================================
132
137
 
133
138
  The changelog for the provider package can be found in the
134
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html>`_.
139
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/changelog.html>`_.
135
140
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-common-sql``
25
25
 
26
- Release: ``1.28.2``
26
+ Release: ``1.30.1``
27
27
 
28
28
 
29
29
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
@@ -36,7 +36,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
36
36
  are in ``airflow.providers.common.sql`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -50,14 +50,15 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
50
50
  Requirements
51
51
  ------------
52
52
 
53
- ================== ==================
54
- PIP package Version required
55
- ================== ==================
56
- ``apache-airflow`` ``>=2.10.0``
57
- ``sqlparse`` ``>=0.5.1``
58
- ``more-itertools`` ``>=9.0.0``
59
- ``methodtools`` ``>=0.4.7``
60
- ================== ==================
53
+ ========================================== ==================
54
+ PIP package Version required
55
+ ========================================== ==================
56
+ ``apache-airflow`` ``>=2.11.0``
57
+ ``apache-airflow-providers-common-compat`` ``>=1.10.1``
58
+ ``sqlparse`` ``>=0.5.1``
59
+ ``more-itertools`` ``>=9.0.0``
60
+ ``methodtools`` ``>=0.4.7``
61
+ ========================================== ==================
61
62
 
62
63
  Cross provider package dependencies
63
64
  -----------------------------------
@@ -69,14 +70,15 @@ You can install such cross-provider dependencies when installing from PyPI. For
69
70
 
70
71
  .. code-block:: bash
71
72
 
72
- pip install apache-airflow-providers-common-sql[openlineage]
73
+ pip install apache-airflow-providers-common-sql[common.compat]
73
74
 
74
75
 
75
- ============================================================================================================== ===============
76
- Dependent package Extra
77
- ============================================================================================================== ===============
78
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
79
- ============================================================================================================== ===============
76
+ ================================================================================================================== =================
77
+ Dependent package Extra
78
+ ================================================================================================================== =================
79
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
80
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
81
+ ================================================================================================================== =================
80
82
 
81
83
  Optional dependencies
82
84
  ----------------------
@@ -90,4 +92,4 @@ Extra Dependencies
90
92
  =============== ================================================================================================
91
93
 
92
94
  The changelog for the provider package can be found in the
93
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html>`_.
95
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/changelog.html>`_.
@@ -25,6 +25,59 @@
25
25
  Changelog
26
26
  ---------
27
27
 
28
+ 1.30.1
29
+ ......
30
+
31
+ Misc
32
+ ~~~~
33
+
34
+ * ``Add backcompat for exceptions in providers (#58727)``
35
+ * ``chore: Move OpenLineage methods to BaseSQLOperator (#58897)``
36
+
37
+ .. Below changes are excluded from the changelog. Move them to
38
+ appropriate section above if needed. Do not delete the lines(!):
39
+
40
+ 1.30.0
41
+ ......
42
+
43
+ .. note::
44
+ This release of provider is only available for Airflow 2.11+ as explained in the
45
+ Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
46
+
47
+ Misc
48
+ ~~~~
49
+
50
+ * ``Move out some exceptions to TaskSDK (#54505)``
51
+ * ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
52
+ * ``Fix lower bound dependency to common-compat provider (#58833)``
53
+
54
+ .. Below changes are excluded from the changelog. Move them to
55
+ appropriate section above if needed. Do not delete the lines(!):
56
+ * ``Updates to release process of providers (#58316)``
57
+ * ``Prepare release for 2025-11-27 wave of providers (#58697)``
58
+
59
+ 1.29.0
60
+ ......
61
+
62
+ Features
63
+ ~~~~~~~~
64
+
65
+ * ``Allow a list of SQL statements in GenericTransfer (#56041)``
66
+
67
+ Misc
68
+ ~~~~
69
+
70
+ * ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
71
+ * ``Migrate 'common/sql' provider to 'common.compat' (#57135)``
72
+ * ``Migrate 'common.sql' provider to 'common.compat' (#57075)``
73
+
74
+ .. Below changes are excluded from the changelog. Move them to
75
+ appropriate section above if needed. Do not delete the lines(!):
76
+ * ``Delete all unnecessary LICENSE Files (#58191)``
77
+ * ``Enable PT006 rule to 19 files in providers (cncf,common) (#57995)``
78
+ * ``Fix code formatting via ruff preview (#57641)``
79
+ * ``Enable ruff PLW0127 rule (#57298)``
80
+
28
81
  1.28.2
29
82
  ......
30
83
 
@@ -87,8 +140,6 @@ Doc-only
87
140
  * ``Replace API server's direct Connection access workaround in BaseHook (#54083)``
88
141
  * ``Switch pre-commit to prek (#54258)``
89
142
  * ``make bundle_name not nullable (#47592)``
90
-
91
- .. Review and move the new changes to one of the sections above:
92
143
  * ``Fix Airflow 2 reference in README/index of providers (#55240)``
93
144
 
94
145
  1.27.5
@@ -360,9 +411,6 @@ Misc
360
411
  .. Below changes are excluded from the changelog. Move them to
361
412
  appropriate section above if needed. Do not delete the lines(!):
362
413
  * ``Use Python 3.9 as target version for Ruff & Black rules (#44298)``
363
-
364
-
365
- .. Review and move the new changes to one of the sections above:
366
414
  * ``Update path of example dags in docs (#45069)``
367
415
 
368
416
  1.20.0
@@ -599,7 +647,8 @@ Misc
599
647
  * ``feat: Switch all class, functions, methods deprecations to decorators (#36876)``
600
648
  * ``Add more-itertools as dependency of common-sql (#37359)``
601
649
 
602
- .. Review and move the new changes to one of the sections above:
650
+ .. Below changes are excluded from the changelog. Move them to
651
+ appropriate section above if needed. Do not delete the lines(!):
603
652
  * ``Prepare docs 1st wave of Providers February 2024 (#37326)``
604
653
 
605
654
  1.10.1
@@ -656,7 +705,8 @@ Misc
656
705
  * ``Add '_make_serializable' method which other SQL operators can overrides when result from cursor is not JSON-serializable (#32319)``
657
706
  * ``Remove backcompat inheritance for DbApiHook (#35754)``
658
707
 
659
- .. Review and move the new changes to one of the sections above:
708
+ .. Below changes are excluded from the changelog. Move them to
709
+ appropriate section above if needed. Do not delete the lines(!):
660
710
  * ``Use reproducible builds for providers (#35693)``
661
711
  * ``Fix and reapply templates for provider documentation (#35686)``
662
712
  * ``Prepare docs 1st wave of Providers November 2023 (#35537)``
@@ -79,7 +79,7 @@ apache-airflow-providers-common-sql package
79
79
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
80
80
 
81
81
 
82
- Release: 1.28.2
82
+ Release: 1.30.1
83
83
 
84
84
  Provider package
85
85
  ----------------
@@ -97,16 +97,17 @@ For the minimum Airflow version supported, see ``Requirements`` below.
97
97
  Requirements
98
98
  ------------
99
99
 
100
- The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
100
+ The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``.
101
101
 
102
- ================== ==================
103
- PIP package Version required
104
- ================== ==================
105
- ``apache-airflow`` ``>=2.10.0``
106
- ``sqlparse`` ``>=0.5.1``
107
- ``more-itertools`` ``>=9.0.0``
108
- ``methodtools`` ``>=0.4.7``
109
- ================== ==================
102
+ ========================================== ==================
103
+ PIP package Version required
104
+ ========================================== ==================
105
+ ``apache-airflow`` ``>=2.11.0``
106
+ ``apache-airflow-providers-common-compat`` ``>=1.10.1``
107
+ ``sqlparse`` ``>=0.5.1``
108
+ ``more-itertools`` ``>=9.0.0``
109
+ ``methodtools`` ``>=0.4.7``
110
+ ========================================== ==================
110
111
 
111
112
  Cross provider package dependencies
112
113
  -----------------------------------
@@ -118,14 +119,15 @@ You can install such cross-provider dependencies when installing from PyPI. For
118
119
 
119
120
  .. code-block:: bash
120
121
 
121
- pip install apache-airflow-providers-common-sql[openlineage]
122
+ pip install apache-airflow-providers-common-sql[common.compat]
122
123
 
123
124
 
124
- ============================================================================================================== ===============
125
- Dependent package Extra
126
- ============================================================================================================== ===============
127
- `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
128
- ============================================================================================================== ===============
125
+ ================================================================================================================== =================
126
+ Dependent package Extra
127
+ ================================================================================================================== =================
128
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
129
+ `apache-airflow-providers-openlineage <https://airflow.apache.org/docs/apache-airflow-providers-openlineage>`_ ``openlineage``
130
+ ================================================================================================================== =================
129
131
 
130
132
  Downloading official packages
131
133
  -----------------------------
@@ -133,5 +135,5 @@ Downloading official packages
133
135
  You can download officially released packages and verify their checksums and signatures from the
134
136
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
135
137
 
136
- * `The apache-airflow-providers-common-sql 1.28.2 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2.tar.gz.sha512>`__)
137
- * `The apache-airflow-providers-common-sql 1.28.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.28.2-py3-none-any.whl.sha512>`__)
138
+ * `The apache-airflow-providers-common-sql 1.30.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1.tar.gz.sha512>`__)
139
+ * `The apache-airflow-providers-common-sql 1.30.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-1.30.1-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,15 @@ description: |
22
22
  `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1761116577
25
+ source-date-epoch: 1765298925
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
+ - 1.30.1
32
+ - 1.30.0
33
+ - 1.29.0
31
34
  - 1.28.2
32
35
  - 1.28.1
33
36
  - 1.28.0
@@ -25,9 +25,11 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-common-sql"
28
- version = "1.28.2rc1"
28
+ version = "1.30.1"
29
29
  description = "Provider package apache-airflow-providers-common-sql for Apache Airflow"
30
30
  readme = "README.rst"
31
+ license = "Apache-2.0"
32
+ license-files = ['LICENSE', 'NOTICE']
31
33
  authors = [
32
34
  {name="Apache Software Foundation", email="dev@airflow.apache.org"},
33
35
  ]
@@ -43,7 +45,6 @@ classifiers = [
43
45
  "Intended Audience :: System Administrators",
44
46
  "Framework :: Apache Airflow",
45
47
  "Framework :: Apache Airflow :: Provider",
46
- "License :: OSI Approved :: Apache Software License",
47
48
  "Programming Language :: Python :: 3.10",
48
49
  "Programming Language :: Python :: 3.11",
49
50
  "Programming Language :: Python :: 3.12",
@@ -57,7 +58,8 @@ requires-python = ">=3.10"
57
58
  # Make sure to run ``prek update-providers-dependencies --all-files``
58
59
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
60
  dependencies = [
60
- "apache-airflow>=2.10.0rc1",
61
+ "apache-airflow>=2.11.0",
62
+ "apache-airflow-providers-common-compat>=1.10.1",
61
63
  "sqlparse>=0.5.1",
62
64
  "more-itertools>=9.0.0",
63
65
  # The methodtools dependency is necessary since the introduction of dialects:
@@ -86,6 +88,7 @@ dev = [
86
88
  "apache-airflow",
87
89
  "apache-airflow-task-sdk",
88
90
  "apache-airflow-devel-common",
91
+ "apache-airflow-providers-common-compat",
89
92
  "apache-airflow-providers-openlineage",
90
93
  # Additional devel dependencies (do not remove this line and add extra development dependencies)
91
94
  "apache-airflow-providers-common-sql[pandas]",
@@ -121,8 +124,8 @@ apache-airflow-providers-common-sql = {workspace = true}
121
124
  apache-airflow-providers-standard = {workspace = true}
122
125
 
123
126
  [project.urls]
124
- "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.2"
125
- "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html"
127
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1"
128
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.30.1/changelog.html"
126
129
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
127
130
  "Source Code" = "https://github.com/apache/airflow"
128
131
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.28.2"
32
+ __version__ = "1.30.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
- "2.10.0"
35
+ "2.11.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-common-sql:{__version__}` needs Apache Airflow 2.10.0+"
38
+ f"The package `apache-airflow-providers-common-sql:{__version__}` needs Apache Airflow 2.11.0+"
39
39
  )
@@ -34,14 +34,10 @@ from sqlalchemy.engine import make_url
34
34
  from sqlalchemy.exc import ArgumentError, NoSuchModuleError
35
35
 
36
36
  from airflow.configuration import conf
37
- from airflow.exceptions import (
38
- AirflowException,
39
- AirflowOptionalProviderFeatureException,
40
- AirflowProviderDeprecationWarning,
41
- )
37
+ from airflow.exceptions import AirflowOptionalProviderFeatureException, AirflowProviderDeprecationWarning
38
+ from airflow.providers.common.compat.sdk import AirflowException, BaseHook
42
39
  from airflow.providers.common.sql.dialects.dialect import Dialect
43
40
  from airflow.providers.common.sql.hooks import handlers
44
- from airflow.providers.common.sql.version_compat import BaseHook
45
41
  from airflow.utils.module_loading import import_string
46
42
 
47
43
  if TYPE_CHECKING:
@@ -49,14 +45,10 @@ if TYPE_CHECKING:
49
45
  from polars import DataFrame as PolarsDataFrame
50
46
  from sqlalchemy.engine import URL, Engine, Inspector
51
47
 
48
+ from airflow.providers.common.compat.sdk import Connection
52
49
  from airflow.providers.openlineage.extractors import OperatorLineage
53
50
  from airflow.providers.openlineage.sqlparser import DatabaseInfo
54
51
 
55
- try:
56
- from airflow.sdk import Connection
57
- except ImportError:
58
- from airflow.models.connection import Connection # type: ignore[assignment]
59
-
60
52
 
61
53
  T = TypeVar("T")
62
54
  SQL_PLACEHOLDERS = frozenset({"%s", "?"})
@@ -109,7 +109,7 @@ class DbApiHook(BaseHook):
109
109
  ) -> PandasDataFrame: ...
110
110
  def get_pandas_df_by_chunks(
111
111
  self, sql, parameters: list | tuple | Mapping[str, Any] | None = None, *, chunksize: int, **kwargs
112
- ) -> Generator[PandasDataFrame, None, None]: ...
112
+ ) -> Generator[PandasDataFrame]: ...
113
113
  def get_records(
114
114
  self, sql: str | list[str], parameters: Iterable | Mapping[str, Any] | None = None
115
115
  ) -> Any: ...
@@ -143,7 +143,7 @@ class DbApiHook(BaseHook):
143
143
  chunksize: int,
144
144
  df_type: Literal["pandas"] = "pandas",
145
145
  **kwargs,
146
- ) -> Generator[PandasDataFrame, None, None]: ...
146
+ ) -> Generator[PandasDataFrame]: ...
147
147
  @overload
148
148
  def get_df_by_chunks(
149
149
  self,
@@ -153,7 +153,7 @@ class DbApiHook(BaseHook):
153
153
  chunksize: int,
154
154
  df_type: Literal["polars"],
155
155
  **kwargs,
156
- ) -> Generator[PolarsDataFrame, None, None]: ...
156
+ ) -> Generator[PolarsDataFrame]: ...
157
157
  @staticmethod
158
158
  def strip_sql_string(sql: str) -> str: ...
159
159
  @staticmethod
@@ -21,19 +21,14 @@ from collections.abc import Sequence
21
21
  from functools import cached_property
22
22
  from typing import TYPE_CHECKING, Any
23
23
 
24
- from airflow.exceptions import AirflowException
24
+ from airflow.providers.common.compat.sdk import AirflowException, BaseHook, BaseOperator
25
25
  from airflow.providers.common.sql.hooks.sql import DbApiHook
26
26
  from airflow.providers.common.sql.triggers.sql import SQLExecuteQueryTrigger
27
- from airflow.providers.common.sql.version_compat import BaseHook, BaseOperator
28
27
 
29
28
  if TYPE_CHECKING:
30
29
  import jinja2
31
30
 
32
- try:
33
- from airflow.sdk.definitions.context import Context
34
- except ImportError:
35
- # TODO: Remove once provider drops support for Airflow 2
36
- from airflow.utils.context import Context
31
+ from airflow.providers.common.compat.sdk import Context
37
32
 
38
33
 
39
34
  class GenericTransfer(BaseOperator):
@@ -79,7 +74,7 @@ class GenericTransfer(BaseOperator):
79
74
  def __init__(
80
75
  self,
81
76
  *,
82
- sql: str,
77
+ sql: str | list[str],
83
78
  destination_table: str,
84
79
  source_conn_id: str,
85
80
  source_hook_params: dict | None = None,
@@ -160,13 +155,19 @@ class GenericTransfer(BaseOperator):
160
155
  method_name=self.execute_complete.__name__,
161
156
  )
162
157
  else:
158
+ if isinstance(self.sql, str):
159
+ self.sql = [self.sql]
160
+
163
161
  self.log.info("Extracting data from %s", self.source_conn_id)
164
- self.log.info("Executing: \n %s", self.sql)
162
+ for sql in self.sql:
163
+ self.log.info("Executing: \n %s", sql)
165
164
 
166
- results = self.source_hook.get_records(self.sql)
165
+ results = self.source_hook.get_records(sql)
167
166
 
168
- self.log.info("Inserting rows into %s", self.destination_conn_id)
169
- self.destination_hook.insert_rows(table=self.destination_table, rows=results, **self.insert_args)
167
+ self.log.info("Inserting rows into %s", self.destination_conn_id)
168
+ self.destination_hook.insert_rows(
169
+ table=self.destination_table, rows=results, **self.insert_args
170
+ )
170
171
 
171
172
  def execute_complete(
172
173
  self,
@@ -57,7 +57,7 @@ class GenericTransfer(BaseOperator):
57
57
  def __init__(
58
58
  self,
59
59
  *,
60
- sql: str,
60
+ sql: str | list[str],
61
61
  destination_table: str,
62
62
  source_conn_id: str,
63
63
  source_hook_params: dict | None = None,