Re: VALUES clause memory optimization

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: VALUES clause memory optimization
Дата
Msg-id 44D2CCA4.8040507@joeconway.com
обсуждение исходный текст
Ответ на Re: VALUES clause memory optimization (was: Values list-of-targetlists patch...)  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: VALUES clause memory optimization
Re: VALUES clause memory optimization
Список pgsql-hackers
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<----------------------------------------
diff -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;



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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: 8.2 features status
Следующее
От: Gavin Sherry
Дата:
Сообщение: Re: 8.2 features status