Multi-row RETURNING behaviour
Client-side INSERT … SELECT
, UPDATE
, DELETE
, MERGE
and UPDATE OR INSERT
queries containing the RETURNING
clause may now return multiple records instead of raising error “multiple rows in singleton select” as it happened before.
These queries are now described as isc_info_sql_stmt_select during preparation, while in previous versions they were described as isc_info_sql_stmt_exec_procedure.
Singleton INSERT … VALUES
statements, as well as positioned UPDATE
and DELETE
statements (i.e. the ones containing the WHERE CURRENT OF
clause) preserve the existing behaviour, being described as isc_info_sql_stmt_exec_procedure.They also preserve the ability of being executed within a single protocol roundtrip to the server.
However, all these queries, if used in PSQL and the RETURNING
clause is applied, are still treated as singleton.