class_docstr: This handler handles connection and execution of the SAP Hana statements.
code: def __init__(self, name: str, connection_data: dict, **kwargs):
      super().__init__(name)
  
      self.dialect = "hana"
      self.parser = parse_sql
      self.connection_data = connection_data
      self.renderer = SqlalchemyRender(hana_dialect.HANAHDBCLIDialect)
  
      self.address = self.connection_data.get("host")
      self.port = self.connection_data.get("port")
      self.user = self.connection_data.get("user")
      self.password = self.connection_data.get("password")
      self.autocommit = self.connection_data.get("autocommit", True)
      self.properties = self.connection_data.get("properties")
      self.currentSchema = self.connection_data.get(
          "schema", "CURRENTUSER"
      )
      self.databaseName = self.connection_data.get("database")
      self.encrypt = self.connection_data.get("encrypt", False)
      self.sslHostNameInCertificate = self.connection_data.get(
          "sslHostNameInCertificate"
      )
      self.sslValidateCertificate = self.connection_data.get(
          "sslValidateCertificate", False
      )
      self.sslCryptoProvider = self.connection_data.get(
          "sslCryptoProvider"
      )
      self.sslTrustStore = self.connection_data.get("sslTrustStore")
      self.sslKeyStore = self.connection_data.get("sslKeyStore")
      self.cseKeyStorePassword = self.connection_data.get(
          "cseKeyStorePassword"
      )
      self.sslSNIHostname = self.connection_data.get("sslSNIHostname")
      self.sslSNIRequest = self.connection_data.get(
          "sslSNIRequest", True
      )
      self.siteType = self.connection_data.get("siteType")
      self.splitBatchCommands = self.connection_data.get(
          "splitBatchCommands", True
      )
      self.routeDirectExecute = self.connection_data.get(
          "routeDirectExecute", False
      )
      self.secondarySessionFallback = self.connection_data.get(
          "secondarySessionFallback", True
      )
  
      self.connection = None
      self.is_connected = False
  
imports: from textwrap import dedent
  from collections import OrderedDict
  from pandas import DataFrame
  from hdbcli import dbapi
  import sqlalchemy_hana.dialect
  from mindsdb_sql import parse_sql
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb_sql.render.sqlalchemy_render import SqlalchemyRender
  from mindsdb.utilities import log
  from mindsdb.integrations.libs.base import DatabaseHandler
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE
label_desc: Use image node_id 1 to create a new HanaHandler object from inherited base classes: DatabaseHandler with example: obj = HanaHandler(name, connection_data)