Bug fixes for SQL-DDL/DML
We currently use transactions to fetch the result of a Coderunner SQL test case without permanently modifying the underlying database. However, I found out that DuckDB implicitly aborts a transaction and does not accept new SQL statements before a ROLLBACK
if one statement in a transaction creates an error.
This is problematic for DDL/DML exercises since we must issue multiple statements that are supposed to raise errors in some tests to verify that students created correct integrity constraints. Therefore, we must replace the Transaction/Rollback functionality in fetch_expected_results
. I suggest creating a new temporary copy of the database file for each method call that we delete once the results are fetched.