Re: left outer join and values() - Mailing list pgsql-general

From Tom Allison
Subject Re: left outer join and values()
Date
Msg-id 8642DD1C-6D40-4859-9B96-9D8DAF3CFCD0@tacocat.net
Whole thread Raw
In response to Re: left outer join and values()  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Thank you for the response.
I did figure this out a few minutes after I sent this post.
Apologies for jumping the gun.

I must say, I am absolutely impressed with what pgsql's
implimentation of VALUES allows me to do.
It's kind of ridiculous how much "work" goes away in my code.
Too bad I can't do this at work (Oracle 8/9).

On May 31, 2007, at 11:48 PM, Tom Lane wrote:

>
> Tom Allison <tom@tacocat.net> writes:
>> select v.history.idx, v.token_idx
>> from (
>> values ((3,1),(3,2))) as v(history_idx, token_idx)
>> left outer join history_token ht on v.history_idx = ht.history_idx
>> and v.token_idx = ht.token_idx
>> where ht.history_idx is null;
>> ERROR:  operator does not exist: record = integer
>> LINE 4: left outer join history_token ht on v.history_idx =
>> ht.histo...
>>                                                            ^
>
> You've got too many parentheses --- the system thinks that "values"
> specification is a single row containing two fields that are each
> two-column records.  I think you want
>
> select v.history_idx, v.token_idx
> from (
> values (3,1),(3,2)) as v(history_idx, token_idx)
> left outer join history_token ht on v.history_idx = ht.history_idx
> and v.token_idx = ht.token_idx
> where ht.history_idx is null;
>
> Note the "history.idx" typo as well.
>
>             regards, tom lane
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster


pgsql-general by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: PITR Base Backup on an idle 8.1 server
Next
From: "Dmitry Koterov"
Date:
Subject: Re: Does slonik EXECUTE SCRIPT call waits for comands termination?