Re: [HACKERS] Keywords

Поиск
Список
Период
Сортировка
От Thomas G. Lockhart
Тема Re: [HACKERS] Keywords
Дата
Msg-id 36C0EEBA.9FDD6961@alumni.caltech.edu
обсуждение исходный текст
Ответ на Keywords  (Michael Meskes <Michael_Meskes@topmail.de>)
Ответы Re: [HACKERS] Keywords  (Michael Meskes <Michael_Meskes@topmail.de>)
Список pgsql-hackers
Hannu Krosing wrote:
> 
> Michael Meskes wrote:
> >
> > On Mon, Feb 08, 1999 at 01:15:09PM -0500, Bruce Momjian wrote:
> > > We don't reserve the type names as keywords, and because they can 
> > > create their own types, it wouldn't make sense.
> > I don't exactly understand that. For instance the 'int' keyword will 
> > still be reserved, isn't it?
> hannu=> create table int(int int);
> CREATE
> hannu=> create table int4(int4 int4);
> ERROR:  TypeCreate: type int4 already defined
> So it's probably not reserved ;)

INT is an SQL92 reserved word. But it is not a reserved word in
Postgres, since the usage as a reserved word would be exclusively as a
type name. In Postgres, the parser does not require a type name to be
explicitly defined as a keyword (which would make it a de facto reserved
word) since we allow type extensibility. Parsing it explicitly as a
keyword does not buy us any new functionality (since we allow type names
which are definitely *not* keywords anyway), so we don't do it.

However, it is handled in a special way: in contexts where one would
expect a type name, "int" is translated to "int4" explicitly (very early
on, from gram.y). Otherwise it is not translated.
                    - Tom


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

Предыдущее
От: Vadim Mikheev
Дата:
Сообщение: Re: [HACKERS] TIME QUALIFICATION
Следующее
От: Tatsuo Ishii
Дата:
Сообщение: cannot cast bpchar and varchar