Question about Parser()

Поиск
Список
Период
Сортировка
От Bin Liu
Тема Question about Parser()
Дата
Msg-id 016c01c4afdf$923ebf10$b419a8c0@ece.gatech.edu
обсуждение исходный текст
Ответы Re: Question about Parser()  (Neil Conway <neilc@samurai.com>)
Список pgsql-hackers
Can somebody explain how the 'parsetree' in the parser( ) function get populated? What I saw is just a NIL. And it is not touched else where in this file.
 
This file is src/backend/parser/parser.c
 
Thanks!
 
Bin
 
/*
 * parser
 *  Given a query in string form, and optionally info about
 *  parameter types, do lexical and syntactic analysis.
 *
 * Returns a list of raw (un-analyzed) parse trees.
 */
List *
parser(StringInfo str, Oid *typev, int nargs)
{
 int   yyresult;
 
 parsetree = NIL;   /* in case parser forgets to set it */
 have_lookahead = false;
 
 scanner_init(str);
 parser_init();
 parse_expr_init();
 parser_param_set(typev, nargs);
 
 yyresult = yyparse();
 
 scanner_finish();
 clearerr(stdin);
 
 if (yyresult)    /* error */
  return NIL;
 
 return parsetree;
}
 

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Dan Libby
Дата:
Сообщение: Re: Status ofTrigger Firing Order and 'FOR EACH STATEMENT'?
Следующее
От: Peter Davie
Дата:
Сообщение: Re: [BUGS] BUG #1270: stack overflow in thread in fe_getauthname