Обсуждение: Query parser?

Поиск
Список
Период
Сортировка

Query parser?

От
Teodor Sigaev
Дата:
wow=# update \d dmoz         Table "dmoz" Column |  Type   | Modifiers
--------+---------+----------- id     | integer | name   | text    | path   | ltree   |
Indexes: dmoz_id_idx unique btree (id),         dmoz_path_idx gist ("path")

wow-#
wow-# ;
ERROR:  parser: parse error at or near ""

Is it normal behaviour? Its seems to me that isn't..

-- 
Teodor Sigaev
teodor@stack.net




Re: Query parser?

От
Tom Lane
Дата:
Teodor Sigaev <teodor@stack.net> writes:
> wow=# update \d dmoz
>           Table "dmoz"
>   Column |  Type   | Modifiers
> --------+---------+-----------
>   id     | integer |
>   name   | text    |
>   path   | ltree   |
> Indexes: dmoz_id_idx unique btree (id),
>           dmoz_path_idx gist ("path")

> wow-#
> wow-# ;
> ERROR:  parser: parse error at or near ""

> Is it normal behaviour? Its seems to me that isn't..

This is the same as\d dmozupdate ;

The behavior seems reasonable to me.  If psql's backslash commands
flushed the query input buffer, we couldn't have any commands for
query-buffer editing.

One thing that does seem a little odd is:

regression=# update;
ERROR:  parser: parse error at or near ";"
regression=# update
regression-# ;
ERROR:  parser: parse error at or near ""

Investigation shows that psql includes the ';' in what it sends to
the backend in the first case, but not in the second.  I'm not sure that
that rises to the level of a bug, but it seems odd.

It'd probably also be nice if the error message said
ERROR:  parser: parse error at or near end of input
rather than quoting a useless empty token.  I will see if I can make
that happen.
        regards, tom lane