• T
    Avoid repeated creation/freeing of per-subre DFAs during regex search. · 58735947
    Tom Lane 提交于
    In nested sub-regex trees, lower-level nodes created DFAs and then
    destroyed them again before exiting, which is a bit dumb considering that
    the recursive search is likely to call those nodes again later.  Instead
    cache each created DFA until the end of pg_regexec().  This is basically a
    space for time tradeoff, in that it might increase the maximum memory
    usage.  However, in most regex patterns there are not all that many subre
    nodes, so not that many DFAs --- and in any case, the peak usage occurs
    when reaching the bottom recursion level, and except for alternation cases
    that's going to be the same anyway.
    58735947
regexec.c 44.0 KB