* a transaction block, typically because they have non-rollback-able
* side effects or do internal commits.
*
+ * If this routine completes successfully, then the calling statement is
+ * guaranteed that if it completes without error, its results will be
+ * committed immediately.
+ *
* If we have already started a transaction block, issue an error; also issue
* an error if we appear to be running inside a user-defined function (which
* could issue more commands and possibly cause a failure after the statement
* a transaction block than when running as single commands. ANALYZE is
* currently the only example.
*
+ * If this routine returns "false", then the calling statement is
+ * guaranteed that if it completes without error, its results will be
+ * committed immediately.
+ *
* isTopLevel: passed down from ProcessUtility to determine whether we are
* inside a function.
*/