Re: [HACKERS] [6.5.2] join problems ...
От | Mike Mascari |
---|---|
Тема | Re: [HACKERS] [6.5.2] join problems ... |
Дата | |
Msg-id | 19990919172146.29199.rocketmail@web112.yahoomail.com обсуждение исходный текст |
Список | pgsql-hackers |
Yes, sorry. Typo. I MEANT to put the parens around the field list, but... Mike Mascari --- Thomas Lockhart <lockhart@alumni.caltech.edu> wrote: > <snip> > > > AND (a.id,a.mid = b.id,b.mid) > > > AND (b.catid,b.indid,b.divid = > c.id,c.ppid,c.pid); > > ... the above is not valid in PostgreSQL, it > seems... > > I have to resort to looking at gram.y for this, > since I currently have > the Postgres parser in bits and pieces all over the > garage floor ;) > > The expressions are *almost* valid for Postgres. The > difference is > that you need to put parens around each side of the > "row expression": > > | '(' row_descriptor ')' row_op '(' > row_descriptor ')' > { > $$ = makeRowExpr($4, $2, $6); > } > ; > > I had implemented this using Date and Darwen as a > reference, and afaik > the SQL standard (and any sensible parser) > *requires* parens around > the row expression, referred to in gram.y as a "row > descriptor". > > So, the following should work: > > AND ((a.id,a.mid) = (b.id,b.mid)) > AND ((b.catid,b.indid,b.divid) = > (c.id,c.ppid,c.pid)); > > > - Thomas __________________________________________________ Do You Yahoo!? Bid and sell for free at http://auctions.yahoo.com
В списке pgsql-hackers по дате отправления: