Re: tsearch in core patch, for inclusion - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: tsearch in core patch, for inclusion
Date
Msg-id 45DDB482.9040602@dunslane.net
Whole thread Raw
In response to Re: tsearch in core patch, for inclusion  (Teodor Sigaev <teodor@sigaev.ru>)
Responses Re: tsearch in core patch, for inclusion  (Markus Schiltknecht <markus@bluegap.ch>)
List pgsql-hackers
Teodor Sigaev wrote:
>> In that proposed syntax, I would drop all "=", ",", "(", and ")".  
>> They don't seem necessary and they are untypical for SQL commands.  
>> I'd compare with CREATE FUNCTION or CREATE SEQUENCE for SQL commands 
>> that do similar things.
>
> I was looking at CREATE TYPE mostly. With removing "=", ",", "(", and 
> ")" in CREATE/ALTER FULLTEXT it's needed to add several items in 
> unreserved_keyword list. And increase gram.y by adding new rules 
> similar to  OptRoleList instead of
> simple opt_deflist:
>     '(' def_list ')'   { $$ = $2; }
>       | /*EMPTY*/          { $$ = NIL; }
>       ;
>
> Is it acceptable?
> List of new keywords is: LOCALE, LEXIZE, INIT, OPT, GETTOKEN, 
> LEXTYPES, HEADLINE
>
> So, syntax will be
> CREATE FULLTEXT DICTIONARY dictname
>     LEXIZE  lexize_function
>     [ INIT init_function ]
>     [ OPT opt_text ];
>
> CREATE FULLTEXT DICTIONARY dictname
>    [ { LEXIZE  lexize_function | INIT init_function | OPT opt_text } 
> [...] ]
> LIKE template_dictname;
>


If we are worried about the size of the transition table and keeping it 
in cache (see remarks from Tom upthread) then adding more keywords seems 
a bad idea, as it will surely expand the table.  OTOH, I'd hate to make 
that a design criterion. My main worry has been that the grammar would 
be stable.

Just to quantify all this, I did a quick check on the grammar using 
bison -v - we appear to have 473 terminal symbols, and 420 non-terminal 
sybols in 1749 rules, generating 3142 states. The biggest tables 
generated are yytable and yycheck, each about 90kb on my machine.

cheers

andrew


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: What is CheckPoint.undo needed for?
Next
From: Markus Schiltknecht
Date:
Subject: Re: SCMS question