pgsql: Remove useless "retry memory" logic within regex engine.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Remove useless "retry memory" logic within regex engine.
Date: 2012-02-24 23:40:56
Message-ID: E1S14ky-0004cE-Ru@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove useless "retry memory" logic within regex engine.

Apparently some primordial version of Spencer's engine needed cdissect()
and child functions to be able to continue matching from a previous
position when re-called. That is dead code, though, since trivial
inspection shows that cdissect can never be entered without having
previously done zapmem which resets the relevant retry counter. I have
also verified experimentally that no case in the Tcl regression tests
reaches cdissect with a nonzero retry value. Accordingly, remove that
logic. This doesn't really save any noticeable number of cycles in itself,
but it is one step towards making dissect() and cdissect() equivalent,
which will allow removing hundreds of lines of near-duplicated code.

Since struct subre's "retry" field is no longer particularly related to
any kind of retry, rename it to "id". As of this commit it's only used
for identifying a subre node in debug printouts, so you might think we
should get rid of the field entirely; but I have a plan for another use.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/3cbfe485e44d055b9e6a27e47069729375059f8c

Modified Files
--------------
src/backend/regex/regcomp.c | 14 ++--
src/backend/regex/regexec.c | 212 ++++++++++++++-----------------------------
src/include/regex/regguts.h | 2 +-
3 files changed, 78 insertions(+), 150 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2012-02-25 14:33:14 pgsql: Make each pg_stat_ view into it's own table in the documentation
Previous Message Bruce Momjian 2012-02-24 21:19:28 pgsql: Mention original ctags option name.