Thread: proposal: tsearch dictionary initialization hook

proposal: tsearch dictionary initialization hook

From
Pavel Stehule
Date:
Hello,

I propose a new hook type - that helps with controlling a life cycle
of some tsearch dictionaries. This hook has minimal impact on
performance - it's called once per session for one tsearch
configuration.

Regards

Pavel Stehule

Attachment

Re: proposal: tsearch dictionary initialization hook

From
Teodor Sigaev
Date:
Hm, what is aim of this hook? It looks like a wrapper of dictionary init method.

> I propose a new hook type - that helps with controlling a life cycle
> of some tsearch dictionaries. This hook has minimal impact on
> performance - it's called once per session for one tsearch
> configuration.

-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 


Re: proposal: tsearch dictionary initialization hook

From
Pavel Stehule
Date:
Hello

2010/9/7 Teodor Sigaev <teodor@sigaev.ru>:
> Hm, what is aim of this hook? It looks like a wrapper of dictionary init
> method.

If I use a mmap for shared dictionary, then I have to prealloc and
maybe preread dictionary - it can be done in external module. But I
have to join preloaded dictionary to requested dictionary. This hook
allows this relation - and it's general - I don't need any special
support in ispell dictionary.

Regards

Pavel


>
>> I propose a new hook type - that helps with controlling a life cycle
>> of some tsearch dictionaries. This hook has minimal impact on
>> performance - it's called once per session for one tsearch
>> configuration.
>
> --
> Teodor Sigaev                                   E-mail: teodor@sigaev.ru
>                                                   WWW: http://www.sigaev.ru/
>


Re: proposal: tsearch dictionary initialization hook

From
Robert Haas
Date:
On Tue, Sep 7, 2010 at 12:55 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> 2010/9/7 Teodor Sigaev <teodor@sigaev.ru>:
>> Hm, what is aim of this hook? It looks like a wrapper of dictionary init
>> method.
>
> If I use a mmap for shared dictionary, then I have to prealloc and
> maybe preread dictionary - it can be done in external module. But I
> have to join preloaded dictionary to requested dictionary. This hook
> allows this relation - and it's general - I don't need any special
> support in ispell dictionary.

Review:

1. Is this really necessary?  It seems that you're inserting a hook
here when you could just as well change tmplinit to point to whatever
function you want to call, which wouldn't require a code change.

2. Our standard criteria for the inclusion of a hook is some sample
code that demonstrates how it can be usefully used.  I think you need
to provide that before we can consider this further.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company


Re: proposal: tsearch dictionary initialization hook

From
Pavel Stehule
Date:
Hello

2010/9/28 Robert Haas <robertmhaas@gmail.com>:
> On Tue, Sep 7, 2010 at 12:55 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>> 2010/9/7 Teodor Sigaev <teodor@sigaev.ru>:
>>> Hm, what is aim of this hook? It looks like a wrapper of dictionary init
>>> method.
>>
>> If I use a mmap for shared dictionary, then I have to prealloc and
>> maybe preread dictionary - it can be done in external module. But I
>> have to join preloaded dictionary to requested dictionary. This hook
>> allows this relation - and it's general - I don't need any special
>> support in ispell dictionary.
>
> Review:
>
> 1. Is this really necessary?  It seems that you're inserting a hook
> here when you could just as well change tmplinit to point to whatever
> function you want to call, which wouldn't require a code change.

The a creating of new hacked template is second option - I didn't find
it. It good for hacking and probably I'll use it because I have not a
time to work on this problem. On second hand - it is less on more
little bit dark hack - you have to modify system tables. Using a hook
is more transparent - you can or not just load a module, that uses a
hook.

>
> 2. Our standard criteria for the inclusion of a hook is some sample
> code that demonstrates how it can be usefully used.  I think you need
> to provide that before we can consider this further.
>

yes - I understand, but I have not time to work on this subject now,
so It can be moved to rejected patches queue. Some my ideas depends on
proposed (different people) shared memory control, but I don't see any
move on this, so there isn't reason why implement a hook or some
modules uses this hook now.

Regards

Pavel Stehule

> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise Postgres Company
>