1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

Minor fixes to improve regex debugging code.

When REG_DEBUG is defined, ensure that an un-filled "struct cnfa"
is all-zeroes, not just that it has nstates == 0.  This is mainly
so that looking at "struct subre" structs in gdb doesn't distract
one with a lot of garbage fields during regex compilation.

Adjust some places that print debug output to have suitable fflush
calls afterwards.

In passing, correct an erroneous ancient comment: the concatenation
subre-s created by parsebranch() have op == '.' not ','.

Noted while fooling around with some regex performance improvements.
This commit is contained in:
Tom Lane
2021-02-14 19:53:28 -05:00
parent c7ecd6af01
commit 2dd6733108
3 changed files with 15 additions and 4 deletions

View File

@ -479,7 +479,10 @@ pg_regcomp(regex_t *re,
#ifdef REG_DEBUG
if (flags & REG_DUMP)
{
dump(re, stdout);
fflush(stdout);
}
#endif
assert(v->err == 0);
@ -721,7 +724,7 @@ parse(struct vars *v,
*
* This mostly manages concatenation, working closely with parseqatom().
* Concatenated things are bundled up as much as possible, with separate
* ',' nodes introduced only when necessary due to substructure.
* '.' nodes introduced only when necessary due to substructure.
*/
static struct subre *
parsebranch(struct vars *v,