<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_results_from_table_definition(table_definition, table_definition_file, options):
 """ Load all results in files that are listed in the given table-definition file. @return: a list of RunSetResult objects """

    default_columns = extract_columns_from_table_definition_file(table_definition, table_definition_file)
    columns_relevant_for_diff = _get_columns_relevant_for_diff(default_columns)

    results = []
    for tag in table_definition:
        if tag.tag == 'result':
            columns = extract_columns_from_table_definition_file(tag, table_definition_file) or default_columns
            run_set_id = tag.get('id')
            for resultsFile in get_file_list_from_result_tag(tag, table_definition_file):
                results.append(parallel.submit(
                    load_result, resultsFile, options, run_set_id, columns, columns_relevant_for_diff))

        elif tag.tag == 'union':
            results.append(parallel.submit(
                handle_union_tag, tag, table_definition_file, options, default_columns, columns_relevant_for_diff))

    return [future.result() for future in results]