Re: [SQL] Problem copying polygon data into a table

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [SQL] Problem copying polygon data into a table
Дата
Msg-id 8442.945072031@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Problem copying polygon data into a table  (Brent Wood <brent.wood@blazemail.com>)
Список pgsql-sql
Brent Wood <brent.wood@blazemail.com> writes:
> The polygon has about 800 vertices (& is relatively small as some of the
> polygons in my dataset go).
> Trying to copy this into the table generates the error msg:
> ERROR: Tuple is too big: size 12892
> Does this mean that I've done summat incorrect, or that there is an
> undocumented limit in what can be loaded in a "copy" command, or a limit
> in the size (not area) of a polygon attribute?

There is a limit, but it's hardly "undocumented" --- you're running into
the infamous 8K-per-tuple limit.  I believe polygons are stored with
two float8's per vertex, so an 800-vertex polygon would take 16*800
bytes which matches your error message pretty nearly.  You can only
expect to fit maybe 500 vertexes in the standard 8K block size ...
less if there's much other data in your tuples :-(

This is a longstanding problem.  There is discussion raging right now
on the pghackers list about fixing it, and I think something may
actually happen in the next release or two.  In the meantime, the
only reasonably simple recourse is to increase BLCKSZ (see
src/include/config.h).  But you can only bump it up as far as 32K,
which'd be about 2K polygon vertexes; I don't know if that's enough
for your purposes.
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: wieck@debis.com (Jan Wieck)
Дата:
Сообщение: Re: [SQL] Problem copying polygon data into a table
Следующее
От: "Moray McConnachie"
Дата:
Сообщение: Re: [SQL] how to tell the difference between empty field and null field