Re: request for sql3 compliance for the update command - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: request for sql3 compliance for the update command
Date
Msg-id 200302192300.h1JN0pZ18897@candle.pha.pa.us
Whole thread Raw
In response to Re: request for sql3 compliance for the update command  (Dave Cramer <dave@fastcrypt.com>)
Responses Re: request for sql3 compliance for the update command  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
While I don't see the syntax of:
update table set (col...) = ( val...)

as valuable compared to separate col=val assignments, I do see a value
in allowing subqueries in such assignments:
update table set (col...) = ( select val ..)

Without it, you have to do separate subquery statements, and if they are
complex, that is a waste.  I assume that was the motivation for the
feature.

---------------------------------------------------------------------------

Dave Cramer wrote:
> Patrick,
> 
> No, they support the syntax:
> 
> update table set (col1, col2, col3) = ( val1, val2, val3 )
> 
> I have a customer with a rather large application which uses this
> syntax, because they were using informix. There is also a rather
> interesting 4GL project called aubit which is on sourceforge. They would
> also like to see this supported for the same reasons.
> 
> Dave 
> 
> 
> On Wed, 2003-02-19 at 15:02, Patrick Welche wrote:
> > > I have a large customer who is converting from informix to postgres and
> > > they have made extensive use of 
> > > 
> > > update table set (col...) = ( val...)
> > > 
> > > as a first pass would it be possible to translate this in the parser to
> > > 
> > > update table set col=val
> > > 
> > > It would appear that this is SQL3 compliant
> > > 
> > > <set clause> ::=
> > >  <update target> <equals operator> <row value designator>
> > > 
> > > <update target> ::=
> > >  <object column>
> > >  | <left paren> <object column list> <right paren>
> > > 
> > > 
> > > or can someone think of another way?
> > 
> > I don't understand the original problem. What does informix give you? A
> > text file full of "update table set ()=()" which you then try to feed
> > into postgres? In that case, why not pass said text file through a sed or
> > perl script first?
> > 
> > Cheers,
> > 
> > Patrick
> -- 
> Dave Cramer <dave@fastcrypt.com>
> Cramer Consulting
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html
> 

--  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,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Tilo Schwarz
Date:
Subject: Re: Changing the default configuration (was Re: [pgsql-advocacy]
Next
From: mlw
Date:
Subject: Re: The last configuration file patch (I hope!) This one