Postgresql ve skutečnosti nepodporuje vrácení více sad výsledků z jednoho příkazu. Pokud tento vstup předáte do psql:
BEGIN;
SELECT ...;
END;
rozdělí to na stranu klienta a ve skutečnosti provede tři příkazy, z nichž pouze druhý vrátí sadu výsledků.
"BEGIN" a "END" jsou příkazy na úrovni SQL pro zahájení/dokončení transakce. (Může pro to existovat protokol nižší úrovně, ale nepamatuji si to). Pravděpodobně je nechcete vydávat přímo, ale požádejte o to váš ovladač (psycopg2). Například pomocí DBI Perlu zadávám při připojování AutoCommit=>0 a před mým prvním příkazem to implicitně vydá "BEGIN"; a poté "END" (nebo "COMMIT" atd.), když výslovně zavolám $dbh->commit; Myslím, že DB-API Pythonu funguje spíše takto, protože jiné systémy, jako je JDBC, to dělají také...