Re: Numbering a records - Mailing list pgsql-general

From Jan Poslusny
Subject Re: Numbering a records
Date
Msg-id 403369B7.3050907@gingerall.cz
Whole thread Raw
In response to Numbering a records  ("NTPT" <ntpt@centrum.cz>)
List pgsql-general
If you strongly require this data-behavior, you, I think, must create
function afterUpdateOrInsertOrDelete(owner), which locks owner's rows
and recalculate position and batch, if needed.
But, imho, experience says that keeping data similar to your position
(ordinal number _without_ holes) is inefficient because concurency
conflicts on paralel updates.

regards,
pajout

NTPT wrote:

>I have this table
>
>content (id int8,owner int8,position int8,timestamp int8,description text,batch int8)
>
>Table is inserted/deleted frequently, 'id' is almoust random.
>
>
>
>I insert to the table following set of rows :
>
> 12345, 1000,1,timestamp,blabla,0
> 12349, 1000,2,timestamp,blabla,0
> 12355, 1001,1,timestamp,blabla,0
> 12389, 1000,3,timestamp,blabla,0
> etc.. There is a many of these records.
>
>Now I need to od some select like this
>
>select * from content where owner='1000' order by timestamp with some limits, offsets etc. It is OK, no problem.
>
>Other select, like to need  select a record of user 1000  WHERE position >5 AND position <150  is OK,
>
>But now, some records are inserted, some deleted, some have the timestamp column updated, so column 'position' is not
sequentialanymore. I need to create some  UPDATE ..... where owner='id of the owner' ORDER by timestamp, that will  
>recalculate column 'position' to contain actual position  inside a timestamp ordered table ? (ie. colum position
containan actual order of records that is owned by 'owner' ordered by timestamp ).Please note that usage of plain
LIMIT/OFFSETis not what I need. 
>
>
>in close relation to this, I have another problem. I NEED to assign bath number to records from this  example. ie in
thetable content, where owner='id of the owner' ordered by timestamp,  set of first 500 record should have the same
'bath'number  '1', set of 2nd 500 records should have its batch number '2' etc... 
>
>Is it possible and how it can be done ?
>
>
>PS: Execuse my bad english.
>
>---------------------------(end of broadcast)---------------------------
>TIP 8: explain analyze is your friend
>
>
>


pgsql-general by date:

Previous
From: "NTPT"
Date:
Subject: Numbering a records
Next
From: Robert Treat
Date:
Subject: Re: Differences between postgres and mysql