does the second statement within a function can view the results after execution of first statement to get max(P.K.)?
CPK
On Mon, Sep 15, 2008 at 10:38 PM, Richard Huxton <dev@archonet.com> wrote:
c k wrote: > Dear PG members,I want to know that does begin and end in plpgsql are > related to begin transactions and commit? if yes/no how?
No. All functions operate within a transaction.
> If I start to > execute a function of multiple statements does PG commits each transaction > within a function, or whole function as a transaction.
You can have many statements (function calls) within a single transaction. If you don't explicitly issue BEGIN ... COMMIT then each statement is wrapped in its own transaction. Note that some client libraries have "autocommit" options that do things their own way.
> Also if first statement makes inserts/updates a row, does it automatically > available to that particular function execution only or to any other > instances of same function? > Please give the details.
If you insert/update/delete one or more rows, they are visible outside the function - it's all the same tables.
> In my system, function are extensively used and cab called by different > clients as ODBC, JDBC and others.
There is no difference between a user-written function and a built-in function in PostgreSQL as regards calling them or their effects. Some clients might offer better support than others, but they should all let you build "raw" sql.