apache-airflow-providers-common-sql 2.2.0__tar.gz → 2.3.0rc1__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.
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/PKG-INFO +12 -13
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/README.rst +5 -5
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/changelog.rst +27 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/index.rst +4 -4
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/operators.rst +59 -1
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/provider.yaml +2 -1
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/pyproject.toml +8 -9
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/__init__.py +1 -1
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/config.py +3 -0
- apache_airflow_providers_common_sql-2.3.0rc1/src/airflow/providers/common/sql/datafusion/engine.py +404 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/datafusion/object_storage_provider.py +34 -2
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/example_dags/example_analytics.py +13 -0
- apache_airflow_providers_common_sql-2.3.0rc1/tests/unit/common/sql/datafusion/test_engine.py +892 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/datafusion/test_object_storage_provider.py +48 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/test_config.py +1 -0
- apache_airflow_providers_common_sql-2.2.0/src/airflow/providers/common/sql/datafusion/engine.py +0 -219
- apache_airflow_providers_common_sql-2.2.0/tests/unit/common/sql/datafusion/test_engine.py +0 -445
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/.gitignore +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/LICENSE +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/NOTICE +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/connections.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/dataframes.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/dialects.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/integration-logos/sql.png +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/docs/supported-database-types.rst +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/README_API.md +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/datafusion/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/datafusion/base.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/datafusion/exceptions.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/datafusion/format_handlers.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/decorators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/decorators/analytics.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/decorators/sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/dialects/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/dialects/dialect.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/dialects/dialect.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/doc/adr/0001-record-architecture-decisions.md +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/doc/adr/0002-return-common-data-structure-from-dbapihook-derived-hooks.md +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/doc/adr/0003-introduce-notion-of-dialects-in-dbapihook.md +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/example_dags/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/get_provider_info.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/get_provider_info.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/handlers.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/handlers.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/lineage.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/lineage.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/hooks/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/operators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/operators/analytics.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/operators/generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/operators/generic_transfer.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/operators/sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/sensors/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/sensors/sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/sensors/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/triggers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/triggers/sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/triggers/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/src/airflow/providers/common/sql/version_compat.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_bulk_load.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_column_table_check.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_execute_query.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_insert_rows.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_threshold_check.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/system/common/sql/example_sql_value_check.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/datafusion/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/datafusion/test_base.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/datafusion/test_exceptions.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/datafusion/test_format_handlers.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/decorators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/decorators/test_analytics.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/decorators/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/dialects/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/dialects/test_dialect.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/test_dbapi.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/test_handlers.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/test_lineage.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/hooks/test_sqlparse.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/operators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/operators/test_analytics.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/operators/test_generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/operators/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/operators/test_sql_execute.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/sensors/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/sensors/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/triggers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/tests/unit/common/sql/triggers/test_sql.py +0 -0
{apache_airflow_providers_common_sql-2.2.0 → apache_airflow_providers_common_sql-2.3.0rc1}/PKG-INFO
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: apache-airflow-providers-common-sql
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0rc1
|
|
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
|
-
Requires-Python: >=3.
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
9
|
Description-Content-Type: text/x-rst
|
|
10
10
|
License-Expression: Apache-2.0
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -15,7 +15,6 @@ Classifier: Intended Audience :: Developers
|
|
|
15
15
|
Classifier: Intended Audience :: System Administrators
|
|
16
16
|
Classifier: Framework :: Apache Airflow
|
|
17
17
|
Classifier: Framework :: Apache Airflow :: Provider
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
@@ -23,8 +22,8 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
23
22
|
Classifier: Topic :: System :: Monitoring
|
|
24
23
|
License-File: LICENSE
|
|
25
24
|
License-File: NOTICE
|
|
26
|
-
Requires-Dist: apache-airflow>=2.11.
|
|
27
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.14.
|
|
25
|
+
Requires-Dist: apache-airflow>=2.11.0rc1
|
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.14.1rc1
|
|
28
27
|
Requires-Dist: sqlparse>=0.5.1
|
|
29
28
|
Requires-Dist: more-itertools>=9.0.0
|
|
30
29
|
Requires-Dist: methodtools>=0.4.7
|
|
@@ -37,10 +36,10 @@ Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13" a
|
|
|
37
36
|
Requires-Dist: pandas>=2.3.3 ; extra == "pandas" and ( python_version >="3.14")
|
|
38
37
|
Requires-Dist: polars>=1.26.0 ; extra == "polars"
|
|
39
38
|
Requires-Dist: pyiceberg-core>=0.8.0 ; extra == "pyiceberg-core"
|
|
40
|
-
Requires-Dist: sqlalchemy>=1.4.54 ; extra == "sqlalchemy"
|
|
39
|
+
Requires-Dist: sqlalchemy>=1.4.54,!=2.1.0 ; extra == "sqlalchemy"
|
|
41
40
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
42
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
43
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
41
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/changelog.html
|
|
42
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/2.3.0
|
|
44
43
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
45
44
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
46
45
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -83,7 +82,7 @@ Import-Namespace: airflow.providers.common
|
|
|
83
82
|
|
|
84
83
|
Package ``apache-airflow-providers-common-sql``
|
|
85
84
|
|
|
86
|
-
Release: ``2.
|
|
85
|
+
Release: ``2.3.0``
|
|
87
86
|
|
|
88
87
|
|
|
89
88
|
`Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
|
|
@@ -96,7 +95,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
|
|
|
96
95
|
are in ``airflow.providers.common.sql`` python package.
|
|
97
96
|
|
|
98
97
|
You can find package information and changelog for the provider
|
|
99
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
98
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/>`_.
|
|
100
99
|
|
|
101
100
|
Installation
|
|
102
101
|
------------
|
|
@@ -105,7 +104,7 @@ You can install this package on top of an existing Airflow installation (see ``R
|
|
|
105
104
|
for the minimum Airflow version supported) via
|
|
106
105
|
``pip install apache-airflow-providers-common-sql``
|
|
107
106
|
|
|
108
|
-
The package supports the following python versions: 3.
|
|
107
|
+
The package supports the following python versions: 3.11,3.12,3.13,3.14
|
|
109
108
|
|
|
110
109
|
Requirements
|
|
111
110
|
------------
|
|
@@ -150,7 +149,7 @@ Extra Dependencies
|
|
|
150
149
|
``pandas`` ``pandas[sql-other]>=2.1.2; python_version <"3.13"``, ``pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"``, ``pandas>=2.3.3; python_version >="3.14"``
|
|
151
150
|
``openlineage`` ``apache-airflow-providers-openlineage``
|
|
152
151
|
``polars`` ``polars>=1.26.0``
|
|
153
|
-
``sqlalchemy`` ``sqlalchemy>=1.4.54``
|
|
152
|
+
``sqlalchemy`` ``sqlalchemy>=1.4.54,!=2.1.0``
|
|
154
153
|
``amazon`` ``apache-airflow-providers-amazon``
|
|
155
154
|
``datafusion`` ``datafusion>=50.0.0,<52.0.0``
|
|
156
155
|
``pyiceberg-core`` ``pyiceberg-core>=0.8.0``
|
|
@@ -158,5 +157,5 @@ Extra Dependencies
|
|
|
158
157
|
================== =======================================================================================================================================================================
|
|
159
158
|
|
|
160
159
|
The changelog for the provider package can be found in the
|
|
161
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
160
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/changelog.html>`_.
|
|
162
161
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-common-sql``
|
|
25
25
|
|
|
26
|
-
Release: ``2.
|
|
26
|
+
Release: ``2.3.0``
|
|
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/2.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -45,7 +45,7 @@ You can install this package on top of an existing Airflow installation (see ``R
|
|
|
45
45
|
for the minimum Airflow version supported) via
|
|
46
46
|
``pip install apache-airflow-providers-common-sql``
|
|
47
47
|
|
|
48
|
-
The package supports the following python versions: 3.
|
|
48
|
+
The package supports the following python versions: 3.11,3.12,3.13,3.14
|
|
49
49
|
|
|
50
50
|
Requirements
|
|
51
51
|
------------
|
|
@@ -90,7 +90,7 @@ Extra Dependencies
|
|
|
90
90
|
``pandas`` ``pandas[sql-other]>=2.1.2; python_version <"3.13"``, ``pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"``, ``pandas>=2.3.3; python_version >="3.14"``
|
|
91
91
|
``openlineage`` ``apache-airflow-providers-openlineage``
|
|
92
92
|
``polars`` ``polars>=1.26.0``
|
|
93
|
-
``sqlalchemy`` ``sqlalchemy>=1.4.54``
|
|
93
|
+
``sqlalchemy`` ``sqlalchemy>=1.4.54,!=2.1.0``
|
|
94
94
|
``amazon`` ``apache-airflow-providers-amazon``
|
|
95
95
|
``datafusion`` ``datafusion>=50.0.0,<52.0.0``
|
|
96
96
|
``pyiceberg-core`` ``pyiceberg-core>=0.8.0``
|
|
@@ -98,4 +98,4 @@ Extra Dependencies
|
|
|
98
98
|
================== =======================================================================================================================================================================
|
|
99
99
|
|
|
100
100
|
The changelog for the provider package can be found in the
|
|
101
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
101
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/changelog.html>`_.
|
|
@@ -25,6 +25,33 @@
|
|
|
25
25
|
Changelog
|
|
26
26
|
---------
|
|
27
27
|
|
|
28
|
+
2.3.0
|
|
29
|
+
.....
|
|
30
|
+
|
|
31
|
+
Features
|
|
32
|
+
~~~~~~~~
|
|
33
|
+
|
|
34
|
+
* ``Add Azure Blob Storage support to the DataFusion object storage layer (#73374)``
|
|
35
|
+
|
|
36
|
+
Bug Fixes
|
|
37
|
+
~~~~~~~~~
|
|
38
|
+
|
|
39
|
+
* ``Exclude SQLAlchemy 2.1.0 (#73865)``
|
|
40
|
+
|
|
41
|
+
Misc
|
|
42
|
+
~~~~
|
|
43
|
+
|
|
44
|
+
* ``Drop support for Python 3.10 (#74157)``
|
|
45
|
+
|
|
46
|
+
Doc-only
|
|
47
|
+
~~~~~~~~
|
|
48
|
+
|
|
49
|
+
* ``Update provider READMEs for the Python 3.11 baseline (#74158)``
|
|
50
|
+
|
|
51
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
52
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
53
|
+
* ``[main] Upgrade important CI environment (#73629)``
|
|
54
|
+
|
|
28
55
|
2.2.0
|
|
29
56
|
.....
|
|
30
57
|
|
|
@@ -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: 2.
|
|
82
|
+
Release: 2.3.0
|
|
83
83
|
|
|
84
84
|
Provider package
|
|
85
85
|
----------------
|
|
@@ -147,7 +147,7 @@ Extra Dependencies
|
|
|
147
147
|
``pandas`` ``pandas[sql-other]>=2.1.2; python_version <"3.13"``, ``pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"``, ``pandas>=2.3.3; python_version >="3.14"``
|
|
148
148
|
``openlineage`` ``apache-airflow-providers-openlineage``
|
|
149
149
|
``polars`` ``polars>=1.26.0``
|
|
150
|
-
``sqlalchemy`` ``sqlalchemy>=1.4.54``
|
|
150
|
+
``sqlalchemy`` ``sqlalchemy>=1.4.54,!=2.1.0``
|
|
151
151
|
``amazon`` ``apache-airflow-providers-amazon``
|
|
152
152
|
``datafusion`` ``datafusion>=50.0.0,<52.0.0``
|
|
153
153
|
``pyiceberg-core`` ``pyiceberg-core>=0.8.0``
|
|
@@ -160,5 +160,5 @@ Downloading official packages
|
|
|
160
160
|
You can download officially released packages and verify their checksums and signatures from the
|
|
161
161
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
162
162
|
|
|
163
|
-
* `The apache-airflow-providers-common-sql 2.
|
|
164
|
-
* `The apache-airflow-providers-common-sql 2.
|
|
163
|
+
* `The apache-airflow-providers-common-sql 2.3.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0.tar.gz.sha512>`__)
|
|
164
|
+
* `The apache-airflow-providers-common-sql 2.3.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_common_sql-2.3.0-py3-none-any.whl.sha512>`__)
|
|
@@ -297,10 +297,11 @@ Supported Storage Systems
|
|
|
297
297
|
-------------------------
|
|
298
298
|
- S3
|
|
299
299
|
- GCS
|
|
300
|
+
- Azure Blob Storage
|
|
300
301
|
- Local File System
|
|
301
302
|
|
|
302
303
|
.. note::
|
|
303
|
-
|
|
304
|
+
HTTP, Delta are not yet supported but will be added in the future.
|
|
304
305
|
|
|
305
306
|
|
|
306
307
|
|
|
@@ -362,6 +363,63 @@ resolved in this order:
|
|
|
362
363
|
:start-after: [START howto_analytics_operator_with_gcs]
|
|
363
364
|
:end-before: [END howto_analytics_operator_with_gcs]
|
|
364
365
|
|
|
366
|
+
Azure Storage
|
|
367
|
+
-------------
|
|
368
|
+
Use an ``az://`` URI with a ``conn_id`` pointing to a ``wasb`` connection.
|
|
369
|
+
``abfs://`` and ``abfss://`` URIs are not recognized yet. The account name
|
|
370
|
+
comes from ``host`` (its first DNS label) when set, falling back to
|
|
371
|
+
``login`` only when ``host`` is empty; only the public
|
|
372
|
+
``*.blob.core.windows.net`` cloud is supported, since DataFusion's binding
|
|
373
|
+
otherwise has no endpoint override -- unless the worker sets
|
|
374
|
+
``AZURE_STORAGE_ENDPOINT``/``AZURE_ENDPOINT`` for a real sovereign-cloud
|
|
375
|
+
hostname. A ``host:port`` address (the Azurite emulator's shape, e.g.
|
|
376
|
+
``azurite:10000``) is never a real DNS hostname and always raises instead,
|
|
377
|
+
even with those variables set: put the account name in ``login`` with
|
|
378
|
+
``host`` left empty for Azurite, alongside those same variables and
|
|
379
|
+
``AZURE_ALLOW_HTTP=true``. ``client_secret_auth_config`` (the authority
|
|
380
|
+
override ``WasbHook`` honors) is not read here.
|
|
381
|
+
|
|
382
|
+
The connection supplies one of the following credentials, checked in this
|
|
383
|
+
order (matching ``WasbHook.get_conn``):
|
|
384
|
+
|
|
385
|
+
1. Azure AD service principal -- ``tenant_id`` extra, with ``login`` as the
|
|
386
|
+
client ID and ``password`` as the client secret (both required together)
|
|
387
|
+
2. Shared key -- the ``shared_access_key`` extra
|
|
388
|
+
3. SAS token -- ``sas_token`` extra, as a query string
|
|
389
|
+
4. Shared key -- ``password``, or the ``account_key`` extra
|
|
390
|
+
5. None of the above -- ambient auth (see below)
|
|
391
|
+
|
|
392
|
+
**A worker environment variable can override the connection, but only from a
|
|
393
|
+
higher-priority tier.** DataFusion reads ``AZURE_*`` environment variables
|
|
394
|
+
first, and resolves credentials in this priority order:
|
|
395
|
+
|
|
396
|
+
1. Bearer token
|
|
397
|
+
2. Access key -- the shared-key connection's tier
|
|
398
|
+
3. Workload identity
|
|
399
|
+
4. Client secret -- the service-principal connection's tier
|
|
400
|
+
5. SAS -- the SAS connection's tier
|
|
401
|
+
|
|
402
|
+
Only a complete credential from an earlier tier can override the
|
|
403
|
+
connection -- a single bearer or access-key variable, or every variable a
|
|
404
|
+
multi-field tier needs. This raises when found, naming the variables,
|
|
405
|
+
instead of silently using the wrong identity.
|
|
406
|
+
|
|
407
|
+
With no explicit credential, authentication falls back to ``AZURE_*``
|
|
408
|
+
environment variables, managed identity, or workload identity. Unlike
|
|
409
|
+
``WasbHook`` (which tries ``az login`` automatically), DataFusion's
|
|
410
|
+
underlying ``object_store`` binding only tries the Azure CLI if
|
|
411
|
+
``AZURE_USE_AZURE_CLI=true`` is set; otherwise it defaults straight to
|
|
412
|
+
IMDS managed identity.
|
|
413
|
+
|
|
414
|
+
``connection_string``, ``managed_identity_client_id``, ``workload_identity_tenant_id``,
|
|
415
|
+
and a URL-form ``sas_token`` are not supported.
|
|
416
|
+
|
|
417
|
+
.. exampleinclude:: /../../sql/src/airflow/providers/common/sql/example_dags/example_analytics.py
|
|
418
|
+
:language: python
|
|
419
|
+
:dedent: 4
|
|
420
|
+
:start-after: [START howto_analytics_operator_with_azure]
|
|
421
|
+
:end-before: [END howto_analytics_operator_with_azure]
|
|
422
|
+
|
|
365
423
|
Local File System Storage
|
|
366
424
|
-------------------------
|
|
367
425
|
.. exampleinclude:: /../../sql/src/airflow/providers/common/sql/example_dags/example_analytics.py
|
|
@@ -23,12 +23,13 @@ description: |
|
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
25
|
lifecycle: production
|
|
26
|
-
source-date-epoch:
|
|
26
|
+
source-date-epoch: 1791328846
|
|
27
27
|
# Note that those versions are maintained by release manager - do not update them manually
|
|
28
28
|
# with the exception of case where other provider in sources has >= new provider version.
|
|
29
29
|
# In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
|
|
30
30
|
# to be done in the same PR
|
|
31
31
|
versions:
|
|
32
|
+
- 2.3.0
|
|
32
33
|
- 2.2.0
|
|
33
34
|
- 2.1.1
|
|
34
35
|
- 2.1.0
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
# IF YOU WANT TO MODIFY THIS FILE EXCEPT DEPENDENCIES, YOU SHOULD MODIFY THE TEMPLATE
|
|
21
21
|
# `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
22
22
|
[build-system]
|
|
23
|
-
requires = ["flit_core==4.0
|
|
23
|
+
requires = ["flit_core==4.1.0"]
|
|
24
24
|
build-backend = "flit_core.buildapi"
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-common-sql"
|
|
28
|
-
version = "2.
|
|
28
|
+
version = "2.3.0rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-common-sql for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
license = "Apache-2.0"
|
|
@@ -45,22 +45,21 @@ classifiers = [
|
|
|
45
45
|
"Intended Audience :: System Administrators",
|
|
46
46
|
"Framework :: Apache Airflow",
|
|
47
47
|
"Framework :: Apache Airflow :: Provider",
|
|
48
|
-
"Programming Language :: Python :: 3.10",
|
|
49
48
|
"Programming Language :: Python :: 3.11",
|
|
50
49
|
"Programming Language :: Python :: 3.12",
|
|
51
50
|
"Programming Language :: Python :: 3.13",
|
|
52
51
|
"Programming Language :: Python :: 3.14",
|
|
53
52
|
"Topic :: System :: Monitoring",
|
|
54
53
|
]
|
|
55
|
-
requires-python = ">=3.
|
|
54
|
+
requires-python = ">=3.11"
|
|
56
55
|
|
|
57
56
|
# The dependencies should be modified in place in the generated file.
|
|
58
57
|
# Any change in the dependencies is preserved when the file is regenerated
|
|
59
58
|
# Make sure to run ``prek update-providers-dependencies --all-files``
|
|
60
59
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
61
60
|
dependencies = [
|
|
62
|
-
"apache-airflow>=2.11.
|
|
63
|
-
"apache-airflow-providers-common-compat>=1.14.
|
|
61
|
+
"apache-airflow>=2.11.0rc1",
|
|
62
|
+
"apache-airflow-providers-common-compat>=1.14.1rc1",
|
|
64
63
|
"sqlparse>=0.5.1",
|
|
65
64
|
"more-itertools>=9.0.0",
|
|
66
65
|
# The methodtools dependency is necessary since the introduction of dialects:
|
|
@@ -85,7 +84,7 @@ dependencies = [
|
|
|
85
84
|
"polars>=1.26.0"
|
|
86
85
|
]
|
|
87
86
|
"sqlalchemy" = [
|
|
88
|
-
"sqlalchemy>=1.4.54",
|
|
87
|
+
"sqlalchemy>=1.4.54,!=2.1.0",
|
|
89
88
|
]
|
|
90
89
|
"amazon" = [
|
|
91
90
|
"apache-airflow-providers-amazon"
|
|
@@ -148,8 +147,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
148
147
|
apache-airflow-providers-standard = {workspace = true}
|
|
149
148
|
|
|
150
149
|
[project.urls]
|
|
151
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
152
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/2.
|
|
150
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/2.3.0"
|
|
151
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-common-sql/2.3.0/changelog.html"
|
|
153
152
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
154
153
|
"Source Code" = "https://github.com/apache/airflow"
|
|
155
154
|
"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__ = "2.
|
|
32
|
+
__version__ = "2.3.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.11.0"
|
|
@@ -48,6 +48,7 @@ class StorageType(str, Enum):
|
|
|
48
48
|
|
|
49
49
|
S3 = "s3"
|
|
50
50
|
GCS = "gcs"
|
|
51
|
+
AZURE = "azure"
|
|
51
52
|
LOCAL = "local"
|
|
52
53
|
|
|
53
54
|
|
|
@@ -117,6 +118,8 @@ class DataSourceConfig:
|
|
|
117
118
|
return StorageType.S3
|
|
118
119
|
if self.uri.startswith("gs://"):
|
|
119
120
|
return StorageType.GCS
|
|
121
|
+
if self.uri.startswith("az://"):
|
|
122
|
+
return StorageType.AZURE
|
|
120
123
|
if self.uri.startswith("file://"):
|
|
121
124
|
return StorageType.LOCAL
|
|
122
125
|
raise ValueError(f"Unsupported storage type for URI: {self.uri}")
|