Re: patch: tsearch - some memory diet

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Pavel Stehule <pavel.stehule@gmail.com>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Teodor Sigaev <teodor@sigaev.ru>, PostgreSQLHackers <pgsql-hackers@postgresql.org>
Date: 2010-10-06T17:40:27Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> I think it would be cleaner to get rid of checkTmpCtx() and instead
> have dispell_init() set up and tear down the temporary context,

What I was thinking of doing was getting rid of the static variable
altogether: we should do what you say above, but in the form of a
state struct that's created and destroyed by additional calls from
dispell_init().  Then that state struct could also carry the
infrastructure for this additional hack.  It's a little more notation to
pass an additional parameter through all these routines, but from the
standpoint of understandability and maintainability it's clearly worth
it.

> void NISetupForDictionaryLoad();
> void NICleanupAfterDictionaryLoad();

More like

	NISpellState *NISpellInit();
	NISpellTerm(NISpellState *stat);

> ...but I don't really see why that has to be done as part of this patch.

Because patches that reduce maintainability seldom get cleaned up after.

			regards, tom lane