2011/6/21 Brendan Jurd <dire...@gmail.com>: > On 21 June 2011 14:34, Pavel Stehule <pavel.steh...@gmail.com> wrote: >> I don't understand to using a macro >> >> #define token_is_keyword(t, k) (!t->quoted && strcmp(t->string, k) == 0) >> >> because you disallowed a quoting? > > Well, a token can only be treated as a special keyword if it is unquoted. > > As an example, in the 'database' field, the bare token 'replication' > is a keyword meaning the pseudo-database for streaming rep. Whereas > the quoted token "replication" would mean a real database which is > called 'replication'. > > Likewise, the bare token 'all' in the username field is a keyword -- > it matches any username. Whereas the quoted token "all" would only > match a user named 'all'. > > Therefore, token_is_keyword only returns true where the token matches > the given string as is also unquoted. > > Does that make sense?
yes - it has a sense. Quoting changes sense from keyword to literal. But then I see a significant inconsistency - every know keywords should be only tokens. else if (strcmp(token, "pamservice") == 0) - { - REQUIRE_AUTH_OPTION(uaPAM, "pamservice", "pam"); - parsedline->pamservice = pstrdup(c); - } because >>pamservice<< - is known keyword, but 'pamservice' is some literal without any mean. You should to use a makro token_is_keyword more often. ?? Regards Pavel > > Cheers, > BJ > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers