Patch applied. Thanks. ---------------------------------------------------------------------------
Atsushi Ogawa wrote: > > I made the patch that improved the performance of replace_text(). > The content of the patch is as follows: > > (1)Create shortcut when subtext was not found. > > (2)Stop using LEFT and RIGHT macro. > In LEFT and RIGHT macro, TEXTPOS is executed by the same content as > execution immediately before. The execution frequency of TEXTPOS can be > reduced by using text_substring instead of LEFT and RIGHT macro. > > (3)Add appendStringInfoText, and use it instead of appendStringInfoString. > There is an overhead of PG_TEXT_GET_STR when appendStringInfoString is > executed by text type. This can be reduced by appendStringInfoText. > > (4)Reduce execution of TEXTDUP. > > The effect of the patch that I measured is as follows: > > - The Data for test was created by 'pgbench -i'. > > - Test SQL: > select replace(aid, '9', 'A') from accounts; > > - Test results: Linux(CPU: Pentium III, Compiler option: -O2) > original: 1.515s > patched: 1.250s > > regards, > > --- > Atsushi Ogawa [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match