This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 1ff9fe80103 Remove Provider Deprecations in Oracle (#44704)
1ff9fe80103 is described below
commit 1ff9fe80103c454e5ba94402aceaf9a1727e345b
Author: Jens Scheffler <[email protected]>
AuthorDate: Fri Dec 6 22:50:16 2024 +0100
Remove Provider Deprecations in Oracle (#44704)
* Remove Provider Deprecations in Oracle
* Remove docs from removed operator and examples
---
.../operators/index.rst | 14 --------
.../src/airflow/providers/oracle/CHANGELOG.rst | 15 ++++++++
.../oracle/example_dags/example_oracle.py | 9 -----
.../src/airflow/providers/oracle/hooks/oracle.py | 9 -----
.../airflow/providers/oracle/operators/oracle.py | 40 +---------------------
providers/tests/oracle/operators/test_oracle.py | 32 +----------------
6 files changed, 17 insertions(+), 102 deletions(-)
diff --git a/docs/apache-airflow-providers-oracle/operators/index.rst
b/docs/apache-airflow-providers-oracle/operators/index.rst
index 990cb2e6503..0a09991085e 100644
--- a/docs/apache-airflow-providers-oracle/operators/index.rst
+++ b/docs/apache-airflow-providers-oracle/operators/index.rst
@@ -22,20 +22,6 @@ Oracle Operators
================
The Oracle connection type provides connection to a Oracle database.
-Execute SQL in an Oracle database
----------------------------------
-
-To execute arbitrary SQL in an Oracle database, use the
-:class:`~airflow.providers.oracle.operators.oracle.OracleOperator`.
-
-An example of executing a simple query is as follows:
-
-.. exampleinclude::
/../../providers/src/airflow/providers/oracle/example_dags/example_oracle.py
- :language: python
- :start-after: [START howto_oracle_operator]
- :end-before: [END howto_oracle_operator]
-
-
Execute a Stored Procedure in an Oracle database
------------------------------------------------
diff --git a/providers/src/airflow/providers/oracle/CHANGELOG.rst
b/providers/src/airflow/providers/oracle/CHANGELOG.rst
index ac2306379a7..394b8af9c14 100644
--- a/providers/src/airflow/providers/oracle/CHANGELOG.rst
+++ b/providers/src/airflow/providers/oracle/CHANGELOG.rst
@@ -27,6 +27,21 @@
Changelog
---------
+main
+....
+
+Breaking changes
+~~~~~~~~~~~~~~~~
+
+.. warning::
+ All deprecated classes, parameters and features have been removed from the
Oracle provider package.
+ The following breaking changes were introduced:
+
+ * Hooks
+ * Remove deprecated support setting the Oracle Service Name using
``conn.schema``. Please use ``conn.extra.service_name`` instead.
+ * Operators
+ * Remove ``airflow.providers.oracle.operators.oracle.OracleOperator``.
Please use
``airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator`` instead.
+
3.12.1
......
diff --git
a/providers/src/airflow/providers/oracle/example_dags/example_oracle.py
b/providers/src/airflow/providers/oracle/example_dags/example_oracle.py
index a68c0be6c88..5501831e946 100644
--- a/providers/src/airflow/providers/oracle/example_dags/example_oracle.py
+++ b/providers/src/airflow/providers/oracle/example_dags/example_oracle.py
@@ -19,7 +19,6 @@ from __future__ import annotations
from datetime import datetime
from airflow import DAG
-from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
from airflow.providers.oracle.operators.oracle import
OracleStoredProcedureOperator
with DAG(
@@ -29,14 +28,6 @@ with DAG(
start_date=datetime(2023, 1, 1),
dag_id="example_oracle",
) as dag:
- # [START howto_oracle_operator]
-
- opr_sql = SQLExecuteQueryOperator(
- task_id="task_sql", conn_id="oracle", sql="SELECT 1 FROM DUAL",
autocommit=True
- )
-
- # [END howto_oracle_operator]
-
# [START howto_oracle_stored_procedure_operator_with_list_inout]
opr_stored_procedure_with_list_input_output =
OracleStoredProcedureOperator(
diff --git a/providers/src/airflow/providers/oracle/hooks/oracle.py
b/providers/src/airflow/providers/oracle/hooks/oracle.py
index 192a2da4b1a..f09cbc0d479 100644
--- a/providers/src/airflow/providers/oracle/hooks/oracle.py
+++ b/providers/src/airflow/providers/oracle/hooks/oracle.py
@@ -23,7 +23,6 @@ from datetime import datetime
import oracledb
-from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.providers.common.sql.hooks.sql import DbApiHook
PARAM_TYPES = {bool, float, int, str}
@@ -197,14 +196,6 @@ class OracleHook(DbApiHook):
dsn += f":{conn.port}"
if service_name:
dsn += f"/{service_name}"
- elif conn.schema:
- warnings.warn(
- """Using conn.schema to pass the Oracle Service Name
is deprecated.
- Please use conn.extra.service_name instead.""",
- AirflowProviderDeprecationWarning,
- stacklevel=2,
- )
- dsn += f"/{conn.schema}"
conn_config["dsn"] = dsn
if "events" in conn.extra_dejson:
diff --git a/providers/src/airflow/providers/oracle/operators/oracle.py
b/providers/src/airflow/providers/oracle/operators/oracle.py
index 60da9fcb70d..9e1247262ff 100644
--- a/providers/src/airflow/providers/oracle/operators/oracle.py
+++ b/providers/src/airflow/providers/oracle/operators/oracle.py
@@ -19,55 +19,17 @@ from __future__ import annotations
import re
from collections.abc import Sequence
-from typing import TYPE_CHECKING, ClassVar
+from typing import TYPE_CHECKING
import oracledb
-from deprecated import deprecated
-from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.models import BaseOperator
-from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
from airflow.providers.oracle.hooks.oracle import OracleHook
if TYPE_CHECKING:
from airflow.utils.context import Context
-@deprecated(
- reason="Please use
`airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator`.",
- category=AirflowProviderDeprecationWarning,
-)
-class OracleOperator(SQLExecuteQueryOperator):
- """
- Executes sql code in a specific Oracle database.
-
- This class is deprecated.
-
- Please use
:class:`airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator`.
-
- :param sql: the sql code to be executed. Can receive a str representing a
sql statement,
- a list of str (sql statements), or reference to a template file.
- Template reference are recognized by str ending in '.sql'
- (templated)
- :param oracle_conn_id: The :ref:`Oracle connection id
<howto/connection:oracle>`
- reference to a specific Oracle database.
- :param parameters: (optional, templated) the parameters to render the SQL
query with.
- :param autocommit: if True, each command is automatically committed.
- (default value: False)
- """
-
- template_fields: Sequence[str] = (
- "parameters",
- "sql",
- )
- template_ext: Sequence[str] = (".sql",)
- template_fields_renderers: ClassVar[dict] = {"sql": "sql"}
- ui_color = "#ededed"
-
- def __init__(self, *, oracle_conn_id: str = "oracle_default", **kwargs) ->
None:
- super().__init__(conn_id=oracle_conn_id, **kwargs)
-
-
class OracleStoredProcedureOperator(BaseOperator):
"""
Executes stored procedure in a specific Oracle database.
diff --git a/providers/tests/oracle/operators/test_oracle.py
b/providers/tests/oracle/operators/test_oracle.py
index 623e214efc3..2f06e151347 100644
--- a/providers/tests/oracle/operators/test_oracle.py
+++ b/providers/tests/oracle/operators/test_oracle.py
@@ -23,39 +23,9 @@ from unittest import mock
import oracledb
import pytest
-from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.models import TaskInstance
-from airflow.providers.common.sql.hooks.sql import fetch_all_handler
from airflow.providers.oracle.hooks.oracle import OracleHook
-from airflow.providers.oracle.operators.oracle import OracleOperator,
OracleStoredProcedureOperator
-
-
-class TestOracleOperator:
-
@mock.patch("airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator.get_db_hook")
- def test_execute(self, mock_get_db_hook):
- sql = "SELECT * FROM test_table"
- oracle_conn_id = "oracle_default"
- parameters = {"parameter": "value"}
- autocommit = False
- context = "test_context"
- task_id = "test_task_id"
-
- with pytest.warns(AirflowProviderDeprecationWarning, match="Call to
deprecated class *"):
- operator = OracleOperator(
- sql=sql,
- oracle_conn_id=oracle_conn_id,
- parameters=parameters,
- autocommit=autocommit,
- task_id=task_id,
- )
- operator.execute(context=context)
- mock_get_db_hook.return_value.run.assert_called_once_with(
- sql=sql,
- autocommit=autocommit,
- parameters=parameters,
- handler=fetch_all_handler,
- return_last=True,
- )
+from airflow.providers.oracle.operators.oracle import
OracleStoredProcedureOperator
class TestOracleStoredProcedureOperator: