def METHOD_NAME(self, hive_component, incremental_col):
    """Fetches details of the Hive table by executing describe query.
    Args:
        hive_component (:class:`HiveComponent`): Instance of
            HiveComponent to connect to Hive.
        incremental_col (str): Incremental column name either provided or
            obtained from the tracking table.
    Returns:
        HiveTableModel: Wrapper to Hive table details.
    """
    # Executes DESCRIBE EXTENDED <table_name> query.
    queries = [
        "set hive.ddl.output.format=json",
        "desc extended {0}.{1}".format(self.database_name, self.table_name)
    ]
    results = json.loads(hive_component.execute_query(queries)[0][0])
    # Gets columns information.
    schema = OrderedDict()
    for item in results['columns']:
        schema[str(item['name'])] = str(item['type'])
    # Input format of the data.
    input_format = str(results['tableInfo']['sd']['inputFormat']).lower()
    logger.debug('Extracted information about Hive table columns')
    # Checks whether loading the data in same format is supported in
    # BigQuery.
    # Avro, ORC, and Parquet formats are supported directly in BigQuery.
    if "avro" in input_format:
        destination_data_format = "Avro"
        is_table_type_supported = True
    elif "orc" in input_format:
        destination_data_format = "ORC"
        is_table_type_supported = True
    elif "parquet" in input_format:
        destination_data_format = "Parquet"
        is_table_type_supported = True
    else:
        destination_data_format = "Avro"
        is_table_type_supported = False
    # Gets information of partition columns.
    partition_info = OrderedDict()
    for item in results['tableInfo']['partitionKeys']:
        partition_info[str(item['name'])] = str(item['type'])
    logger.debug(
        'Extracted information about Hive table partition columns')
    # Fetches column names of integer/timestamp/date types.
    int_type_col = []
    timestamp_type_col = []
    for item in schema.keys():
        if item in partition_info.keys():
            pass
        else:
            if schema[item] in ["tinyint", "smallint", "int", "bigint"]:
                int_type_col.append(item)
            elif schema[item] in ["timestamp", "date"]:
                timestamp_type_col.append(item)
            else:
                pass
    # CREATE TABLE statement for the Hive staging table.
    create_statement = "CREATE TABLE default.TABLE_NAME_HERE ("
    create_statement += ','.join("{} {}".format(key, value)
                                 for key, value in schema.items())
    create_statement += ") STORED AS {}".format(destination_data_format)
    logger.debug('Formed Hive stage table CREATE TABLE statement')
    # Initializes HiveTableModel.
    hive_table_model = HiveTableModel(
        table_details={
            "database_name": self.database_name,
            "table_name": self.table_name,
            "schema": schema,
            "input_format": input_format,
            "partition_info": partition_info,
            "is_table_type_supported": is_table_type_supported,
        },
        inc_col=incremental_col,
        inc_col_options={
            "int": int_type_col,
            "timestamp": timestamp_type_col
        },
        destination_data_format=destination_data_format,
        bq_table_name=PropertiesReader.get('bq_table'),
        create_statement=create_statement)
    return hive_table_model