From: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
---|---|
To: | jagan <jaganrvce(at)yahoo(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: WAL, xl_heap_insert and tuple oid mystry |
Date: | 2011-04-12 06:55:04 |
Message-ID: | 4DA3F748.9020806@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 11.04.2011 23:35, jagan wrote:
> Hi,
> Suppose I create a table as follows:
>
> CREATE TABLE test2 (name TEXT, age INTEGER) WITH oids;
>
> Now, for every tuple in this table is associated with a unique oid, which I can retrieve by:
>
> SELECT oid, name, age FROM test2;
>
> which works great. So far so good.
>
> Now, if look at the corresponding WAL entry for any insert into this relation, it creates the following WAL entry which I can decode.
>
> XLogRecord ---> Followed by --> xl_heap_insert struct -->followed by --> xl_heap_header --> Followed by --> tuple data
>
> If I use the macro HeapTupleHeaderGetOid([xl_heap_header struct])
Yeah, that won't work because xl_heap_header is not a HeapTupleHeader.
> or equivalently if I test ([xl_heap_header struct]->t_infomask& HEAP_HASOID), it tells me that the tuple oid is not stored with this record.
That's strange, the flag should be set.
> Where is the OID of tuple stored in a WAL record of a tuple? If not with xl_heap_header, where is it stored? Is it stored at all?
It's stored in the "tuple data" portion. See the code that writes the
WAL record, here:
Maybe the WAL record you're looking at is a full-page image? A record
with a full-page image includes a verbatim copy of the page, and the
individual tuple is omitted in that case.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Bernd Helmle | 2011-04-12 10:15:09 | Re: Back branch update releases this week; beta postponed |
Previous Message | Jesper Krogh | 2011-04-12 04:46:14 | Re: Locking when concurrent updated of foreign references |