code: def HasColumn(self, table_name, column_name):
      
      if not self._connection:
        raise IOError('Not opened.')
  
      if not column_name:
        return False
  
      table_name = table_name.lower()
      column_names = self._column_names_per_table.get(table_name, None)
      if column_names is None:
        column_names = []
  
        self._cursor.execute(self._HAS_COLUMN_QUERY.format(table_name))
        for row in self._cursor.fetchall():
          if not row[1]:
            continue
  
          row_column_name = row[1]
          if isinstance(row_column_name, bytes):
            row_column_name = row_column_name.decode('utf-8')
  
          column_names.append(row_column_name.lower())
  
        self._column_names_per_table[table_name] = column_names
  
      column_name = column_name.lower()
      return column_name in column_names
docs: Determines if a specific column exists.
  
      Args:
        table_name (str): name of the table.
        column_name (str): name of the column.
  
      Returns:
        bool: True if the column exists.
  
      Raises:
        IOError: if the database file is not opened.
        OSError: if the database file is not opened.