pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Joe Conway <mail@joeconway.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Hackers (PostgreSQL) <pgsql-hackers@postgresql.org>
Subject: Re: VALUES clause memory optimization
Date: Thu, 03 Aug 2006 21:27:16 -0700
Message-ID: <44D2CCA4.8040507@joeconway.com> (raw)
In-Reply-To: <2922.1154609337@sss.pgh.pa.us>
References: <44B69778.5050104@dunslane.net>
	<50461.84.63.113.55.1152832991.squirrel@pezone.net>
	<ECCAAC0A3182895D3D12B0E8@[172.26.14.247]>
	<44B7ADFC.90205@dunslane.net>
	<44D03D9F.80203@joeconway.com>
	<15263.1154526181@sss.pgh.pa.us>
	<44D0AF87.2030304@joeconway.com>
	<16892.1154528708@sss.pgh.pa.us>
	<44D0B9C1.2020608@joeconway.com>
	<17704.1154534183@sss.pgh.pa.us>
	<44D140DF.5080209@joeconway.com>
	<2922.1154609337@sss.pgh.pa.us>

Tom Lane wrote:
> The reason we could safely list_free inside transformInsertRow is that
> we know all its callers have just built the passed-in list and so there
> are no other pointers to it.  That doesn't apply in the general case of
> grammar output.

What about for the specific case of an InsertStmt? It seems that we 
could at least get away with freeing the raw-expression list in that case.

In terms of freeing an entire arbitrary node, could we create a 
backend/nodes/freefuncs.c file that does a recursive freeObject() 
similar to the way copyObject() does in backend/nodes/copyfuncs.c?

> My advice is to get that low-hanging fruit
> in transformInsertRow and leave the other ideas for 8.3.

OK. This should be safe also, correct?

Thanks,

Joe

8<----------------------------------------
inline patch 1: src/backend/parser/analyze.c (+1/-0 lines) download inline-1.patchdiff -c -r1.341 analyze.c *** src/backend/parser/analyze.c 2 Aug 2006 01:59:46 -0000 1.341 --- src/backend/parser/analyze.c 2 Aug 2006 05:13:20 -0000 *************** *** 2191,2196 **** --- 2196,2202 ---- for (i = 0; i < sublist_length; i++) { coltypes[i] = select_common_type(coltype_lists[i], "VALUES"); + list_free(coltype_lists[i]); } newExprsLists = NIL;

view thread (4+ messages)  latest in thread

Message-ID: <44D2CCA4.8040507@joeconway.com>
Permalink:  ../44D2CCA4.8040507@joeconway.com/
Also on:    postgresql.org/message-id/44D2CCA4.8040507@joeconway.com

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: mail@joeconway.com, tgl@sss.pgh.pa.us, pgsql-hackers@postgresql.org
  Subject: Re: VALUES clause memory optimization
  In-Reply-To: <44D2CCA4.8040507@joeconway.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox