Hi I am trying to get a better understanding of how transactions work in pl/pgsql functions. I found the following text in the help: "It is important not to confuse the use of BEGIN/END for grouping statements in PL/pgSQL with the database commands for transaction control. PL/pgSQL's BEGIN/END are only for grouping; they do not start or end a transaction" but I am still a bit confused. Suppose I have a function that will be called from an application. Will all the statements in the function be rolled back if the last one generates an exception? or do I need to add code to a function to make that happen? Thanks Craig ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings