def _prepare_db_queue_for_ddl()

in evalbench/evaluator/db_manager.py [0:0]


def _prepare_db_queue_for_ddl(core_db: DB, db_name, db_config, setup_config, num_dbs):
    """For DDL, use the same single DB with a user that has only DDL access."""
    if setup_config:
        setup_scripts, _ = _get_setup_values(
            setup_config, db_name, db_config.get("db_type")
        )
    core_db.set_setup_instructions(setup_scripts, None)
    core_db.resetup_database(False, False)
    db_queue = Queue[DB]()
    if not setup_config:
        raise ValueError("No Setup Config was provided for DDL")
    setup_scripts, _ = _get_setup_values(
        setup_config, db_name, db_config.get("db_type")
    )
    tmp_dbs = core_db.create_tmp_databases(num_dbs)
    with ThreadPoolExecutor() as executor:
        create_ddl_tmp_db_p = partial(
            _create_ddl_tmp_db, db_config=db_config, setup_scripts=setup_scripts
        )
        results = executor.map(create_ddl_tmp_db_p, tmp_dbs)
        for tmp_db in results:
            db_queue.put(tmp_db)
    return db_queue