RE: [ODBC] RE: 7.1 beta 3 Linux ODBC BEGINBehaviour

From: Dave Page <dpage(at)vale-housing(dot)co(dot)uk>
To: "'Hiroshi Inoue'" <Inoue(at)tpf(dot)co(dot)jp>
Cc: Steve Wranovsky <stevew(at)merge(dot)com>, pgsql-interfaces(at)postgresql(dot)org, pgsql-odbc(at)postgresql(dot)org
Subject: RE: [ODBC] RE: 7.1 beta 3 Linux ODBC BEGINBehaviour
Date: 2001-02-13 11:09:53
Message-ID: 8568FC767B4AD311AC33006097BCD3D61A2992@woody.vale-housing.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces pgsql-odbc

> -----Original Message-----
> From: Hiroshi Inoue [mailto:Inoue(at)tpf(dot)co(dot)jp]
> Sent: 13 February 2001 10:47
> To: Dave Page
> Cc: Steve Wranovsky; pgsql-interfaces(at)postgresql(dot)org;
> pgsql-odbc(at)postgresql(dot)org
> Subject: Re: [ODBC] RE: [INTERFACES] 7.1 beta 3 Linux ODBC
> BEGINBehaviour
>
>
> Dave Page wrote:
> >
> > >
> > > Steve Wranovsky wrote:
> > > >
> > > > >>
> > > > >> Given these considerations, I think it's a mistake for
> > > ODBC to treat
> > > > >> SELECT differently from other queries for the
> purpose of setting
> > > > >> transaction boundaries.
> > > > >>
> > > > >
> > > > >OK, agreed.
> > > > >However simply putting back the behabior make it
> impossible to call
> > > > >VACUUM in psqlodbc autocommit off mode.
> > > > >
> > > > >My idea is as follows.
> > > > > [In autocommit off mode]
> > > > > 1) All statements except STMT_TYPE_OTHER issue
> > > > > "BEGIN" if a trasaction isn't in progress.
> > > > > 2) STMT_TYPE_OTHER statements automatically issue
> > > > > "COMMIT" if a transaction is progress.
> > > > >
> > > > >Comments ?
> > > >
> > > > I now agree with point 1 above, but for point 2, I believe
> > > you should
> > > > force the user to issue a COMMIT if a transaction is in progress
> > > > when they try a VACUUM ANALYZE.
> > >
> > > I've been waiting for reply.
> > > I see. It's the simplest change. But you seem to have to
> > > change your existent your code. Or you may have to distinguish
> > > your code according to PG servers. Is it OK ?
> >
> > I've not really been following this thread, but changing
> code or writing
> > server version dependant code sounds very bad to me.
> Certainly in my case I
> > have enough issues as it is keeping pgAdmin working with
> the current and
> > previous release...
> >
>
> Sorry my explanation was wrong. The version is of driver not
> of server. I'm confirming him in his inconvenience.
>
> In the previous release(6.5.???) in autocommit off mode
> Steve's query sequence e.g.
> select ...
> vacuum ...
> was successful because neither "select" nor "vacuum"
> issued "BEGIN".
>
> In 7.01.0001
> select ...
> issues "BEGIN" and subsequent
> vacuum ...
> fails because "vacuum" isn't allowed to be called inside
> a transaction block. Even though he inserts
> commit
> after "select", "vacuum" itself issues "BEGIN" and fails.
>

Ahh, I see. I suffered this problem with pgAdmin - it's not just VACUUM that
is affected. CREATE/ALTER/DROP USER/DATABASE are also affected, and maybe
other queries as well. I did raise this some time ago and got no response
other than the ODBC driver (and other affected interfaces) should *not* be
changed to stop wrapping such queries in a transaction, rather the
restriction that was added to PostgreSQL 7.0 to throw the error should be
removed. I did exchange email with Thomas Lockhart who was keen to fix the
problem and considered it a 'release stopper'. I know that some causes of
the error message were removed, but don't know if he got them all.

Incidently, pgAdmin gets round the problem by prepending a space to affected
queries! It seems that postgresql will error with "VACUUM" but not "
VACUUM". Odd....

Regards,

Dave.

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Tom Lane 2001-02-13 14:58:13 Re: [ODBC] RE: 7.1 beta 3 Linux ODBC BEGINBehaviour
Previous Message Hiroshi Inoue 2001-02-13 10:47:23 Re: [ODBC] RE: 7.1 beta 3 Linux ODBC BEGINBehaviour

Browse pgsql-odbc by date

  From Date Subject
Next Message Constantin S. Svintsoff 2001-02-13 12:00:19 BEGIN Behaviour
Previous Message Hiroshi Inoue 2001-02-13 10:47:23 Re: [ODBC] RE: 7.1 beta 3 Linux ODBC BEGINBehaviour