Re: Vote on SET in aborted transaction

Bruce Momjian <pgman@candle.pha.pa.us>

From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Hiroshi Inoue <Inoue@tpf.co.jp>
Cc: Michael Loftis <mloftis@wgops.com>, Jan Wieck <janwieck@yahoo.com>, Tom Lane <tgl@sss.pgh.pa.us>, Thomas Lockhart <lockhart@fourpalms.org>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2002-04-25T03:03:08Z
Lists: pgsql-hackers
Hiroshi Inoue wrote:
> Bruce Momjian wrote:
> > 
> > Hiroshi Inoue wrote:
> > >
> > > What are you expecting for psql e.g. the following
> > > wrong(?) example ?
> > >
> > >       [The curren schema is schema1]
> > >         begin;
> > >         create schema foo;
> > >         set search_path = foo;
> > >         create table t1 (....); [error occurs]
> > >         commit;
> > >         insert into t1 select * from schema1.t1;
> > 
> > I am expecting the INSERT will use the search_path value that existed
> > before the error transaction began.
> > 
> 
> So you see foo.t1 which is a copy of schema1.t1
> if all were successful and you may be able to see
> the doubled schema1.t1 in case of errors.

Yes, I think that is how it would behave.  If you don't roll back 'set
search_path', you are pointing to a non-existant schema.

Probably the proper thing here would be to have the INSERT in the
transaction too.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026