reading row in backend

From: Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk>
To: pgsql-hackers(at)postgresql(dot)org
Subject: reading row in backend
Date: 2000-05-15 22:29:57
Message-ID: 20000515232957.B22468@quartz.newn.cam.ac.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I'm just upgrading a database to v7.0, but I am rather unlucky in that in
each of 2 large (ca. 20000 rows) tables, 1 row is too big eg:

ERROR: copy: line 57552, Tuple is too big: size 8152, max size 8140

Now, it would help me if I could actually get a clue as to which row this
is. The error message comes from hio.c:118 at which point one has a
HeapTuple. Is there a way of extracting a piece of the row in the tuple to
be able to identify it?

It seems that a HeapTuple starts with a HeapTupleHeader, so the data I
suppose starts at tuple->t_data[sizeof(HeapTupleHeaderData)] and goes on for
tuple->t_len-sizeof(HeapTupleHeaderData) bytes, but how is it represented?

Any pointers appreciated! (These are huge COPY statements, so after the
error I'm left with an empty table - I'd just like to chop the 12 bytes
off!)

Cheers,

Patrick

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2000-05-15 22:55:50 Re: reading row in backend
Previous Message Mikheev, Vadim 2000-05-15 20:39:41 RE: Proposal: replace no-overwrite with Berkeley DB