NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #985 most downloaded on PyPI
Provider package apache-airflow-providers-common-sql for Apache Airflow
Last release 5 days ago
29 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
4 years old
158 releases · first in 2022
- Template every connection id accepted by provider operators
Release Date: 2026-09-29
Template every connection id accepted by provider operators (#73286)
Add GCS support to the DataFusion object storage layer (#73370)
Allow DataSourceConfig to represent a plain database table (#73273)
Read the legacy extra__google_cloud_platform__ prefix for GCS credentials (#73613)
Fix DataFusion storage-type error message on Python 3.11+ (#73413)
Reject a DataSourceConfig with no uri or format in DataFusionEngine (#73287)
Fix exception messages rendering as a tuple instead of the value (#73296)
Rewrite the 'common.sql' connections guide and fix the dialect extra name (#73605)
Fix grammar in the dialects documentation (#73145)
Template every connection id accepted by provider operators (#73286)
Add GCS support to the DataFusion object storage layer (#73370)
Allow DataSourceConfig to represent a plain database table (#73273)
Read the legacy extra__google_cloud_platform__ prefix for GCS credentials (#73613)
Fix DataFusion storage-type error message on Python 3.11+ (#73413)
Reject a DataSourceConfig with no uri or format in DataFusionEngine (#73287)
Fix exception messages rendering as a tuple instead of the value (#73296)
Rewrite the 'common.sql' connections guide and fix the dialect extra name (#73605)
Fix grammar in the dialects documentation (#73145)
One column per quarter.
Nothing published for this version
- Add type annotations to sql hooks
Release Date: 2026-08-23
Add type annotations to sql hooks (#70815)
Nothing published for this version
- Add SQLBulkLoadOperator to Common SQL Provider
Release Date: 2026-08-08
Add SQLBulkLoadOperator to Common SQL Provider (#69362)
Fix SQLColumnCheckOperator crash on non-numeric column bounds (#70895)
Fix SQL check tolerance for negative expected values (#69736)
Fix SQL value checks for negative expected values (#69893)
Add SQLBulkLoadOperator to Common SQL Provider (#69362)
Fix SQLColumnCheckOperator crash on non-numeric column bounds (#70895)
Fix SQL check tolerance for negative expected values (#69736)
Fix SQL value checks for negative expected values (#69893)
Nothing published for this version
Bump stylelint to remove vulnerable sub-dependency
New Features """"""""""""
PythonVirtualenvDecorator to Taskflow API (#14761)Taskgroup decorator (#15034)SubprocessHook for running commands from operators (#13423)WeekDayBranchOperator (#13997)worker_pod_pending_timeout support (#15263)template_fields_renderers additions (#15130)AirflowSkipException on exit code 99 (by default, configurable) (#13421) (#14963)airflow jobs check CLI command to check health of jobs (Scheduler etc) (#14519)DateTimeBranchOperator to BranchDateTimeOperator (#14720)Improvements """"""""""""
DbApiHook (#15581)apply_default to subclasses of BaseOperator (#15667)KubernetesExecutor pod templates to allow access to IAM permissions (#15669)airflow db check-migrations (#15662)secret_key when Webserver > 1 (#15546)JSONFormatter (#15414)on_failure_callback when SIGTERM is received (#15172)worker_refresh_interval to 6000 seconds (#14970)[celery] default_queue config to [operators] default_queue to re-use between executors (#14699)Bug Fixes """""""""
updateTaskInstancesState API endpoint when dry_run not passed (#15889)drawDagStatsForDag in dags.html (#13884)NotPreviouslySkippedDep (#13933)KubernetesExecutor (#14795)KubernetesPodOperator (#15388)dag.partial_subset (#13700) (#15308)pod_id for KubernetesPodOperator (#15445)pod_id ends with hyphen in KubernetesPodOperator (#15443)pool_slots > 1 (#15426)sync-perm to work correctly when update_fab_perms = False (#14847)GCSObjectsWtihPrefixExistenceSensor (#14179)CeleryKubernetesExecutor bug (#13247)StackdriverTaskHandler (#13784)func.sum may return Decimal that break rest APIs (#15585)AlreadyExists exception when the execution_date is same (#15174)sync_metadata inside DagFileProcessorManager (#15121)docker-py update to resolve docker op issues (#15731)user_id from API schema (#15117)airflow info work with pipes (#14528)CollectionInfo in all Collections that have total_entries (#14366)task_instance_mutation_hook when importing airflow.models.dagrun (#15851)Doc only changes """"""""""""""""
markdownlint and yamllint config files (#15682)git_sync_template.yaml (#13197)Misc/Internal """""""""""""
logging.exception redundancy (#14823)stylelint to remove vulnerable sub-dependency (#15784)ssri from 6.0.1 to 6.0.2 in /airflow/www (#15437)datepicker for task instance detail view (#15284)tableau extra (#13595)cached_property on Python 3.8 where possible (#14606)flynt. (#13732)jquery ready instead of vanilla js (#15258)Webpack entries (#14551)- Make psycopg (v3) the default synchronous Postgres driver
Release Date: 2026-07-28
Make psycopg (v3) the default synchronous Postgres driver (#69526)
Make psycopg (v3) the default synchronous Postgres driver (#69526)
Nothing published for this version
Remove extra/needless deprecation warnings from airflow.contrib module
TypeError when Serializing & sorting iterable properties of DAGs (#15395)on_load trigger for folder-based plugins (#15208)kubernetes cleanup-pods subcommand will only clean up Airflow-created Pods (#15204)pod_template_file in KubernetesExecutor (#15197)executor_config breaks Graph View in UI (#15199)dagrun.schedule_delay metric (#15105)executor_config is passed (#14323)Lax for cookie_samesite when empty string is passed (#14183)dag.cli() KeyError (#13647)[kubernetes] enable_tcp_keepalive for new installs to True (#15338)libyaml C library when available. (#14577)airflow dags show command display TaskGroups (#14269)extra connection field. (#12944)Release Date: 2026-07-10
Align hook run() annotations with None-able handler results (#69230)
Align hook run() annotations with None-able handler results (#69230)
Nothing published for this version
Fix Deprecation for configuration.getsection
sql_alchemy_conn_secret (#13260)DROP CONSTRAINT in MySQL during airflow db upgrade (#13239)sync-perm (#13377)datatables.net from 1.10.21 to 1.10.22 in /airflow/www (#13143)datatables.net JS to 1.10.23 (#13253)dompurify from 2.0.12 to 2.2.6 in /airflow/www (#13164)cattrs version (#13223)python-daemon limit for python 3.8+ to fix daemon crash (#13540)worker_concurrency to 16 (#13612)dag_id is None (#13619)continue_token for cleanup list pods (#13563)max_tis_per_query to 0 now correctly removes the limit (#13512)BaseBranchOperator will push to xcom by default (#13704) (#13763)configuration.getsection (#13804)Website.can_read access to default roles. (#13923)FileTaskHandler (#14001)v1/config endpoint respect webserver expose_config setting (#14020)min_file_process_interval to decrease CPU Usage (#13664)os.fork & CeleryExecutor (#13265)example_kubernetes_executor example dag (#13216)flask-swagger, funcsigs (#13178)queued_by_job_id & external_executor_id Columns to TI View (#13266)json-merge-patch an optional library and unpin it (#13175)setup.py to better reflect changes in providers (#13314)pyjwt and Add integration tests for Apache Pinot (#13195)setup.cfg (#13409)__eq__ methods in models Dag and BaseOperator (#13449)contextdecorator (#13455)mysql-connector-python to allow 8.0.22 (#13370)NotFound response for DELETE methods in OpenAPI YAML (#13550)[core] lazy_load_plugins is False (#13578)colorlog dependency (#13176)python3-openid dependency (#13714)__repr__ for Executors (#13753)conn_type is missing (#13778)get_connnection REST endpoint (#13885)airflow_local_settings.py to fix an error message (#13927)TriggerDagRunOperator (#13964)start_date (REST API) (#13959)OperationalError (#14032)rbac UI (#13569)Release Date: 2026-06-07
Add prek hook enforcing the "example" tag on example DAGs (#67354)
Add prek hook enforcing the "example" tag on example DAGs (#67354)
Nothing published for this version
We’ve tried to make as few breaking changes as possible and to provide deprecation path in the code, especially in the case of anything called in the…
The full changelog is about 3,000 lines long (already excluding everything backported to 1.10), so for now I’ll simply share some of the major features in 2.0.0 compared to 1.10.14:
(Known in 2.0.0alphas as Functional DAGs.)
DAGs are now much much nicer to author especially when using PythonOperator. Dependencies are handled more clearly and XCom is nicer to use
A quick teaser of what DAGs can now look like:
from airflow.decorators import dag, task
from airflow.utils.dates import days_ago
@dag(default_args={'owner': 'airflow'}, schedule_interval=None, start_date=days_ago(2))
def tutorial_taskflow_api_etl():
@task
def extract():
return {"1001": 301.27, "1002": 433.21, "1003": 502.22}
@task
def transform(order_data_dict: dict) -> dict:
total_order_value = 0
for value in order_data_dict.values():
total_order_value += value
return {"total_order_value": total_order_value}
@task()
def load(total_order_value: float):
print("Total order value is: %.2f" % total_order_value)
order_data = extract()
order_summary = transform(order_data)
load(order_summary["total_order_value"])
tutorial_etl_dag = tutorial_taskflow_api_etl()
We now have a fully supported, no-longer-experimental API with a comprehensive OpenAPI specification
Read more here:
REST API Documentation.
As part of AIP-15 (Scheduler HA+performance) and other work Kamil did, we significantly improved the performance of the Airflow Scheduler. It now starts tasks much, MUCH quicker.
Over at Astronomer.io we’ve benchmarked the scheduler—it’s fast (we had to triple check the numbers as we don’t quite believe them at first!)
It’s now possible and supported to run more than a single scheduler instance. This is super useful for both resiliency (in case a scheduler goes down) and scheduling performance.
To fully use this feature you need Postgres 9.6+ or MySQL 8+ (MySQL 5, and MariaDB won’t work with more than one scheduler I’m afraid).
There’s no config or other set up required to run more than one scheduler—just start up a scheduler somewhere else (ensuring it has access to the DAG files) and it will cooperate with your existing schedulers through the database.
For more information, read the Scheduler HA documentation.
SubDAGs were commonly used for grouping tasks in the UI, but they had many drawbacks in their execution behaviour (primarirly that they only executed a single task in parallel!) To improve this experience, we’ve introduced “Task Groups”: a method for organizing tasks which provides the same grouping behaviour as a subdag without any of the execution-time drawbacks.
SubDAGs will still work for now, but we think that any previous use of SubDAGs can now be replaced with task groups. If you find an example where this isn’t the case, please let us know by opening an issue on GitHub
For more information, check out the Task Group documentation.
We’ve given the Airflow UI a visual refresh and updated some of the styling. Check out the UI section of the docs for screenshots.
We have also added an option to auto-refresh task states in Graph View so you no longer need to continuously press the refresh button :).
If you make heavy use of sensors in your Airflow cluster, you might find that sensor execution takes up a significant proportion of your cluster even with “reschedule” mode. To improve this, we’ve added a new mode called “Smart Sensors”.
This feature is in “early-access”: it’s been well-tested by AirBnB and is “stable”/usable, but we reserve the right to make backwards-incompatible changes to it in a future release (if we have to. We’ll try very hard not to!)
For Airflow 2.0, we have re-architected the KubernetesExecutor in a fashion that is simultaneously faster, easier to understand, and more flexible for Airflow users. Users will now be able to access the full Kubernetes API to create a .yaml pod_template_file instead of specifying parameters in their airflow.cfg.
We have also replaced the executor_config dictionary with the pod_override parameter, which takes a Kubernetes V1Pod object for a 1:1 setting override. These changes have removed over three thousand lines of code from the KubernetesExecutor, which makes it run faster and creates fewer potential errors.
Airflow 2.0 is not a monolithic “one to rule them all” package. We’ve split Airflow into core and 61 (for now) provider packages. Each provider package is for either a particular external service (Google, Amazon, Microsoft, Snowflake), a database (Postgres, MySQL), or a protocol (HTTP/FTP). Now you can create a custom Airflow installation from “building” blocks and choose only what you need, plus add whatever other requirements you might have. Some of the common providers are installed automatically (ftp, http, imap, sqlite) as they are commonly used. Other providers are automatically installed when you choose appropriate extras when installing Airflow.
The provider architecture should make it much easier to get a fully customized, yet consistent runtime with the right set of Python dependencies.
But that’s not all: you can write your own custom providers and add things like custom connection types, customizations of the Connection Forms, and extra links to your operators in a manageable way. You can build your own provider and install it as a Python package and have your customizations visible right in the Airflow UI.
Security
As part of Airflow 2.0 effort, there has been a conscious focus on Security and reducing areas of exposure. This is represented across different functional areas in different forms. For example, in the new REST API, all operations now require authorization. Similarly, in the configuration settings, the Fernet key is now required to be specified.
Configuration in the form of the airflow.cfg file has been rationalized further in distinct sections, specifically around “core”. Additionally, a significant amount of configuration options have been deprecated or moved to individual component-specific configuration files, such as the pod-template-file for Kubernetes execution-related configuration.
We’ve tried to make as few breaking changes as possible and to provide deprecation path in the code, especially in the case of anything called in the DAG. That said, please read through UPDATING.md to check what might affect you. For example: We re-organized the layout of operators (they now all live under airflow.providers.*) but the old names should continue to work - you’ll just notice a lot of DeprecationWarnings that need to be fixed up.
Release Date: 2026-05-23
Warning
Breaking Change: The default execution mode for paginated ( page_size + string SQL) GenericTransfer tasks has changed. Previously, these tasks always ran in deferred mode (using deferrable execution). Starting with this release, they now run synchronously by default unless you explicitly opt in to deferrable mode.
This is a silent behavior change for any existing DAG using paginated GenericTransfer. If you want to restore the old behavior (always defer execution):
Pass deferrable=True to each affected GenericTransfer task, or
Set the global config option [operators] default_deferrable = true to make all operators deferrable by default.
Review your DAGs and configuration if you rely on deferred execution for paginated GenericTransfer tasks.
Add standardized SQL check representation for listeners (#66849)
Warning
Breaking Change: The default execution mode for paginated (page_size + string SQL) GenericTransfer tasks has changed. Previously, these tasks always ran in deferred mode (using deferrable execution). Starting with this release, they now run synchronously by default unless you explicitly opt in to deferrable mode.
This is a silent behavior change for any existing DAG using paginated GenericTransfer. If you want to restore the old behavior (always defer execution):
Pass deferrable=True to each affected GenericTransfer task, or
Set the global config option [operators] default_deferrable = true to make all operators deferrable by default.
Review your DAGs and configuration if you rely on deferred execution for paginated GenericTransfer tasks.
Add standardized SQL check representation for listeners (#66849)
Nothing published for this version
- GenericTransfer: switch paginated mode to non-deferred default with opt-in deferral
Release Date: 2026-05-11
GenericTransfer: switch paginated mode to non-deferred default with opt-in deferral (#64321)
GenericTransfer: switch paginated mode to non-deferred default with opt-in deferral (#64321)
Nothing published for this version
- Add 'accept_none' to 'SQLTableCheckOperator'
Release Date: 2026-04-26
Add 'accept_none' to 'SQLTableCheckOperator' (#63210)
Nothing published for this version
- Simplify default rows limit return result
Release Date: 2026-03-28
Simplify default rows limit return result (#64183)
Removed logging of rows length in SQLInsertRowsOperator to avoid crash on non materialized rows (#63346)
Fix provider YAML validation for common SQL analytics operator (#63393)
Add Python 3.14 Support (#63520)
Simplify default rows limit return result (#64183)
Removed logging of rows length in SQLInsertRowsOperator to avoid crash on non materialized rows (#63346)
Fix provider YAML validation for common SQL analytics operator (#63393)
Add Python 3.14 Support (#63520)
Nothing published for this version
- Add Iceberg support to AnalyticsOperator
Release Date: 2026-03-13
Add Iceberg support to AnalyticsOperator (#62754)
Add @task.analytics Decorator (#62648)
Add ObjectStorage support to LLMSQLQueryOperator via DataFusion (#62640)
Add 'LLMSQLQueryOperator' and '@task.llm_sql' to common.ai provider (#62599)
AIP-99: Add AnalyticsOperator (#62232)
Cache DbApiHook.inspector to avoid creating N engines (#62594)
Consolidate 'SkipMixin' imports through 'common-compat' layer (#62776)
Move determine_kwargs and KeywordParameters to SDK DecoratedOperator (#62746)
Add Iceberg support to AnalyticsOperator (#62754)
Add @task.analytics Decorator (#62648)
Add ObjectStorage support to LLMSQLQueryOperator via DataFusion (#62640)
Add 'LLMSQLQueryOperator' and '@task.llm_sql' to common.ai provider (#62599)
AIP-99: Add AnalyticsOperator (#62232)
Cache DbApiHook.inspector to avoid creating N engines (#62594)
Consolidate 'SkipMixin' imports through 'common-compat' layer (#62776)
Move determine_kwargs and KeywordParameters to SDK DecoratedOperator (#62746)
Nothing published for this version
- feat: Add Hook Level Lineage to SQL hooks
Release Date: 2026-03-02
feat: Add Hook Level Lineage to SQL hooks (#61535)
'task-sql-decorator': Introducing the '@task.sql' decorator (#60851)
Bump min sqlalchemy version to 1.4.54 (#62299)
feat: Add Hook Level Lineage to SQL hooks (#61535)
'task-sql-decorator': Introducing the '@task.sql' decorator (#60851)
Bump min sqlalchemy version to 1.4.54 (#62299)
Nothing published for this version
Nothing published for this version
- Implement specialized get_first and get_records method in OracleHook to avoid serialization issues with XCom's
Release Date: 2026-02-14
Implement specialized get_first and get_records method in OracleHook to avoid serialization issues with XCom's (#61144)
Add rows processor to GenericTransfer (#61143)
Implement specialized get_first and get_records method in OracleHook to avoid serialization issues with XCom's (#61144)
Add rows processor to GenericTransfer (#61143)
Nothing published for this version
- Add SQLAlchemy to the dev‑dependency group in providers
Release Date: 2026-02-02
Add SQLAlchemy to the dev‑dependency group in providers (#60472)
Add SQLAlchemy to the dev‑dependency group in providers (#60472)
Nothing published for this version
- Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers
Release Date: 2026-01-17
Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)
New year means updated Copyright notices (#60344)
Assorted SQLA2/Mypy fixes (#60094)
Add proper dependencies for sqlalchemy - common.sql (#59945)
Migrate common provider to use airflow.sdk.configuration.conf (#59989)
Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)
New year means updated Copyright notices (#60344)
Assorted SQLA2/Mypy fixes (#60094)
Add proper dependencies for sqlalchemy - common.sql (#59945)
Migrate common provider to use airflow.sdk.configuration.conf (#59989)
Nothing published for this version
- Remove top-level SDK reference in Core
Release Date: 2026-01-02
Remove top-level SDK reference in Core (#59817)
Extract shared "module_loading" distribution (#59139)
Add missing fields to SQLValueCheckOperator docstring (#59409)
Remove top-level SDK reference in Core (#59817)
Extract shared "module_loading" distribution (#59139)
Add missing fields to SQLValueCheckOperator docstring (#59409)
Nothing published for this version
- Add backcompat for exceptions in providers
Release Date: 2025-12-13
Add backcompat for exceptions in providers (#58727)
chore: Move OpenLineage methods to BaseSQLOperator (#58897)
Add backcompat for exceptions in providers (#58727)
chore: Move OpenLineage methods to BaseSQLOperator (#58897)
Nothing published for this version
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/a
Release Date: 2025-12-02
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers >_.
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Fix lower bound dependency to common-compat provider (#58833)
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Fix lower bound dependency to common-compat provider (#58833)
Nothing published for this version
Nothing published for this version
- Allow a list of SQL statements in GenericTransfer
Release Date: 2025-11-17
Allow a list of SQL statements in GenericTransfer (#56041)
Convert all airflow distributions to be compliant with ASF requirements (#58138)
Migrate 'common/sql' provider to 'common.compat' (#57135)
Migrate 'common.sql' provider to 'common.compat' (#57075)
Allow a list of SQL statements in GenericTransfer (#56041)
Convert all airflow distributions to be compliant with ASF requirements (#58138)
Migrate 'common/sql' provider to 'common.compat' (#57135)
Migrate 'common.sql' provider to 'common.compat' (#57075)
Nothing published for this version
- fix mypy type errors in common/sql provider for sqlalchemy 2 upgrade
Release Date: 2025-10-26
fix mypy type errors in common/sql provider for sqlalchemy 2 upgrade (#56824)
Remove placeholder Release Date in changelog and index files (#56056)
fix mypy type errors in common/sql provider for sqlalchemy 2 upgrade (#56824)
Remove placeholder Release Date in changelog and index files (#56056)
Nothing published for this version
- fix: rows_processor in SQLInsertRowsOperator
Release Date: 2025-09-22
fix: rows_processor in SQLInsertRowsOperator (#55290)
Nothing published for this version
- Add SQLInsertRowsOperator in common.sql provider
Release Date: 2025-09-09
Add SQLInsertRowsOperator in common.sql provider (#55031)
Added paginated_sql_statement_clause parameter to GenericTransfer (#48866)
Add rudimentary support for psycopg3 (#52976)
Fixed resolving of dialect name when host of JdbcHook is an JDBC URL (#54446)
Remove unneeded isort skip comments (#54979)
Make term Dag consistent in providers docs (#55101)
Add SQLInsertRowsOperator in common.sql provider (#55031)
Added paginated_sql_statement_clause parameter to GenericTransfer (#48866)
Add rudimentary support for psycopg3 (#52976)
Fixed resolving of dialect name when host of JdbcHook is an JDBC URL (#54446)
Remove unneeded isort skip comments (#54979)
Make term Dag consistent in providers docs (#55101)
Nothing published for this version
- Fix SnowflakeCheckOperator and SnowflakeValueCheckOperator to use parameters arg correctly
Release Date: 2025-08-11
Fix SnowflakeCheckOperator and SnowflakeValueCheckOperator to use parameters arg correctly (#53837)
Fix SnowflakeCheckOperator and SnowflakeValueCheckOperator to use parameters arg correctly (#53837)
Nothing published for this version
- Fix unreachable code mypy warnings in teradata provider
Release Date: 2025-08-02
Fix unreachable code mypy warnings in teradata provider (#53488)
Add sql extras to pandas in the providers where sqlalchemy is needed (#53535)
Add Python 3.13 support for Airflow. (#46891)
Cleanup type ignores (#53297)
Remove type ignore across codebase after mypy upgrade (#53243)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move all BaseHook usages to version_compat in Common SQL (#52800)
Fix unreachable code mypy warnings in teradata provider (#53488)
Add sql extras to pandas in the providers where sqlalchemy is needed (#53535)
Add Python 3.13 support for Airflow. (#46891)
Cleanup type ignores (#53297)
Remove type ignore across codebase after mypy upgrade (#53243)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move all BaseHook usages to version_compat in Common SQL (#52800)
Nothing published for this version
- Move 'BaseHook' implementation to task SDK
Release Date: 2025-07-06
Move 'BaseHook' implementation to task SDK (#51873)
Replace models.BaseOperator to Task SDK one for Common Providers (#52443)
Drop support for Python 3.9 (#52072)
Use BaseSensorOperator from task sdk in providers (#52296)
Bump upper binding on pandas in all providers (#52060)
Minor pre-commit fixes (#51769)
Move 'BaseHook' implementation to task SDK (#51873)
Replace models.BaseOperator to Task SDK one for Common Providers (#52443)
Drop support for Python 3.9 (#52072)
Use BaseSensorOperator from task sdk in providers (#52296)
Bump upper binding on pandas in all providers (#52060)
Minor pre-commit fixes (#51769)
Nothing published for this version
- fix: Use source hook instead of destination hook when reading records in non-paginated mode in GenericTransfer
Release Date: 2025-06-18
fix: Use source hook instead of destination hook when reading records in non-paginated mode in GenericTransfer (#50598)
Port ''ti.run'' to Task SDK execution path (#50141)
fix: Use source hook instead of destination hook when reading records in non-paginated mode in GenericTransfer (#50598)
Port ''ti.run'' to Task SDK execution path (#50141)
Nothing published for this version
- Update deprecated functions to use stable functions
Release Date: 2025-05-18
Update deprecated functions to use stable functions (#50275)
Update type to follow newest tpying spec (#50229)
Update deprecated functions to use stable functions (#50275)
Update type to follow newest tpying spec (#50229)
Nothing published for this version
- Fix SADeprecationWarning when using inspector with SQLAlchemy in DbApiHook
Release Date: 2025-05-08
Note
This release of provider is only available for Airflow 2.10+ as explained in the Apache Airflow providers support policy .
Fix SADeprecationWarning when using inspector with SQLAlchemy in DbApiHook (#48938)
Fix: SQLExecuteQueryOperator does not pass extra_dejson values to hook_params (#49282)
Refine type overload for 'common-sql' (#50161)
Bump min Airflow version in providers to 2.10 (#49843)
refactor: Log generated SQL-statement and passed parameters as ERROR message when an exception occurs during insert_rows (#48932)
Update standard provider doc operators in core operators-and-hooks-ref.rst (#49401)
Note
This release of provider is only available for Airflow 2.10+ as explained in the Apache Airflow providers support policy.
Fix SADeprecationWarning when using inspector with SQLAlchemy in DbApiHook (#48938)
Fix: SQLExecuteQueryOperator does not pass extra_dejson values to hook_params (#49282)
Refine type overload for 'common-sql' (#50161)
Bump min Airflow version in providers to 2.10 (#49843)
refactor: Log generated SQL-statement and passed parameters as ERROR message when an exception occurs during insert_rows (#48932)
Update standard provider doc operators in core operators-and-hooks-ref.rst (#49401)
Nothing published for this version
- feat: integrate 'polars' in 'get_df', 'get_df_by_chunks'
Release Date: 2025-04-19
feat: integrate 'polars' in 'get_df', 'get_df_by_chunks' (#48875)
remove superfluous else block (#49199)
feat: integrate 'polars' in 'get_df', 'get_df_by_chunks' (#48875)
remove superfluous else block (#49199)
Your coding agent can read these notes before it upgrades. Set up the MCP server →