class_docstr: Hook to interact with Databricks SQL.
  
  :param databricks_conn_id: Reference to the
      :ref:`Databricks connection <howto/connection:databricks>`.
  :param http_path: Optional string specifying HTTP path of Databricks SQL Endpoint or cluster.
      If not specified, it should be either specified in the Databricks connection's extra parameters,
      or ``sql_endpoint_name`` must be specified.
  :param sql_endpoint_name: Optional name of Databricks SQL Endpoint. If not specified, ``http_path``
      must be provided as described above.
  :param session_configuration: An optional dictionary of Spark session parameters. Defaults to None.
      If not specified, it could be specified in the Databricks connection's extra parameters.
  :param http_headers: An optional list of (k, v) pairs that will be set as HTTP headers
      on every request
  :param catalog: An optional initial catalog to use. Requires DBR version 9.0+
  :param schema: An optional initial schema to use. Requires DBR version 9.0+
  :param return_tuple: Return a ``namedtuple`` object instead of a ``databricks.sql.Row`` object. Default
      to False. In a future release of the provider, this will become True by default. This parameter
      ensures backward-compatibility during the transition phase to common tuple objects for all hooks based
      on DbApiHook. This flag will also be removed in a future release.
  :param kwargs: Additional parameters internal to Databricks SQL Connector parameters
code: def __init__(
      self,
      databricks_conn_id: str = BaseDatabricksHook.default_conn_name,
      http_path: str | None = None,
      sql_endpoint_name: str | None = None,
      session_configuration: dict[str, str] | None = None,
      http_headers: list[tuple[str, str]] | None = None,
      catalog: str | None = None,
      schema: str | None = None,
      caller: str = "DatabricksSqlHook",
      return_tuple: bool = False,
      **kwargs,
  ) -> None:
      super().__init__(databricks_conn_id, caller=caller)
      self._sql_conn = None
      self._token: str | None = None
      self._http_path = http_path
      self._sql_endpoint_name = sql_endpoint_name
      self.supports_autocommit = True
      self.session_config = session_configuration
      self.http_headers = http_headers
      self.catalog = catalog
      self.schema = schema
      self.return_tuple = return_tuple
      self.additional_params = kwargs
  
      if not self.return_tuple:
          warnings.warn(
              """Returning a raw `databricks.sql.Row` object is deprecated. A namedtuple will be
                  returned instead in a future release of the databricks provider. Set `return_tuple=True` to
                  enable this behavior.""",
              AirflowProviderDeprecationWarning,
              stacklevel=2,
          )
  
imports: from __future__ import annotations
  import warnings
  from collections import namedtuple
  from contextlib import closing
  from copy import copy
  from typing import TYPE_CHECKING, Any, Callable, Iterable, List, Mapping, Sequence, TypeVar, cast, overload
  from databricks import sql
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.providers.common.sql.hooks.sql import DbApiHook, return_single_query_results
  from airflow.providers.databricks.hooks.databricks_base import BaseDatabricksHook
label_desc: Use image node_id 1 to create a new DatabricksSqlHook object from inherited base classes: BaseDatabricksHook, DbApiHook with example: obj = DatabricksSqlHook(databricks_conn_id, http_path, sql_endpoint_name, session_configuration, http_headers, catalog, schema, caller, return_tuple)