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