apache-airflow-providers-common-sql 1.28.1__tar.gz → 1.28.2rc1__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-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/PKG-INFO +7 -7
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/README.rst +3 -3
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/changelog.rst +17 -4
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/index.rst +3 -3
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/provider.yaml +2 -1
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/pyproject.toml +4 -4
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/__init__.py +1 -1
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/dialects/dialect.py +12 -15
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/hooks/sql.py +1 -1
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/dialects/test_dialect.py +0 -1
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/hooks/test_dbapi.py +1 -2
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/hooks/test_sql.py +1 -2
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/connections.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/dataframes.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/dialects.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/integration-logos/sql.png +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/operators.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/docs/supported-database-types.rst +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/LICENSE +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/README_API.md +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/dialects/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/dialects/dialect.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/doc/adr/0001-record-architecture-decisions.md +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/doc/adr/0002-return-common-data-structure-from-dbapihook-derived-hooks.md +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/doc/adr/0003-introduce-notion-of-dialects-in-dbapihook.md +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/get_provider_info.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/get_provider_info.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/hooks/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/hooks/handlers.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/hooks/handlers.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/hooks/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/operators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/operators/generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/operators/generic_transfer.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/operators/sql.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/sensors/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/sensors/sql.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/sensors/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/triggers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/triggers/sql.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/triggers/sql.pyi +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/src/airflow/providers/common/sql/version_compat.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/example_generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/example_sql_column_table_check.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/example_sql_execute_query.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/example_sql_insert_rows.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/system/common/sql/example_sql_threshold_check.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/dialects/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/hooks/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/hooks/test_handlers.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/hooks/test_sqlparse.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/operators/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/operators/test_generic_transfer.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/operators/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/operators/test_sql_execute.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/sensors/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/sensors/test_sql.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/triggers/__init__.py +0 -0
- {apache_airflow_providers_common_sql-1.28.1 → apache_airflow_providers_common_sql-1.28.2rc1}/tests/unit/common/sql/triggers/test_sql.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-common-sql
|
|
3
|
-
Version: 1.28.
|
|
3
|
+
Version: 1.28.2rc1
|
|
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>
|
|
@@ -20,7 +20,7 @@ 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.
|
|
23
|
+
Requires-Dist: apache-airflow>=2.10.0rc1
|
|
24
24
|
Requires-Dist: sqlparse>=0.5.1
|
|
25
25
|
Requires-Dist: more-itertools>=9.0.0
|
|
26
26
|
Requires-Dist: methodtools>=0.4.7
|
|
@@ -29,8 +29,8 @@ Requires-Dist: pandas[sql-other]>=2.1.2 ; extra == "pandas" and ( python_version
|
|
|
29
29
|
Requires-Dist: pandas>=2.2.3 ; extra == "pandas" and ( python_version >="3.13")
|
|
30
30
|
Requires-Dist: polars>=1.26.0 ; extra == "polars"
|
|
31
31
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
32
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.
|
|
33
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.
|
|
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
|
|
34
34
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
35
35
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
36
36
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -64,7 +64,7 @@ Provides-Extra: polars
|
|
|
64
64
|
|
|
65
65
|
Package ``apache-airflow-providers-common-sql``
|
|
66
66
|
|
|
67
|
-
Release: ``1.28.
|
|
67
|
+
Release: ``1.28.2``
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
`Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
|
|
@@ -77,7 +77,7 @@ This is a provider package for ``common.sql`` provider. All classes for this pro
|
|
|
77
77
|
are in ``airflow.providers.common.sql`` python package.
|
|
78
78
|
|
|
79
79
|
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.
|
|
80
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/>`_.
|
|
81
81
|
|
|
82
82
|
Installation
|
|
83
83
|
------------
|
|
@@ -131,5 +131,5 @@ Extra Dependencies
|
|
|
131
131
|
=============== ================================================================================================
|
|
132
132
|
|
|
133
133
|
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.
|
|
134
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html>`_.
|
|
135
135
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-common-sql``
|
|
25
25
|
|
|
26
|
-
Release: ``1.28.
|
|
26
|
+
Release: ``1.28.2``
|
|
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.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -90,4 +90,4 @@ Extra Dependencies
|
|
|
90
90
|
=============== ================================================================================================
|
|
91
91
|
|
|
92
92
|
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.
|
|
93
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.2/changelog.html>`_.
|
|
@@ -25,11 +25,26 @@
|
|
|
25
25
|
Changelog
|
|
26
26
|
---------
|
|
27
27
|
|
|
28
|
-
1.28.
|
|
28
|
+
1.28.2
|
|
29
29
|
......
|
|
30
30
|
|
|
31
|
+
Misc
|
|
32
|
+
~~~~
|
|
33
|
+
|
|
34
|
+
* ``fix mypy type errors in common/sql provider for sqlalchemy 2 upgrade (#56824)``
|
|
35
|
+
|
|
36
|
+
Doc-only
|
|
37
|
+
~~~~~~~~
|
|
38
|
+
|
|
39
|
+
* ``Remove placeholder Release Date in changelog and index files (#56056)``
|
|
40
|
+
|
|
41
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
42
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
43
|
+
* ``Enable PT011 rule to prvoider tests (#56495)``
|
|
44
|
+
|
|
45
|
+
1.28.1
|
|
46
|
+
......
|
|
31
47
|
|
|
32
|
-
Release Date: ``|PypiReleaseDate|``
|
|
33
48
|
|
|
34
49
|
Bug Fixes
|
|
35
50
|
~~~~~~~~~
|
|
@@ -44,8 +59,6 @@ Bug Fixes
|
|
|
44
59
|
......
|
|
45
60
|
|
|
46
61
|
|
|
47
|
-
Release Date: ``|PypiReleaseDate|``
|
|
48
|
-
|
|
49
62
|
Features
|
|
50
63
|
~~~~~~~~
|
|
51
64
|
|
|
@@ -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.
|
|
82
|
+
Release: 1.28.2
|
|
83
83
|
|
|
84
84
|
Provider package
|
|
85
85
|
----------------
|
|
@@ -133,5 +133,5 @@ Downloading official packages
|
|
|
133
133
|
You can download officially released packages and verify their checksums and signatures from the
|
|
134
134
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
135
135
|
|
|
136
|
-
* `The apache-airflow-providers-common-sql 1.28.
|
|
137
|
-
* `The apache-airflow-providers-common-sql 1.28.
|
|
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>`__)
|
|
@@ -22,12 +22,13 @@ description: |
|
|
|
22
22
|
`Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1761116577
|
|
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.28.2
|
|
31
32
|
- 1.28.1
|
|
32
33
|
- 1.28.0
|
|
33
34
|
- 1.27.5
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-common-sql"
|
|
28
|
-
version = "1.28.
|
|
28
|
+
version = "1.28.2rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-common-sql for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -57,7 +57,7 @@ requires-python = ">=3.10"
|
|
|
57
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
|
-
"apache-airflow>=2.10.
|
|
60
|
+
"apache-airflow>=2.10.0rc1",
|
|
61
61
|
"sqlparse>=0.5.1",
|
|
62
62
|
"more-itertools>=9.0.0",
|
|
63
63
|
# The methodtools dependency is necessary since the introduction of dialects:
|
|
@@ -121,8 +121,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
121
121
|
apache-airflow-providers-standard = {workspace = true}
|
|
122
122
|
|
|
123
123
|
[project.urls]
|
|
124
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.
|
|
125
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.28.
|
|
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"
|
|
126
126
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
127
127
|
"Source Code" = "https://github.com/apache/airflow"
|
|
128
128
|
"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__ = "1.28.
|
|
32
|
+
__version__ = "1.28.2"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.10.0"
|
|
@@ -26,6 +26,7 @@ from airflow.utils.log.logging_mixin import LoggingMixin
|
|
|
26
26
|
|
|
27
27
|
if TYPE_CHECKING:
|
|
28
28
|
from sqlalchemy.engine import Inspector
|
|
29
|
+
from sqlalchemy.engine.interfaces import ReflectedColumn
|
|
29
30
|
|
|
30
31
|
T = TypeVar("T")
|
|
31
32
|
|
|
@@ -85,16 +86,13 @@ class Dialect(LoggingMixin):
|
|
|
85
86
|
return self.escape_word_format.format(word)
|
|
86
87
|
return word
|
|
87
88
|
|
|
88
|
-
def unescape_word(self, word: str
|
|
89
|
+
def unescape_word(self, word: str) -> str:
|
|
89
90
|
"""
|
|
90
91
|
Remove escape characters from each part of a dotted identifier (e.g., schema.table).
|
|
91
92
|
|
|
92
93
|
:param word: Escaped schema, table, or column name, potentially with multiple segments.
|
|
93
94
|
:return: The word without escaped characters.
|
|
94
95
|
"""
|
|
95
|
-
if not word:
|
|
96
|
-
return word
|
|
97
|
-
|
|
98
96
|
escape_char_start = self.escape_word_format[0]
|
|
99
97
|
escape_char_end = self.escape_word_format[-1]
|
|
100
98
|
|
|
@@ -112,20 +110,19 @@ class Dialect(LoggingMixin):
|
|
|
112
110
|
|
|
113
111
|
@lru_cache(maxsize=None)
|
|
114
112
|
def get_column_names(
|
|
115
|
-
self,
|
|
113
|
+
self,
|
|
114
|
+
table: str,
|
|
115
|
+
schema: str | None = None,
|
|
116
|
+
predicate: Callable[[T | ReflectedColumn], bool] = lambda column: True,
|
|
116
117
|
) -> list[str] | None:
|
|
117
118
|
if schema is None:
|
|
118
119
|
table, schema = self.extract_schema_from_table(table)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
schema=self.unescape_word(schema) if schema else None,
|
|
126
|
-
),
|
|
127
|
-
)
|
|
128
|
-
)
|
|
120
|
+
table_name = self.unescape_word(table)
|
|
121
|
+
schema = self.unescape_word(schema) if schema else None
|
|
122
|
+
column_names = []
|
|
123
|
+
for column in self.inspector.get_columns(table_name=table_name, schema=schema):
|
|
124
|
+
if predicate(column):
|
|
125
|
+
column_names.append(column["name"])
|
|
129
126
|
self.log.debug("Column names for table '%s': %s", table, column_names)
|
|
130
127
|
return column_names
|
|
131
128
|
|
|
@@ -57,7 +57,6 @@ class TestDialect:
|
|
|
57
57
|
def test_unescape_word_with_different_format(self):
|
|
58
58
|
self.test_db_hook.escape_word_format = "[{}]"
|
|
59
59
|
dialect = Dialect(self.test_db_hook)
|
|
60
|
-
assert not dialect.unescape_word(None)
|
|
61
60
|
assert dialect.unescape_word("table") == "table"
|
|
62
61
|
assert dialect.unescape_word("t@ble") == "t@ble"
|
|
63
62
|
assert dialect.unescape_word("table_name") == "table_name"
|
|
@@ -577,9 +577,8 @@ class TestDbApiHook:
|
|
|
577
577
|
assert result == [obj, obj]
|
|
578
578
|
|
|
579
579
|
def test_run_no_queries(self):
|
|
580
|
-
with pytest.raises(ValueError
|
|
580
|
+
with pytest.raises(ValueError, match="List of SQL statements is empty"):
|
|
581
581
|
self.db_hook.run(sql=[])
|
|
582
|
-
assert err.value.args[0] == "List of SQL statements is empty"
|
|
583
582
|
|
|
584
583
|
def test_run_and_log_db_messages(self):
|
|
585
584
|
statement = "SQL"
|
|
@@ -239,9 +239,8 @@ class TestDbApiHook:
|
|
|
239
239
|
)
|
|
240
240
|
def test_no_query(self, empty_statement):
|
|
241
241
|
dbapi_hook = mock_db_hook(DbApiHook)
|
|
242
|
-
with pytest.raises(ValueError
|
|
242
|
+
with pytest.raises(ValueError, match="List of SQL statements is empty"):
|
|
243
243
|
dbapi_hook.run(sql=empty_statement)
|
|
244
|
-
assert err.value.args[0] == "List of SQL statements is empty"
|
|
245
244
|
|
|
246
245
|
@pytest.mark.db_test
|
|
247
246
|
def test_placeholder_config_from_extra(self):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|