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

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to