SatishChGit commented on code in PR #36953:
URL: https://github.com/apache/airflow/pull/36953#discussion_r1477016665


##########
airflow/providers/teradata/hooks/teradata.py:
##########
@@ -0,0 +1,210 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""A Airflow Hook for interacting with Teradata SQL Server."""
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, TypeVar
+
+import sqlalchemy
+import teradatasql
+from teradatasql import TeradataConnection
+
+from airflow.providers.common.sql.hooks.sql import DbApiHook
+
+T = TypeVar("T")
+if TYPE_CHECKING:
+    from airflow.models.connection import Connection
+
+
+class TeradataHook(DbApiHook):
+    """General hook for interacting with Teradata SQL Database.
+
+    This module contains basic APIs to connect to and interact with Teradata 
SQL Database. It uses teradatasql
+    client internally as a database driver for connecting to Teradata 
database. The config parameters like
+    Teradata DB Server URL, username, password and database name are fetched 
from the predefined connection
+    config connection_id. It raises an airflow error if the given connection 
id doesn't exist.
+
+    See :doc:` 
docs/apache-airflow-providers-teradata/connections/teradata.rst` for full 
documentation.
+
+    :param args: passed to DbApiHook
+    :param kwargs: passed to DbApiHook
+
+
+    Usage Help:
+
+    >>> tdh = TeradataHook()
+    >>> sql = "SELECT top 1 _airbyte_ab_id from airbyte_td._airbyte_raw_Sales;"
+    >>> tdh.get_records(sql)
+    [[61ad1d63-3efd-4da4-9904-a4489cc3a520]]
+
+    """
+
+    # Override to provide the connection name.
+    conn_name_attr = "teradata_conn_id"
+
+    # Override to have a default connection id for a particular dbHook
+    default_conn_name = "teradata_default"
+
+    # Override if this db supports autocommit.
+    supports_autocommit = True
+
+    # Override this for hook to have a custom name in the UI selection
+    conn_type = "teradata"
+
+    # Override hook name to give descriptive name for hook
+    hook_name = "Teradata"
+
+    # Override with the Teradata specific placeholder parameter string used 
for insert queries
+    placeholder: str = "?"
+
+    # Override SQL query to be used for testing database connection
+    _test_connection_sql = "select 1"
+
+    def __init__(
+        self,
+        *args,
+        database: str | None = None,

Review Comment:
   Added database parameter to the docstring.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to