Thread: Re: [COMMITTERS] pgsql: Simplify the syntax of CREATE/ALTER TEXT SEARCH DICTIONARY by

Teodor Sigaev <teodor@sigaev.ru> writes:
>> I also made these statements verify that the tmplinit method will accept
>> the new settings before they get stored; in the original coding you didn't
>> find out about mistakes until the dictionary got invoked.

> That is source of initdb error with -E KOI8-R --locale ru_RU.KOI8-R options :
> ERROR:  character 0xc3a5 of encoding "UTF8" has no equivalent in "KOI8"

> Snowball dictionary tries to convert swedish (some languages too, but
> that was first which I see) stopword file from UTF8 to KOI8 encoding.

Hmm.  That's a problem, but I don't think that not having any error
checking on CREATE TEXT SEARCH DICTIONARY's parameters is a good
solution.

The first kluge that comes to mind is to suppress the error check in a
standalone backend (ie, when not IsUnderPostmaster), which would cover
the initdb case.  But maybe there are better answers ... any ideas?
        regards, tom lane


> Hmm.  That's a problem, but I don't think that not having any error
> checking on CREATE TEXT SEARCH DICTIONARY's parameters is a good
> solution.
Agreed

> 
> The first kluge that comes to mind is to suppress the error check in a
> standalone backend (ie, when not IsUnderPostmaster), which would cover
> the initdb case.  But maybe there are better answers ... any ideas?

Don't see, but that's connected only to snowball stemmers - other dictionaries 
are not created in initdb time.

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


Teodor Sigaev <teodor@sigaev.ru> writes:
>> The first kluge that comes to mind is to suppress the error check in a
>> standalone backend (ie, when not IsUnderPostmaster), which would cover
>> the initdb case.  But maybe there are better answers ... any ideas?

> Don't see, but that's connected only to snowball stemmers - other dictionaries 
> are not created in initdb time.

True today, but might not always be so.  ISTM the generic issue here is
that initdb wants to set up prefab dictionaries that might not actually
be usable in the specific database encoding that template1 is assigned.
But making them anyway is correct, since they could still be used later
in some other database created with a different encoding.  So I'm
inclined to put the disable check into the generic verify_dictoptions()
routine, not into snowball specifically.
        regards, tom lane