join problems: FATAL 1: palloc failure: memory exhausted - Mailing list pgsql-hackers

From Oleg Bartunov
Subject join problems: FATAL 1: palloc failure: memory exhausted
Date
Msg-id Pine.GSO.3.96.SK.980731032232.28062B-100000@ra
Whole thread Raw
Responses Re: [HACKERS] join problems: FATAL 1: palloc failure: memory exhausted
List pgsql-hackers
Hi,

Below is an example of my query, which returns no plan and produces
FATAL 1:  palloc failure: memory exhausted while postgres 'eats'
almost 113 Mb of RAM. This happens with pgsql 6.3.2+patches plus latest
Vadim's one on Linux 2.0.35 libc5. Sorry for variable names :-)
I remember discussion prior 6.3.2 about optimization of join and
tried various -f options but this doesn't helps.
When I run postmaster in debug mode I noticed some complains about
geqo config file doesn't exists but not sure if this important.
When I tried explain with less joins I got very bad plans with no
indices used.  Tables are not big - about 1000 records  - just
a classificators (2 columns) and only work_flats has 31 columns.
Most columns have int2, int4 types. So database looks very simple and
I didn't expect any problem.
Of course there are a bunch of indices and I did vacuum before query.
Currently I have to run a bunch of queries and do joins
by hand (using perl) :-(

Does development version 6.4 has some improvements ? I tried
latest snapshot but couldn't run because of problem with initdb and
missing anonymous  cvs account.

    Regards,

        Oleg

flats=> \i test.sql
explain select
        a.ROOMS, b.STATION, a.STREET, a.HOUSE_NO, a.FLAT_NO,
        float8(a.PRICE)/1000.0, a.DO_METRO, c.SPOSOB_SH, a.FLOOR,
        e.HOUSE_TYPE_SHORT, a.HOUSE_FLOORS, float8(a.ALL_SQR)/100.0,
        float8(a.LIVE_SQR)/100.0, float8(a.KITCHEN)/100.0, f.SANUZEL_SHORT,
        a.SANUZEL_NO,  a.BALKON, a.LODZHIA, a.HAVE_PHONE, a.HAVE_LIFT,
        a.HAVE_MUSOR,  g.POL_SHORT, h.SOST_SHORT, i.STATUS_SHORT, a.COMMENT
from  WORK_FLATS a, METRO_STATIONS b, SPOSOB c, SERIALS d,
        HOUSE_TYPE e, SANUZELS f, POLS g, SOSTS h, STATUS i
where b.STATION_ID = a.METRO_ID and c.SPOSOB_ID = a.DO_METRO_ID and
        a.SERIAL_ID = d.SERIAL_ID and d.HOUSE_TYPE_ID = e.HOUSE_TYPE_ID and
        f.SANUZEL_ID = a.SANUZEL and g.POL_ID = a.POL_ID and
        h.SOST_ID = a.SOST_ID     and i.STATUS_ID = a.STATUS_ID and
        a.rooms = 1;
FATAL 1:  palloc failure: memory exhausted


_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


pgsql-hackers by date:

Previous
From: "Dr. Michael Meskes"
Date:
Subject: Re: [HACKERS] Q about read committed in Oracle...
Next
From: Vadim Mikheev
Date:
Subject: Re: [HACKERS] join problems: FATAL 1: palloc failure: memory exhausted