improves ExecMakeFunctionResultNoSets - Mailing list pgsql-patches

From a_ogawa
Subject improves ExecMakeFunctionResultNoSets
Date
Msg-id PIEMIKOOMKNIJLLLBCBBEEJJCFAA.a_ogawa@hi-ho.ne.jp
Whole thread Raw
Responses Re: improves ExecMakeFunctionResultNoSets
List pgsql-patches
Attached patch improves ExecMakeFunctionResultNoSets, etc.

This patch uses InitFunctionCallInfoData macro instead of MemSet to
initialize FunctionCallInfoData.
An idea of this patch discussed in the "FunctionCallN improvement" thread.
(http://archives.postgresql.org/pgsql-hackers/2005-01/msg01054.php)
To achieve this, InitFunctionCallInfoData macro was moved from fmgr.c to
fmgr.h.

test sql:
select substr(c.relname, 1, 10) from pg_class c, pg_am, pg_amop;
(There are pg_am and pg_amop only to increase the number of the records.)

result of original code:
-----------------------------------------------------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 21.43      0.36     0.36   219911     0.00     0.00
ExecMakeFunctionResultNoSets
  7.14      0.48     0.12   219912     0.00     0.00  pg_mbstrlen_with_len
  6.25      0.58     0.10  1102916     0.00     0.00  AllocSetAlloc
  5.36      0.68     0.09  5936448     0.00     0.00  pg_euc_mblen
  5.36      0.77     0.09  5936448     0.00     0.00  pg_mblen

result of after patch:
-----------------------------------------------------------------------
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
  7.52      0.10     0.10  5936448     0.00     0.00  pg_mblen
  7.14      0.20     0.10  1104587     0.00     0.00  AllocSetAlloc
  6.77      0.28     0.09   219912     0.00     0.00  text_substring
  6.39      0.37     0.09  1547723     0.00     0.00  AllocSetFreeIndex
  6.02      0.45     0.08   219912     0.00     0.00  pg_mbstrlen_with_len
  4.51      0.51     0.06  5936448     0.00     0.00  pg_euc_mblen
  4.51      0.57     0.06   442745     0.00     0.00  ExecProcNode
  4.51      0.63     0.06   219911     0.00     0.00
ExecMakeFunctionResultNoSets

regards,

--- Atsushi Ogawa


Attachment

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: PL/Python patch for Universal Newline Support
Next
From: Tom Lane
Date:
Subject: Re: improves ExecMakeFunctionResultNoSets