Ejemplo n.º 1
0
def replace_unknown_tables(from_set, where_set):
    to_delete_from_from = set()
    to_add_to_from = set()
    to_delete_from_where = set()
    to_add_to_where = set()

    for from_item in from_set:
        if "TABLE" in from_item:
            to_delete_from_from.add(from_item)
            name = re.search("TABLE_(.+)", from_item).group(1)
            table = Database.find_table(separate_title(name))
            if table != "error":
                to_add_to_from.add(table)
                for where_item in where_set:
                    if "TABLE_" + name in where_item:
                        to_delete_from_where.add(where_item)
                        to_add_to_where.add(re.sub("TABLE_" + name, table, where_item))
            else:
                for where_item in where_set:
                    if "TABLE_" + name in where_item:
                        to_delete_from_where.add(where_item)

    from_set.difference_update(to_delete_from_from)
    from_set.update(to_add_to_from)
    where_set.difference_update(to_delete_from_where)
    where_set.update(to_add_to_where)