Re: [HACKERS] regex (from TODO)

From: Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp>
To: zakkr(at)zf(dot)jcu(dot)cz
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] regex (from TODO)
Date: 2000-03-09 01:10:11
Message-ID: 20000309101011B.t-ishii@sra.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> In the PostgreSQL TODO is "Get faster regex() code from Henry Spencer..".
>
> I look at current available regex used (a example) in apache, php, .etc. But
> if I look at changes (via diff) between PostgreSQL's regex and more new
> regex in PHP4 it is very same. A differentions are that in new regex code
> are all values marks as 'register' and this new regex not support MULTIBYTE.

Actually Henry has never supported MULTIBYTE:-) We modified his code
so that we could support it.

> It is without any relevant changes (or 'register' is really fastly?).

I vaguely recall that we decided that 'register' did nothing good with
modern compilers, and it'd be better to let the optimizer determine
what variables should be assigned to registers.

> What means TODO?

That means "get faster code from Henry and modify it if it does not
support MULTIBYTE" -- I guess.

> The PG's regex use malloc -- why not MemoryContext?

Probably because the regex caches the results of regcomp in a static
area which points to a malloced memory allocated while compiling a
regular expression. However, for the regexec stage we might be able to
use palloc instead of malloc. I'm not sure if this would result in a
any better performance, though.
--
Tatsuo Ishii

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2000-03-09 02:00:56 Re: [HACKERS] DROP TABLE inside a transaction block
Previous Message Tom Lane 2000-03-09 01:04:48 Re: [HACKERS] Transaction abortions & recovery handling