Re: LIMIT 1 FOR UPDATE or FOR UPDATE LIMIT 1?

From: Jan Wieck <JanWieck(at)Yahoo(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: magnus(dot)enbom(at)rockstorm(dot)se, pgsql-sql(at)postgresql(dot)org
Subject: Re: LIMIT 1 FOR UPDATE or FOR UPDATE LIMIT 1?
Date: 2002-08-26 18:42:26
Message-ID: 3D6A7692.2F43B18@Yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

Bruce Momjian wrote:
>
> I found this email from April. It properly points out that our
> LIMIT/FOR UPDATE ordering doesn't match MySQL's, and MySQL's looks more
> correct, specifically that the FOR UPDATE is after the LIMIT. Our
> grammar is:

How do you define "correct" for "non-standard" features? And why don't
you ask Monty first to change to our "de-facto-standard"? ;-)

Jan

>
> | select_clause sort_clause opt_for_update_clause opt_select_limit
>
> How do we want to deal with this? I tried allowing both orderings with
> the attached patch but got:
>
> bison -y -d gram.y
> conflicts: 4 shift/reduce, 5 reduce/reduce
>
> ---------------------------------------------------------------------------
>
> Magnus Enbom wrote:
> > Hi,
> >
> > I've just been hit by a small but annoying difference between postgres(7.2)
> > and mysql(4.x).
> > In postgresql you do:
> >
> > SELECT * FROM table FOR UPDATE LIMIT 1;
> >
> > and in mysql you do:
> >
> > SELECT * FROM table LIMIT 1 FOR UPDATE;
> >
> > Is it possible for postgres to accept the mysql syntax as well?
> > It's not that many databases that implement LIMIT, so it would be nice if the
> > ones that do have the same syntax(or can accept each others variants).
> >
> > -- Magnus
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> > (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
> >
>
> --
> Bruce Momjian | http://candle.pha.pa.us
> pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
> + If your life is a hard drive, | 13 Roberts Road
> + Christ can be your backup. | Newtown Square, Pennsylvania 19073
>
> ------------------------------------------------------------------------
> Name: /bjm/diff
> /bjm/diff Type: Plain Text (text/plain)
> Encoding: 7bit
>
> Part 1.3 Type: Plain Text (text/plain)
> Encoding: 8bit

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2002-08-26 18:42:32 Re: 2nd cut at SSL documentation
Previous Message Lamar Owen 2002-08-26 18:40:54 Re: @(#)Mordred Labs advisory 0x0007: Remove DoS in PostgreSQL

Browse pgsql-sql by date

  From Date Subject
Next Message Bruce Momjian 2002-08-26 18:53:45 Re: LIMIT 1 FOR UPDATE or FOR UPDATE LIMIT 1?
Previous Message Jiaqing Wang 2002-08-26 14:56:51 Re: weird situation, BUG or I'm not doing it right