class_docstr: Base class for handling database operations.
  
  Args:
      name (str): The name associated with the database handler instance.
class_docstr_tok: ["Base","class","for","handling","database","operations",".","Args",":","name","(","str",")",":","The","name","associated","with","the","database","handler","instance","."]
docstr: Retrieves the columns of a specified table from the database.
  
  Args:
      table_name (str): The name of the table for which to retrieve columns.
  
  Returns:
      DBHandlerResponse: An instance of DBHandlerResponse containing the columns or an error message. Data is in a pandas DataFrame. It should have the following two columns: name and dtype. The dtype should be a Python dtype and will default to `str`.
  
  Raises:
      NotImplementedError: This method should be implemented in derived classes.
docstr_tok: ["Retrieves","the","columns","of","a","specified","table","from","the","database",".","Args",":","table_name","(","str",")",":","The","name","of","the","table","for","which","to","retrieve","columns",".","Returns",":","DBHandlerResponse",":","An","instance","of","DBHandlerResponse","containing","the","columns","or","an","error","message",".","Data","is","in","a","pandas","DataFrame",".","It","should","have","the","following","two","columns",":","name","and","dtype",".","The","dtype","should","be","a","Python","dtype","and","will","default","to","`","str","`",".","Raises",":","NotImplementedError",":","This","method","should","be","implemented","in","derived","classes","."]
code: def get_columns(self, table_name: str) -> DBHandlerResponse:
      """
      Retrieves the columns of a specified table from the database.
  
      Args:
          table_name (str): The name of the table for which to retrieve columns.
  
      Returns:
          DBHandlerResponse: An instance of DBHandlerResponse containing the columns or an error message. Data is in a pandas DataFrame. It should have the following two columns: name and dtype. The dtype should be a Python dtype and will default to `str`.
  
      Raises:
          NotImplementedError: This method should be implemented in derived classes.
      """
      raise NotImplementedError()
  
file_path: evadb/evadb/third_party/databases/types.py
imports: from dataclasses import dataclass
  from typing import Generator
  import pandas
  from sqlalchemy import MetaData, Table, create_engine
  from sqlalchemy.orm import sessionmaker
label_desc: Use image node_id 8 for calling the DBHandler obj's underlying member method code with example usage: obj.get_columns(table_name) without return types