class_docstr: This handler handles connection and execution of the HyperSQL statements.
class_docstr_tok: ["This","handler","handles","connection","and","execution","of","the","HyperSQL","statements","."]
docstr: Returns a list of entity columns.
  Args:
      table_name (str): name of one of tables returned by self.get_tables()
  Returns:
      HandlerResponse
docstr_tok: ["Returns","a","list","of","entity","columns",".","Args",":","table_name","(","str",")",":","name","of","one","of","tables","returned","by","self.get_tables","(",")","Returns",":","HandlerResponse"]
code: def get_columns(self, table_name: str) -> StatusResponse:
      """
      Returns a list of entity columns.
      Args:
          table_name (str): name of one of tables returned by self.get_tables()
      Returns:
          HandlerResponse
      """
  
      connection = self.connect()
      cursor = connection.cursor()
      query = f"SELECT * FROM information_schema.columns WHERE table_name ={table_name}"  # Workaround since cursor.columns() wont work with postgres driver
      cursor.execute(query)
      results = cursor.fetchall()
      df = pd.DataFrame(
          [(x[3], x[7]) for x in results],
          columns=["column_name", "data_type"],
      )
  
      response = Response(RESPONSE_TYPE.TABLE, df)
  
      return response
  
imports: from collections import OrderedDict
  import pandas
  import pyodbc
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb.integrations.libs.base import DatabaseHandler
  from mindsdb_sql import parse_sql
  from mindsdb.utilities import log
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
  from mindsdb.integrations.libs.const import HANDLER_CONNECTION_ARG_TYPE
  from mindsdb_sql.render.sqlalchemy_render import SqlalchemyRender
label_desc: Use image node_id 9 for calling the HSQLDBHandler obj's underlying member method code with example usage: obj.get_columns(table_name) and returns: response