pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruno Wolff III <bruno@wolff.to>
To: Martin Langhoff <martin@catalyst.net.nz>
Cc: PostgreSQL Bugs List <pgsql-bugs@postgresql.org>
Cc: pgsql-sql@postgresql.org
Subject: Re: BUG #1083: Insert query reordering interacts badly with
Date: Fri, 27 Feb 2004 07:46:53 -0600
Message-ID: <20040227134653.GA13683@wolff.to> (raw)
In-Reply-To: <403B2BD4.1060908@catalyst.net.nz>
References: <20040224012657.B86E5CF4A21@www.postgresql.com>
	<18400.1077601067@sss.pgh.pa.us>
	<403AF354.5030901@catalyst.net.nz>
	<18920.1077605515@sss.pgh.pa.us>
	<403B2BD4.1060908@catalyst.net.nz>

I am going to try to move this over the sql list, since it doesn't belong
on bugs.

On Tue, Feb 24, 2004 at 23:47:48 +1300,
  Martin Langhoff <martin@catalyst.net.nz> wrote:
> Tom Lane wrote:
> 
> >How about
> >
> >SELECT nextval('seq');       -- ignore result
> >
> >INSERT INTO ... VALUES (currval('seq'), currval('seq'));
> > 
> >
> 
> Well, it works for my sample case, I have to agree. Maybe I should 
> mention that I tried to boil down the bugreport to the simplest repro 
> case I could.
> 
> My actual SQL looks roughly like
> 
>    INSERT INTO destination (record_id, page, row)
>    SELECT
>        (SELECT record_id FROM record ORDERED BY name),
>        (NEXTVAL('seq') / 200),
>        (CURRVAL('seq') % 200)
> 
> While I have a workaround, I am definitely curious as to whether there 
> is actually a way to do it. Thanks for your patience.

I think the following will do what you want:

    INSERT INTO destination (record_id, page, row)
    SELECT record_id, seq/200, seq%200 FROM
        (SELECT record_id, nextval('seq') as seq FROM record ORDERED BY name);



view thread (7+ messages)

Message-ID: <20040227134653.GA13683@wolff.to>
Permalink:  ../20040227134653.GA13683@wolff.to/
Also on:    postgresql.org/message-id/20040227134653.GA13683@wolff.to

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: bruno@wolff.to, martin@catalyst.net.nz, pgsql-bugs@postgresql.org
  Subject: Re: BUG #1083: Insert query reordering interacts badly with
  In-Reply-To: <20040227134653.GA13683@wolff.to>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox