On Mon, Sep 15, 2008 at 11:22 PM, c k <[EMAIL PROTECTED]> wrote:
> If I have a function having:begin > insert into something ... > select max(primary key) from something.. > end; > > 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 <[EMAIL PROTECTED]> 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. >> >> -- >> Richard Huxton >> Archonet Ltd >> > >
