Re: to_regtype() Raises Error

Поиск
Список
Период
Сортировка
От Erik Wienhold
Тема Re: to_regtype() Raises Error
Дата
Msg-id 1096313951.132571.1694990461053@office.mailbox.org
обсуждение исходный текст
Ответ на to_regtype() Raises Error  ("David E. Wheeler" <david@justatheory.com>)
Ответы Re: to_regtype() Raises Error  (Vik Fearing <vik@postgresfriends.org>)
Список pgsql-hackers
On 18/09/2023 00:13 CEST David E. Wheeler <david@justatheory.com> wrote:

> The docs for `to_regtype()` say, “this function will return NULL rather than
> throwing an error if the name is not found.” And it’s true most of the time:
>
> david=# select to_regtype('foo'), to_regtype('clam');
>  to_regtype | to_regtype
> ------------+------------
>  [null]     | [null]
>
> But not others:
>
> david=# select to_regtype('inteval second');
> ERROR:  syntax error at or near "second"
> LINE 1: select to_regtype('inteval second');
>                 ^
> CONTEXT:  invalid type name "inteval second”

Probably a typo and you meant 'interval second' which works.

> I presume this has something to do with not catching errors from the parser?
>
> david=# select to_regtype('clam bake');
> ERROR:  syntax error at or near "bake"
> LINE 1: select to_regtype('clam bake');
>              ^
> CONTEXT:  invalid type name "clam bake"

Double-quoting the type name to treat it as an identifier works:

    test=# select to_regtype('"clam bake"');
     to_regtype
    ------------
     <NULL>
    (1 row)

So it's basically a matter of keywords vs. identifiers.

--
Erik



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

Предыдущее
От: "David E. Wheeler"
Дата:
Сообщение: to_regtype() Raises Error
Следующее
От: Vik Fearing
Дата:
Сообщение: Re: to_regtype() Raises Error