Use of LOCAL in SET command
Sorry to nag about this so late, but I fear that the new command SET LOCAL
will cause some confusion later on.
SQL uses LOCAL to mean the local node in a distributed system (SET LOCAL
TRANSACTION ...) and the current session as opposed to all sessions (local
temporary table). The new SET LOCAL command adds the meaning "this
transaction only". Instead we could simply use SET TRANSACTION, which
would be consistent in behaviour with the SET TRANSACTION ISOLATION LEVEL
command.
Comments?
--
Peter Eisentraut peter_e@gmx.net
SQL uses LOCAL to mean the local node in a distributed system (SET LOCAL
TRANSACTION ...) and the current session as opposed to all sessions (local
temporary table). The new SET LOCAL command adds the meaning "this
transaction only". Instead we could simply use SET TRANSACTION, which
would be consistent in behaviour with the SET TRANSACTION ISOLATION LEVEL
command.
Yes. If there is a possibility of confusion (now or later) over SQL99
syntax, we should do it The Right Way per spec.
- Thomas
Peter Eisentraut <peter_e@gmx.net> writes:
Sorry to nag about this so late, but I fear that the new command SET LOCAL
will cause some confusion later on.
Okay...
SQL uses LOCAL to mean the local node in a distributed system (SET LOCAL
TRANSACTION ...) and the current session as opposed to all sessions (local
temporary table). The new SET LOCAL command adds the meaning "this
transaction only". Instead we could simply use SET TRANSACTION, which
would be consistent in behaviour with the SET TRANSACTION ISOLATION LEVEL
command.
Hmm ... this would mean that the implicit parsing of SET TRANSACTION
ISOLATION LEVEL would change (instead of SET / TRANSACTION ISOLATION
LEVEL you'd now tend to read it as SET TRANSACTION / ISOLATION LEVEL)
but I guess that would still not create any parse conflicts. I'm okay
with this as long as we can fix psql's command completion stuff to
handle it intelligently. I hadn't gotten round to looking at that point
yet for the LOCAL case; do you have any thoughts?
regards, tom lane
Has this been resolved?
---------------------------------------------------------------------------
Tom Lane wrote:
Peter Eisentraut <peter_e@gmx.net> writes:
Sorry to nag about this so late, but I fear that the new command SET LOCAL
will cause some confusion later on.Okay...
SQL uses LOCAL to mean the local node in a distributed system (SET LOCAL
TRANSACTION ...) and the current session as opposed to all sessions (local
temporary table). The new SET LOCAL command adds the meaning "this
transaction only". Instead we could simply use SET TRANSACTION, which
would be consistent in behaviour with the SET TRANSACTION ISOLATION LEVEL
command.Hmm ... this would mean that the implicit parsing of SET TRANSACTION
ISOLATION LEVEL would change (instead of SET / TRANSACTION ISOLATION
LEVEL you'd now tend to read it as SET TRANSACTION / ISOLATION LEVEL)
but I guess that would still not create any parse conflicts. I'm okay
with this as long as we can fix psql's command completion stuff to
handle it intelligently. I hadn't gotten round to looking at that point
yet for the LOCAL case; do you have any thoughts?regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073