Re: query produces 1 GB temp file

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: lutzeb(at)aeccom(dot)com
Cc: Greg Stark <gsstark(at)mit(dot)edu>, pgsql-performance(at)postgresql(dot)org, john(at)arbash-meinel(dot)com
Subject: Re: query produces 1 GB temp file
Date: 2005-02-06 17:16:54
Message-ID: 4859.1107710214@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Dirk(dot)Lutzebaeck(at)t-online(dot)de (Dirk Lutzebaeck) writes:
> SELECT DISTINCT ON (df.val_9, df.created, df.flatid) df.docindex,
> df.flatobj, bi.oid, bi.en
> FROM bi,df
> WHERE bi.rc=130170467
> ...
> ORDER BY df.val_9 ASC, df.created DESC
> LIMIT 1000 OFFSET 0

Just out of curiosity, what is this query supposed to *do* exactly?
It looks to me like it will give indeterminate results. Practical
uses of DISTINCT ON generally specify more ORDER BY columns than
there are DISTINCT ON columns, because the extra columns determine
which rows have priority to survive the DISTINCT filter. With the
above query, you have absolutely no idea which row will be output
for a given combination of val_9/created/flatid.

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Dirk Lutzebaeck 2005-02-06 17:18:35 Re: query produces 1 GB temp file
Previous Message Steven Rosenstein 2005-02-06 17:16:13 Are JOINs allowed with DELETE FROM