pgsql: Revise memory management for libxml calls.

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Revise memory management for libxml calls.
Date: 2008-01-15 18:57:00
Message-ID: 20080115185700.123E6754108@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Revise memory management for libxml calls. Instead of keeping libxml's data
in whichever context happens to be current during a call of an xml.c function,
use a dedicated context that will not go away until we explicitly delete it
(which we do at transaction end or subtransaction abort). This makes recovery
after an error much simpler --- we don't have to individually delete the data
structures created by libxml. Also, we need to initialize and cleanup libxml
only once per transaction (if there's no error) instead of once per function
call, so it should be a bit faster. We'll need to keep an eye out for
intra-transaction memory leaks, though. Alvaro and Tom.

Modified Files:
--------------
pgsql/src/backend/access/transam:
xact.c (r1.256 -> r1.257)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c?r1=1.256&r2=1.257)
pgsql/src/backend/utils/adt:
xml.c (r1.67 -> r1.68)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/xml.c?r1=1.67&r2=1.68)
pgsql/src/include/utils:
xml.h (r1.22 -> r1.23)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/xml.h?r1=1.22&r2=1.23)

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2008-01-15 21:02:42 Re: pgsql: Fix an ancient oversight in libpq's handling of V3-protocol COPY
Previous Message Tom Lane 2008-01-15 18:22:47 pgsql: Tweak new error message to conform to style guidelines.