Re: Storing an ordered list - Mailing list pgsql-sql

From Bruno Wolff III
Subject Re: Storing an ordered list
Date
Msg-id 20060727131823.GA30179@wolff.to
Whole thread Raw
In response to Re: Storing an ordered list  ("Michael Artz" <mlartz@gmail.com>)
List pgsql-sql
On Wed, Jul 26, 2006 at 20:13:03 -0400, Michael Artz <mlartz@gmail.com> wrote:
> On 7/26/06, Bruno Wolff III <bruno@wolff.to> wrote:
> >If you use numeric instead of int, then it is easy to insert new values.
> 
> Hmm, hadn't thought about that.  How would you normally implement it?
> I'm thinking that, if I wanted to insert between A and B, I could take
> (A.order + B.order)/2, which would be pretty simple.  Is there a
> better way?

I think that will depend. To keep the size of the number down, you will
probably want to use the number with the fewest digits to the right of the
decimal point that gives you a number between the two values. That will be
a bit more complicated than the above formula. But you will want to do
something to keep the size of the numerics down since it seems like reordering
will be common.

Another issue to consider is concurrency. You may want to lock the table
against concurrent reordering, as doing two at once may lead to some unexpected
events.


pgsql-sql by date:

Previous
From: "Michael Artz"
Date:
Subject: Re: Storing an ordered list
Next
From: "Daniel Caune"
Date:
Subject: PostgreSQL server terminated by signal 11