I'm looking at some code that a coworker ported from Informix to Postgres 9.0. The Informix database did not have transaction logging enabled thus no begins/aborts/commits/rollbacks where in the original code. The way the code has been ported there are still no begin statements in the code, only commit and rollback after data changing statements are executed.
Question 1: After a commit/rollback does the next SQL statement implicitly begin a transaction?
Question 2: If we're just examining data via SELECT statements should we be issuing COMMIT statements after or are they only required for data modifying operations?