Re: Code questions

Поиск
Список
Период
Сортировка
От Gavin Sherry
Тема Re: Code questions
Дата
Msg-id Pine.LNX.4.21.0206231842110.29067-100000@linuxworld.com.au
обсуждение исходный текст
Ответ на Code questions  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Список pgsql-hackers
On Sun, 23 Jun 2002, Christopher Kings-Lynne wrote:

> Hi All,
> 
> Whereabouts in the code is the '*' expanded into the list of valid columns 

See the rule 'target_el' in gram.y. The SelectStmt node is processed
further down the parser in analyze.c: see transformStmt(),
transformSelectStmt() and transformTargetList().

> and also where are the columns specified in the select arguments (or
> whereever) checked for validity?

This is pretty easy to discover by working backward from the
elog(ERROR) produced when you select a non-existent attribute from a
relation:

ERROR:  Attribute 'nonexistent' not found

This is generated by transformIdent(), called from transformExpr, called
from transformTargetEntry. The latter is called by transformTargetList()
when it the attribute is not of the form '*' or 'relation.*' or when we
don't know if the attribute is actually an attribute.

> Chris

Gavin



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

Предыдущее
От: "Christopher Kings-Lynne"
Дата:
Сообщение: Code questions
Следующее
От: "J. R. Nield"
Дата:
Сообщение: Re: Index Scans become Seq Scans after VACUUM ANALYSE