Re: [HACKERS] DISTINCT ON: speak now or forever hold your peace

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Mike Mascari <mascarm(at)mascari(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgreSQL(dot)org, pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [HACKERS] DISTINCT ON: speak now or forever hold your peace
Date: 2000-01-25 03:09:42
Message-ID: 200001250309.WAA22942@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

> INSERT INTO temp_sales
> SELECT DISTINCT on key supplysources.supplysource,
> incharges.supply, targets.target, incharges.saledate,
> incharges.supplyunit, '', incharges.quantity, incharges.company,
> incharges.costcntr, 'Replenish', incharges.price, '','','', 0,
> text(supplysources.supplysource)||
> text(incharges.supply)||
> text(targets.target)||
> text(incharges.saledate) as key
> FROM supplysources, incharges, targets WHERE
> supplysources.warehouse = incharges.warehouse AND
> (targets.site,targets.area) = (incharges.site,incharges.area);
>
> What happens is that a large charges file which is transferred to
> a mainframe ERP application is first brought into PostgreSQL.
> Depending upon certain race conditions, duplicate "sales" records
> can appear in the data file. We use DISTINCT ON to pick (as you
> point out) an arbitrary record when duplicates appear. I suppose
> we could do a DELETE ... WHERE NOT EXISTS after the import. Using
> DISTINCT ON just saves a step. I don't have any arguments beyond
> the grounds that we're using it in existing code as a duplicate
> record filter - :-(

Why not just throw a NOTICE and keep the feature.

--
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Chris Bitmead 2000-01-25 03:09:50 Re: [HACKERS] DISTINCT ON: speak now or forever hold your peace
Previous Message Tom Lane 2000-01-25 03:06:05 Sure enough, SI buffer overrun is broken

Browse pgsql-sql by date

  From Date Subject
Next Message Chris Bitmead 2000-01-25 03:09:50 Re: [HACKERS] DISTINCT ON: speak now or forever hold your peace
Previous Message Philip Warner 2000-01-25 03:03:49 Re: [HACKERS] DISTINCT ON: speak now or forever hold your peace