Обсуждение: RE: [HACKERS] Begin statement again

Поиск
Список
Период
Сортировка

RE: [HACKERS] Begin statement again

От
"Meskes, Michael"
Дата:
I agree with BEGIN/END being used for PL/pgSQL. But that means I have to
add it to ecpg to start a block of PL/pgSQL, e.g. to call a stored
procedure in ORACLE I need PL/SQL in C.

AFAIK there is no transaction start command in SQL standard anymore.
Just issue commit and your transaction is flushed. So either I have to
remove that feature and go back to explicit transaction start commands
or BEGIN WORK resp. BEGIN TRANSACTION are useless.

Michael

--
Dr. Michael Meskes, Project-Manager    | topsystem Systemhaus GmbH
meskes@topsystem.de                    | Europark A2, Adenauerstr. 20
meskes@debian.org                      | 52146 Wuerselen
Go SF49ers! Go Rhein Fire!             | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux!                  | Fax: (+49) 2405/4670-10

> -----Original Message-----
> From:    Zeugswetter Andreas [SMTP:andreas.zeugswetter@telecom.at]
> Sent:    Friday, March 13, 1998 1:50 PM
> To:    'Michael Meskes'
> Cc:    'pgsql-hackers@hub.org'
> Subject:    AW: [HACKERS] Begin statement again
>
> I think we should depreciate the BEGIN/END keywords in SQL to allow
> them
> to be used for the new PL/SQL. So definitely leave them out of ecpg
> now.
> Only accept BEGIN WORK and BEGIN TRANSACTION. (do a sequence of commit
> work; begin work)
> BTW.: why is a transaction always open ? A lot of programs would never
> need a
> transaction. Is it because of cursors ?
>
> Andreas
>
>
> Michael Meskes wrote:
> Forget about my last question. I found the begin call in ecpglib.c. It
> doesn
> what you expect from a embedded SQL preprocessor, it starts a new
> transaction as soon as one ends. Nevertheless I thought about
> accepting
> explicit begin calls in the new version. But they will always generate
> a
> warning message as the code's always inside a transaction. So I could
> as
> well accept the begin call but not give it to the backend.
>
>
>

Re: [HACKERS] Begin statement again

От
jwieck@debis.com (Jan Wieck)
Дата:
>
> I agree with BEGIN/END being used for PL/pgSQL. But that means I have to
> add it to ecpg to start a block of PL/pgSQL, e.g. to call a stored
> procedure in ORACLE I need PL/SQL in C.
>
> AFAIK there is no transaction start command in SQL standard anymore.
> Just issue commit and your transaction is flushed. So either I have to
> remove that feature and go back to explicit transaction start commands
> or BEGIN WORK resp. BEGIN TRANSACTION are useless.

    But there is AUTOCOMMIT ON/OFF


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #

Re: [HACKERS] Begin statement again

От
Michael Meskes
Дата:
Jan Wieck writes:
>     But there is AUTOCOMMIT ON/OFF

Hmm, but not in ecpg. It seems this has to be added.

Anyway, here's what ecpg allows for transaction handling:

ABORT TRANSACTION | ROLLBACK WORK | ABORT | ROLLBACK;

END TRANSCACTION | COMMIT | COMMIT RELEASE | COMMIT WORK RELEASE;

BEGIN | BEGIN TRANSACTION | BEGIN WORK;

Michael

--
Dr. Michael Meskes, Project-Manager    | topsystem Systemhaus GmbH
meskes@topsystem.de                    | Europark A2, Adenauerstr. 20
meskes@debian.org                      | 52146 Wuerselen
Go SF49ers! Go Rhein Fire!             | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux!                  | Fax: (+49) 2405/4670-10