From: | Achmad Nizar Hidayanto <nizar(at)cs(dot)ui(dot)ac(dot)id> |
---|---|
To: | Alban Hertroys <dalroi(at)solfertje(dot)student(dot)utwente(dot)nl> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Ask ctid |
Date: | 2008-03-10 13:09:17 |
Message-ID: | 47D532FD.4030608@cs.ui.ac.id |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I'm currently using Postgre 8.2. Are there something wrong with that
version?
Below is the DDL for my table:
CREATE TABLE absensi (
id_absensi integer NOT NULL,
id_user integer,
tanggal date,
keterangan character varying,
id_tipe_absensi integer
);
ALTER TABLE ONLY absensi
ADD CONSTRAINT absensi_pkey PRIMARY KEY (id_absensi);
ALTER TABLE ONLY absensi
ADD CONSTRAINT unique_absen UNIQUE (id_user, tanggal);
below are examples of instance of two records:
R1: 1001, 1, 02-25-2008, Present, 1
R2: 1001, 1, 02-25-2008, Present, 1
The two records are identical. But if i display the ctid, the two
records differ as they
have different ctid (suppose i display the ctid in the first column):
R1: 8888, 1001, 1, 02-25-2008, Present, 1
R2: 9999, 1001, 1, 02-25-2008, Present, 1
Many thanks for your help.
Nizar
=====
Alban Hertroys wrote:
> On Mar 7, 2008, at 9:28 AM, Achmad Nizar Hidayanto wrote:
>
>> Thank you for the comment,
>>
>> I just wonder, how come i have two identic rows. I have set the
>> primary key and set it as a unique. That's why i take
>> a look at ctid (in real, i don't use this id. I just tried to trace
>> why i have two identic rows. After examining the physical
>> id using ctid, i found that the two identic rows differ in their ctid).
>>
>> Having this case, can i conclude that postgre cannot guarantee the
>> uniqueness of primary key? or is it just a bug of old
>> version of postgre?
>
>
> Well, it's certainly surprising your Postgres intallation is doing
> that - it's one of the things Postgres is good at, but we lack
> information to see what's really going on here.
>
> You're mentioning you're using an old version, which one? The output
> of "select version();" should do.
>
> Can you show us the table definition with the primary key and the two
> identical records you mentioned?
>
>> Many thanks for your help.
>>
>>
>> Nizar
>> =====
>>
>> Tom Lane wrote:
>>
>>> Achmad Nizar Hidayanto <nizar(at)cs(dot)ui(dot)ac(dot)id> writes:
>>>
>>>>
>>>> I implement database in my faculty using Postgre. I have a problem
>>>> with ctid in my tables. Let say, i have table STUDENT with #STU as
>>>> the primary key. I don't know what happend in this table, some
>>>> rows have exactly the same value ( i also have set the #STU as
>>>> unique). After tracing the table, i found that the two rows differ
>>>> in ctid value. As the impact, my application cannot operate well.
>>>
>>> There are some known bugs in older PG releases that could lead to
>>> duplicate rows (actually, to multiple versions of a row all being
>>> seen as live). If you're not on the latest minor version of your
>>> release series, update. regards, tom lane
>>
>>
>>
>
> Alban Hertroys
>
> --
> If you can't see the forest for the trees,
> cut the trees and you'll see there is no forest.
>
>
> !DSPAM:789,47d19036233095581217154!
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-03-10 13:41:24 | Re: Ask ctid |
Previous Message | Raymond O'Donnell | 2008-03-10 12:34:43 | Re: loading a psql input file on win xp |