Skip site navigation (1) Skip section navigation (2)

improves ExecMakeFunctionResultNoSets

From: a_ogawa <a_ogawa(at)hi-ho(dot)ne(dot)jp>
To: pgsql-patches(at)postgresql(dot)org
Subject: improves ExecMakeFunctionResultNoSets
Date: 2005-03-22 13:03:39
Message-ID: PIEMIKOOMKNIJLLLBCBBEEJJCFAA.a_ogawa@hi-ho.ne.jp (view raw or flat)
Thread:
Lists: 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: ExecMakeFunctionResultNoSets.patch
Description: application/octet-stream (6.3 KB)

Responses

pgsql-patches by date

Next:From: Tom LaneDate: 2005-03-22 20:18:22
Subject: Re: improves ExecMakeFunctionResultNoSets
Previous:From: Tom LaneDate: 2005-03-21 15:05:52
Subject: Re: PL/Python patch for Universal Newline Support

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group