From: | Ryoga Yoshida <bt23yoshidar(at)oss(dot)nttdata(dot)com> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Bug fix for psql's meta-command \ev |
Date: | 2023-09-15 02:37:46 |
Message-ID: | 01419622d84ef093fd4fe585520bf03c@oss.nttdata.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
When a table name is specified as the first argument of \ev
meta-command, it reports the error message, the prompt string becomes
"-#" and then the following valid query fails because the psql's query
buffer contains the garbage string generated by failure of \ev. Please
see the following example.
=# \ev t
"public.t" is not a view
-# SELECT * FROM t;
ERROR: syntax error at or near "public" at character 1
STATEMENT: public.t AS
SELECT * FROM t;
I think this is a bug in psql's \ev meta-command. Even when \ev fails,
it should not leave the garbage string in psql's query buffer and the
following query should be completed successfully.
This problem can be resolved by resetting the query buffer on error. You
can see the attached source code. After that, it will result in output
like the following:
=# \ev t
"public.t" is not a view
=# SELECT * FROM t;
i
---
1
2
(2 rows)
Ryoga Yoshida
Attachment | Content-Type | Size |
---|---|---|
bug_fix_for_ev_command.patch | text/x-diff | 354 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2023-09-15 02:39:01 | Re: bug fix and documentation improvement about vacuumdb |
Previous Message | Andy Fan | 2023-09-15 01:53:20 | Re: Extract numeric filed in JSONB more effectively |