From e5fe8e34db5829634184b224db4ea0fbd6491de7 Mon Sep 17 00:00:00 2001 From: David Blain Date: Fri, 5 Jul 2024 18:12:57 +0200 Subject: [PATCH 1/6] refactor: Replaced all remaining getattr on conn_attr_name with common get_conn_id method from DbApiHook --- airflow/providers/apache/drill/hooks/drill.py | 4 ++-- airflow/providers/apache/druid/hooks/druid.py | 4 ++-- airflow/providers/apache/impala/hooks/impala.py | 2 +- airflow/providers/apache/pinot/hooks/pinot.py | 2 +- airflow/providers/common/sql/hooks/sql.py | 2 +- airflow/providers/elasticsearch/hooks/elasticsearch.py | 4 ++-- airflow/providers/exasol/hooks/exasol.py | 4 ++-- airflow/providers/jdbc/hooks/jdbc.py | 4 ++-- airflow/providers/microsoft/mssql/hooks/mssql.py | 2 +- airflow/providers/mysql/hooks/mysql.py | 2 +- airflow/providers/odbc/hooks/odbc.py | 2 +- airflow/providers/postgres/hooks/postgres.py | 4 ++-- airflow/providers/snowflake/hooks/snowflake.py | 2 +- airflow/providers/sqlite/hooks/sqlite.py | 2 +- airflow/providers/teradata/hooks/teradata.py | 4 ++-- airflow/providers/ydb/hooks/ydb.py | 4 ++-- 16 files changed, 24 insertions(+), 24 deletions(-) diff --git a/airflow/providers/apache/drill/hooks/drill.py b/airflow/providers/apache/drill/hooks/drill.py index 84043c4efb4d7..1d1b2bbfb04b8 100644 --- a/airflow/providers/apache/drill/hooks/drill.py +++ b/airflow/providers/apache/drill/hooks/drill.py @@ -49,7 +49,7 @@ class DrillHook(DbApiHook): def get_conn(self) -> Connection: """Establish a connection to Drillbit.""" - conn_md = self.get_connection(getattr(self, self.conn_name_attr)) + conn_md = self.get_connection(self.get_conn_id()) creds = f"{conn_md.login}:{conn_md.password}@" if conn_md.login else "" database_url = ( f"{conn_md.extra_dejson.get('dialect_driver', 'drill+sadrill')}://{creds}" @@ -71,7 +71,7 @@ def get_uri(self) -> str: e.g: ``drill://localhost:8047/dfs`` """ - conn_md = self.get_connection(getattr(self, self.conn_name_attr)) + conn_md = self.get_connection(self.get_conn_id()) host = conn_md.host if conn_md.port is not None: host += f":{conn_md.port}" diff --git a/airflow/providers/apache/druid/hooks/druid.py b/airflow/providers/apache/druid/hooks/druid.py index a79b494f321d0..ca315b3a2c751 100644 --- a/airflow/providers/apache/druid/hooks/druid.py +++ b/airflow/providers/apache/druid/hooks/druid.py @@ -196,7 +196,7 @@ def __init__(self, context: dict | None = None, *args, **kwargs) -> None: def get_conn(self) -> connect: """Establish a connection to druid broker.""" - conn = self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.get_connection(self.get_conn_id()) druid_broker_conn = connect( host=conn.host, port=conn.port, @@ -215,7 +215,7 @@ def get_uri(self) -> str: e.g: druid://localhost:8082/druid/v2/sql/ """ - conn = self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.get_connection(self.get_conn_id()) host = conn.host if conn.port is not None: host += f":{conn.port}" diff --git a/airflow/providers/apache/impala/hooks/impala.py b/airflow/providers/apache/impala/hooks/impala.py index b8c79b4e259fd..aaa510945553b 100644 --- a/airflow/providers/apache/impala/hooks/impala.py +++ b/airflow/providers/apache/impala/hooks/impala.py @@ -35,7 +35,7 @@ class ImpalaHook(DbApiHook): hook_name = "Impala" def get_conn(self) -> Connection: - conn_id: str = getattr(self, self.conn_name_attr) + conn_id: str = self.get_conn_id() connection = self.get_connection(conn_id) return connect( host=connection.host, diff --git a/airflow/providers/apache/pinot/hooks/pinot.py b/airflow/providers/apache/pinot/hooks/pinot.py index 3f89233fe6a3b..a9c8a6de40d1e 100644 --- a/airflow/providers/apache/pinot/hooks/pinot.py +++ b/airflow/providers/apache/pinot/hooks/pinot.py @@ -288,7 +288,7 @@ def get_uri(self) -> str: e.g: http://localhost:9000/query/sql """ - conn = self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.get_connection(self.get_conn_id()) host = conn.host if conn.port is not None: host += f":{conn.port}" diff --git a/airflow/providers/common/sql/hooks/sql.py b/airflow/providers/common/sql/hooks/sql.py index 4dba2d843a380..f966c16888ec0 100644 --- a/airflow/providers/common/sql/hooks/sql.py +++ b/airflow/providers/common/sql/hooks/sql.py @@ -184,7 +184,7 @@ def __init__(self, *args, schema: str | None = None, log_sql: bool = True, **kwa ) def get_conn_id(self) -> str: - return getattr(self, self.conn_name_attr) + return self.get_conn_id() @cached_property def placeholder(self): diff --git a/airflow/providers/elasticsearch/hooks/elasticsearch.py b/airflow/providers/elasticsearch/hooks/elasticsearch.py index 75230b1f6db51..444ad3220662d 100644 --- a/airflow/providers/elasticsearch/hooks/elasticsearch.py +++ b/airflow/providers/elasticsearch/hooks/elasticsearch.py @@ -91,7 +91,7 @@ def __init__(self, schema: str = "http", connection: AirflowConnection | None = def get_conn(self) -> ESConnection: """Return an elasticsearch connection object.""" - conn_id = getattr(self, self.conn_name_attr) + conn_id = self.get_conn_id() conn = self.connection or self.get_connection(conn_id) conn_args = { @@ -111,7 +111,7 @@ def get_conn(self) -> ESConnection: return connect(**conn_args) def get_uri(self) -> str: - conn_id = getattr(self, self.conn_name_attr) + conn_id = self.get_conn_id() conn = self.connection or self.get_connection(conn_id) login = "" diff --git a/airflow/providers/exasol/hooks/exasol.py b/airflow/providers/exasol/hooks/exasol.py index 28f5e33373667..3471a69065c1f 100644 --- a/airflow/providers/exasol/hooks/exasol.py +++ b/airflow/providers/exasol/hooks/exasol.py @@ -55,7 +55,7 @@ def __init__(self, *args, **kwargs) -> None: self.schema = kwargs.pop("schema", None) def get_conn(self) -> ExaConnection: - conn_id = getattr(self, self.conn_name_attr) + conn_id = self.get_conn_id() conn = self.get_connection(conn_id) conn_args = { "dsn": f"{conn.host}:{conn.port}", @@ -269,7 +269,7 @@ def set_autocommit(self, conn, autocommit: bool) -> None: if not self.supports_autocommit and autocommit: self.log.warning( "%s connection doesn't support autocommit but autocommit activated.", - getattr(self, self.conn_name_attr), + self.get_conn_id(), ) conn.set_autocommit(autocommit) diff --git a/airflow/providers/jdbc/hooks/jdbc.py b/airflow/providers/jdbc/hooks/jdbc.py index 5d89ada9d9874..cf5d2dd47dd69 100644 --- a/airflow/providers/jdbc/hooks/jdbc.py +++ b/airflow/providers/jdbc/hooks/jdbc.py @@ -106,7 +106,7 @@ def connection_extra_lower(self) -> dict: This is used internally for case-insensitive access of jdbc params. """ - conn = self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.get_connection(self.get_conn_id()) return {k.lower(): v for k, v in conn.extra_dejson.items()} @property @@ -150,7 +150,7 @@ def driver_class(self) -> str | None: return self._driver_class def get_conn(self) -> jaydebeapi.Connection: - conn: Connection = self.get_connection(getattr(self, self.conn_name_attr)) + conn: Connection = self.get_connection(self.get_conn_id()) host: str = conn.host login: str = conn.login psw: str = conn.password diff --git a/airflow/providers/microsoft/mssql/hooks/mssql.py b/airflow/providers/microsoft/mssql/hooks/mssql.py index a231590ae2ce7..2481276bc0d25 100644 --- a/airflow/providers/microsoft/mssql/hooks/mssql.py +++ b/airflow/providers/microsoft/mssql/hooks/mssql.py @@ -65,7 +65,7 @@ def connection(self) -> Connection: :return: The connection object. """ - return self.get_connection(getattr(self, self.conn_name_attr)) + return self.get_connection(self.get_conn_id()) @property def connection_extra_lower(self) -> dict: diff --git a/airflow/providers/mysql/hooks/mysql.py b/airflow/providers/mysql/hooks/mysql.py index ebf88c6557e23..78376d3f9c705 100644 --- a/airflow/providers/mysql/hooks/mysql.py +++ b/airflow/providers/mysql/hooks/mysql.py @@ -185,7 +185,7 @@ def get_conn(self) -> MySQLConnectionTypes: :return: a mysql connection object """ - conn = self.connection or self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.connection or self.get_connection(self.get_conn_id()) client_name = conn.extra_dejson.get("client", "mysqlclient") diff --git a/airflow/providers/odbc/hooks/odbc.py b/airflow/providers/odbc/hooks/odbc.py index 423eb8a0df3d5..61a5818f8e2ae 100644 --- a/airflow/providers/odbc/hooks/odbc.py +++ b/airflow/providers/odbc/hooks/odbc.py @@ -83,7 +83,7 @@ def __init__( def connection(self): """The Connection object with ID ``odbc_conn_id``.""" if not self._connection: - self._connection = self.get_connection(getattr(self, self.conn_name_attr)) + self._connection = self.get_connection(self.get_conn_id()) return self._connection @property diff --git a/airflow/providers/postgres/hooks/postgres.py b/airflow/providers/postgres/hooks/postgres.py index 4b7074ec75df4..ede21975aec67 100644 --- a/airflow/providers/postgres/hooks/postgres.py +++ b/airflow/providers/postgres/hooks/postgres.py @@ -117,7 +117,7 @@ def schema(self, value): @property def sqlalchemy_url(self) -> URL: - conn = self.get_connection(getattr(self, self.conn_name_attr)) + conn = self.get_connection(self.get_conn_id()) return URL.create( drivername="postgresql", username=conn.login, @@ -142,7 +142,7 @@ def _get_cursor(self, raw_cursor: str) -> CursorType: def get_conn(self) -> connection: """Establish a connection to a postgres database.""" - conn_id = getattr(self, self.conn_name_attr) + conn_id = self.get_conn_id() conn = deepcopy(self.connection or self.get_connection(conn_id)) # check for authentication via AWS IAM diff --git a/airflow/providers/snowflake/hooks/snowflake.py b/airflow/providers/snowflake/hooks/snowflake.py index b6167c7d0c299..ff34461cafaba 100644 --- a/airflow/providers/snowflake/hooks/snowflake.py +++ b/airflow/providers/snowflake/hooks/snowflake.py @@ -487,7 +487,7 @@ def get_openlineage_database_specific_lineage(self, _) -> OperatorLineage | None if self.query_ids: self.log.debug("openlineage: getting connection to get database info") - connection = self.get_connection(getattr(self, self.conn_name_attr)) + connection = self.get_connection(self.get_conn_id()) namespace = SQLParser.create_namespace(self.get_openlineage_database_info(connection)) return OperatorLineage( run_facets={ diff --git a/airflow/providers/sqlite/hooks/sqlite.py b/airflow/providers/sqlite/hooks/sqlite.py index 5656b1b0e41ac..c0d10f6664513 100644 --- a/airflow/providers/sqlite/hooks/sqlite.py +++ b/airflow/providers/sqlite/hooks/sqlite.py @@ -46,7 +46,7 @@ def get_conn(self) -> sqlite3.dbapi2.Connection: def get_uri(self) -> str: """Override DbApiHook get_uri method for get_sqlalchemy_engine().""" - conn_id = getattr(self, self.conn_name_attr) + conn_id = self.get_conn_id() airflow_conn = self.get_connection(conn_id) if airflow_conn.conn_type is None: airflow_conn.conn_type = self.conn_type diff --git a/airflow/providers/teradata/hooks/teradata.py b/airflow/providers/teradata/hooks/teradata.py index a6707a8a66ddc..8cc361152af2b 100644 --- a/airflow/providers/teradata/hooks/teradata.py +++ b/airflow/providers/teradata/hooks/teradata.py @@ -144,7 +144,7 @@ def bulk_insert_rows( def _get_conn_config_teradatasql(self) -> dict[str, Any]: """Return set of config params required for connecting to Teradata DB using teradatasql client.""" - conn: Connection = self.get_connection(getattr(self, self.conn_name_attr)) + conn: Connection = self.get_connection(self.get_conn_id()) conn_config = { "host": conn.host or "localhost", "dbs_port": conn.port or "1025", @@ -176,7 +176,7 @@ def _get_conn_config_teradatasql(self) -> dict[str, Any]: def get_sqlalchemy_engine(self, engine_kwargs=None): """Return a connection object using sqlalchemy.""" - conn: Connection = self.get_connection(getattr(self, self.conn_name_attr)) + conn: Connection = self.get_connection(self.get_conn_id()) link = f"teradatasql://{conn.login}:{conn.password}@{conn.host}" connection = sqlalchemy.create_engine(link) return connection diff --git a/airflow/providers/ydb/hooks/ydb.py b/airflow/providers/ydb/hooks/ydb.py index 5d5083d238464..6b25426c5e099 100644 --- a/airflow/providers/ydb/hooks/ydb.py +++ b/airflow/providers/ydb/hooks/ydb.py @@ -212,7 +212,7 @@ def get_ui_field_behaviour(cls) -> dict[str, Any]: @property def sqlalchemy_url(self) -> URL: - conn: Connection = self.get_connection(getattr(self, self.conn_name_attr)) + conn: Connection = self.get_connection(self.get_conn_id()) connection_extra: dict[str, Any] = conn.extra_dejson database: str | None = connection_extra.get("database") return URL.create( @@ -226,7 +226,7 @@ def sqlalchemy_url(self) -> URL: def get_conn(self) -> YDBConnection: """Establish a connection to a YDB database.""" - conn: Connection = self.get_connection(getattr(self, self.conn_name_attr)) + conn: Connection = self.get_connection(self.get_conn_id()) host: str | None = conn.host if not host: raise ValueError("YDB host must be specified") From 92299d45f7798c74de8132337e75212c7e53fa2d Mon Sep 17 00:00:00 2001 From: David Blain Date: Tue, 9 Jul 2024 11:17:41 +0200 Subject: [PATCH 2/6] refactor: Updated all provider.yaml definitions for impacted providers using the new get_conn_id method of the DbApiHook --- airflow/providers/apache/drill/provider.yaml | 2 +- airflow/providers/apache/druid/provider.yaml | 2 +- airflow/providers/apache/impala/provider.yaml | 1 + airflow/providers/apache/pinot/provider.yaml | 2 +- airflow/providers/elasticsearch/provider.yaml | 2 +- airflow/providers/exasol/provider.yaml | 2 +- airflow/providers/jdbc/provider.yaml | 2 +- airflow/providers/microsoft/mssql/provider.yaml | 2 +- airflow/providers/mysql/provider.yaml | 2 +- airflow/providers/odbc/provider.yaml | 2 +- airflow/providers/postgres/provider.yaml | 2 +- airflow/providers/snowflake/provider.yaml | 2 +- airflow/providers/sqlite/provider.yaml | 2 +- airflow/providers/teradata/provider.yaml | 2 +- airflow/providers/ydb/provider.yaml | 2 +- 15 files changed, 15 insertions(+), 14 deletions(-) diff --git a/airflow/providers/apache/drill/provider.yaml b/airflow/providers/apache/drill/provider.yaml index a8d23b241c137..c49c76c5e7b9e 100644 --- a/airflow/providers/apache/drill/provider.yaml +++ b/airflow/providers/apache/drill/provider.yaml @@ -51,7 +51,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - sqlalchemy-drill>=1.1.0 integrations: diff --git a/airflow/providers/apache/druid/provider.yaml b/airflow/providers/apache/druid/provider.yaml index fbe4ecf77d72d..2da280fbae12c 100644 --- a/airflow/providers/apache/druid/provider.yaml +++ b/airflow/providers/apache/druid/provider.yaml @@ -57,7 +57,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - pydruid>=0.4.1 integrations: diff --git a/airflow/providers/apache/impala/provider.yaml b/airflow/providers/apache/impala/provider.yaml index 74936304f2425..ad33bed2a4423 100644 --- a/airflow/providers/apache/impala/provider.yaml +++ b/airflow/providers/apache/impala/provider.yaml @@ -38,6 +38,7 @@ versions: dependencies: - impyla>=0.18.0,<1.0 + - apache-airflow-providers-common-sql>=1.14.1 - apache-airflow>=2.7.0 additional-extras: diff --git a/airflow/providers/apache/pinot/provider.yaml b/airflow/providers/apache/pinot/provider.yaml index dc48b79b970f3..31587e34c1d25 100644 --- a/airflow/providers/apache/pinot/provider.yaml +++ b/airflow/providers/apache/pinot/provider.yaml @@ -51,7 +51,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - pinotdb>=5.1.0 integrations: diff --git a/airflow/providers/elasticsearch/provider.yaml b/airflow/providers/elasticsearch/provider.yaml index 73d01ddd23435..a7c2d52fecba3 100644 --- a/airflow/providers/elasticsearch/provider.yaml +++ b/airflow/providers/elasticsearch/provider.yaml @@ -66,7 +66,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - elasticsearch>=8.10,<9 integrations: diff --git a/airflow/providers/exasol/provider.yaml b/airflow/providers/exasol/provider.yaml index 74a68cee1dfed..5c33f9ccf9e32 100644 --- a/airflow/providers/exasol/provider.yaml +++ b/airflow/providers/exasol/provider.yaml @@ -59,7 +59,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.10.0 + - apache-airflow-providers-common-sql>=1.14.1 - pyexasol>=0.5.1 # In pandas 2.2 minimal version of the sqlalchemy is 2.0 # https://pandas.pydata.org/docs/whatsnew/v2.2.0.html#increased-minimum-versions-for-dependencies diff --git a/airflow/providers/jdbc/provider.yaml b/airflow/providers/jdbc/provider.yaml index 924b9a64540b3..bf0b74608c20d 100644 --- a/airflow/providers/jdbc/provider.yaml +++ b/airflow/providers/jdbc/provider.yaml @@ -51,7 +51,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - jaydebeapi>=1.1.1 integrations: diff --git a/airflow/providers/microsoft/mssql/provider.yaml b/airflow/providers/microsoft/mssql/provider.yaml index 802709d142c2e..b8f2550cfca20 100644 --- a/airflow/providers/microsoft/mssql/provider.yaml +++ b/airflow/providers/microsoft/mssql/provider.yaml @@ -53,7 +53,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - pymssql>=2.3.0 integrations: diff --git a/airflow/providers/mysql/provider.yaml b/airflow/providers/mysql/provider.yaml index 0154cdf661ff0..5add21024816e 100644 --- a/airflow/providers/mysql/provider.yaml +++ b/airflow/providers/mysql/provider.yaml @@ -64,7 +64,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - mysqlclient>=1.4.0 - mysql-connector-python>=8.0.29 diff --git a/airflow/providers/odbc/provider.yaml b/airflow/providers/odbc/provider.yaml index 1f3a0132bac86..708c5db903e72 100644 --- a/airflow/providers/odbc/provider.yaml +++ b/airflow/providers/odbc/provider.yaml @@ -52,7 +52,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.10.0 + - apache-airflow-providers-common-sql>=1.14.1 - pyodbc>=5.0.0 integrations: diff --git a/airflow/providers/postgres/provider.yaml b/airflow/providers/postgres/provider.yaml index b9ce13a8d13a1..1e976fb42f147 100644 --- a/airflow/providers/postgres/provider.yaml +++ b/airflow/providers/postgres/provider.yaml @@ -63,7 +63,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - psycopg2-binary>=2.9.4 additional-extras: diff --git a/airflow/providers/snowflake/provider.yaml b/airflow/providers/snowflake/provider.yaml index 24b878f4091c5..4c34869164978 100644 --- a/airflow/providers/snowflake/provider.yaml +++ b/airflow/providers/snowflake/provider.yaml @@ -75,7 +75,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.10.0 + - apache-airflow-providers-common-sql>=1.14.1 # In pandas 2.2 minimal version of the sqlalchemy is 2.0 # https://pandas.pydata.org/docs/whatsnew/v2.2.0.html#increased-minimum-versions-for-dependencies # However Airflow not fully supports it yet: https://github.com/apache/airflow/issues/28723 diff --git a/airflow/providers/sqlite/provider.yaml b/airflow/providers/sqlite/provider.yaml index 9c5dded22b8cb..3cd5a3dd8f5eb 100644 --- a/airflow/providers/sqlite/provider.yaml +++ b/airflow/providers/sqlite/provider.yaml @@ -54,7 +54,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 integrations: - integration-name: SQLite diff --git a/airflow/providers/teradata/provider.yaml b/airflow/providers/teradata/provider.yaml index a5a93ad7a85ac..42db409b49b90 100644 --- a/airflow/providers/teradata/provider.yaml +++ b/airflow/providers/teradata/provider.yaml @@ -33,7 +33,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - teradatasqlalchemy>=17.20.0.0 - teradatasql>=17.20.0.28 diff --git a/airflow/providers/ydb/provider.yaml b/airflow/providers/ydb/provider.yaml index e6d21dcbb12a5..929950a62d36b 100644 --- a/airflow/providers/ydb/provider.yaml +++ b/airflow/providers/ydb/provider.yaml @@ -29,7 +29,7 @@ versions: dependencies: - apache-airflow>=2.7.0 - - apache-airflow-providers-common-sql>=1.3.1 + - apache-airflow-providers-common-sql>=1.14.1 - ydb>=3.12.1 integrations: From 978466e3658c8d1df3cec243a2be83994b86175b Mon Sep 17 00:00:00 2001 From: David Blain Date: Tue, 9 Jul 2024 11:29:36 +0200 Subject: [PATCH 3/6] refactor: The get_conn_id of DbApiHook should still call the getattr on conn_name_attr --- airflow/providers/common/sql/hooks/sql.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airflow/providers/common/sql/hooks/sql.py b/airflow/providers/common/sql/hooks/sql.py index f966c16888ec0..4dba2d843a380 100644 --- a/airflow/providers/common/sql/hooks/sql.py +++ b/airflow/providers/common/sql/hooks/sql.py @@ -184,7 +184,7 @@ def __init__(self, *args, schema: str | None = None, log_sql: bool = True, **kwa ) def get_conn_id(self) -> str: - return self.get_conn_id() + return getattr(self, self.conn_name_attr) @cached_property def placeholder(self): From ca3eebdfe67ba89e269bcf9497608eaf0cc49802 Mon Sep 17 00:00:00 2001 From: dabla Date: Thu, 11 Jul 2024 11:55:11 +0200 Subject: [PATCH 4/6] refactor: Updated the provider dependencies JSON file --- generated/provider_dependencies.json | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json index cc71970041c5a..1f6edc82e9639 100644 --- a/generated/provider_dependencies.json +++ b/generated/provider_dependencies.json @@ -101,7 +101,7 @@ }, "apache.drill": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "sqlalchemy-drill>=1.1.0" ], @@ -115,7 +115,7 @@ }, "apache.druid": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pydruid>=0.4.1" ], @@ -200,6 +200,7 @@ }, "apache.impala": { "deps": [ + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "impyla>=0.18.0,<1.0" ], @@ -261,7 +262,7 @@ }, "apache.pinot": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pinotdb>=5.1.0" ], @@ -509,7 +510,7 @@ }, "elasticsearch": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "elasticsearch>=8.10,<9" ], @@ -523,7 +524,7 @@ }, "exasol": { "deps": [ - "apache-airflow-providers-common-sql>=1.10.0", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pandas>=1.5.3,<2.2;python_version<\"3.9\"", "pandas>=2.1.2,<2.2;python_version>=\"3.9\"", @@ -741,7 +742,7 @@ }, "jdbc": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "jaydebeapi>=1.1.1" ], @@ -805,7 +806,7 @@ }, "microsoft.mssql": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pymssql>=2.3.0" ], @@ -855,7 +856,7 @@ }, "mysql": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "mysql-connector-python>=8.0.29", "mysqlclient>=1.4.0" @@ -886,7 +887,7 @@ }, "odbc": { "deps": [ - "apache-airflow-providers-common-sql>=1.10.0", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pyodbc>=5.0.0" ], @@ -1032,7 +1033,7 @@ }, "postgres": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "psycopg2-binary>=2.9.4" ], @@ -1186,7 +1187,7 @@ }, "snowflake": { "deps": [ - "apache-airflow-providers-common-sql>=1.10.0", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "pandas>=1.5.3,<2.2;python_version<\"3.9\"", "pandas>=2.1.2,<2.2;python_version>=\"3.9\"", @@ -1205,7 +1206,7 @@ }, "sqlite": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0" ], "devel-deps": [], @@ -1267,7 +1268,7 @@ }, "teradata": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "teradatasql>=17.20.0.28", "teradatasqlalchemy>=17.20.0.0" @@ -1342,7 +1343,7 @@ }, "ydb": { "deps": [ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "ydb>=3.12.1" ], From fc38d6c4a5085e735176598ea8e6d986570d9c02 Mon Sep 17 00:00:00 2001 From: David Blain Date: Thu, 11 Jul 2024 12:02:26 +0200 Subject: [PATCH 5/6] refactor: Fixed assertion of test_get_install_requirements due to update of minimal apache-airflow-providers-common-sql version --- dev/breeze/tests/test_packages.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/breeze/tests/test_packages.py b/dev/breeze/tests/test_packages.py index ba292721cb430..ac829dadf0747 100644 --- a/dev/breeze/tests/test_packages.py +++ b/dev/breeze/tests/test_packages.py @@ -204,7 +204,7 @@ def test_get_documentation_package_path(): "postgres", "beta0", """ - "apache-airflow-providers-common-sql>=1.3.1b0", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0b0", "psycopg2-binary>=2.9.4", """, @@ -214,7 +214,7 @@ def test_get_documentation_package_path(): "postgres", "", """ - "apache-airflow-providers-common-sql>=1.3.1", + "apache-airflow-providers-common-sql>=1.14.1", "apache-airflow>=2.7.0", "psycopg2-binary>=2.9.4", """, From 6eacc1ca378361d2513faf392cd54b3abe92b576 Mon Sep 17 00:00:00 2001 From: David Blain Date: Thu, 11 Jul 2024 13:38:47 +0200 Subject: [PATCH 6/6] refactor: Updated dependency check for beta --- dev/breeze/tests/test_packages.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/breeze/tests/test_packages.py b/dev/breeze/tests/test_packages.py index ac829dadf0747..8d5bc0b6791c2 100644 --- a/dev/breeze/tests/test_packages.py +++ b/dev/breeze/tests/test_packages.py @@ -204,7 +204,7 @@ def test_get_documentation_package_path(): "postgres", "beta0", """ - "apache-airflow-providers-common-sql>=1.14.1", + "apache-airflow-providers-common-sql>=1.14.1b0", "apache-airflow>=2.7.0b0", "psycopg2-binary>=2.9.4", """,