Query parser?

Started by Teodor Sigaevover 23 years ago2 messages
#1Teodor Sigaev
teodor@stack.net

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Teodor Sigaev (#1)
Re: Query parser?

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 dmoz
update ;

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