Thread: BUG #18731: The psql \d command does not exactly match but can be executed

BUG #18731: The psql \d command does not exactly match but can be executed

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      18731
Logged by:          Man Zeng
Email address:      zengman@halodbtech.com
PostgreSQL version: 16.6
Operating system:   centos-8
Description:

Hi everyone,

I accidentally found that the \d command in psql does not match exactly, but
it can be executed. Just like the demo below.

[postgres@iZuf6hwo0wgeev4dvua4csZ postgres]$ psql
psql (16.6)
Type "help" for help.

postgres=# \dxabcdef plpgsql
                 List of installed extensions
  Name   | Version |   Schema   |         Description          
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

postgres=# \dx plpgsql
                 List of installed extensions
  Name   | Version |   Schema   |         Description          
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

postgres=# \dxabcdef
                 List of installed extensions
  Name   | Version |   Schema   |         Description          
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

Then I looked at the code, taking \dxabcdef as an example, psql only cares
about the previous \dx, so you can enhance the "exec_command_d" to match
normally.
But I don't want to introduce a lot of string matching here to solve this
problem, maybe there is a better idea.
At the same time I'm not sure if this is a known problem or a bug.
I look forward to your reply.

Thanks,
Man Zeng


PG Bug reporting form <noreply@postgresql.org> writes:
> I accidentally found that the \d command in psql does not match exactly, but
> it can be executed. Just like the demo below.

Yeah, this is true for the entire \d family: trailing garbage in the
command name doesn't really matter.  I'm not excited about trying
to tighten that up; we'd likely get more complaints than kudos.

            regards, tom lane



Yeah, this is true for the entire \d family: trailing garbage in the
command name doesn't really matter.  I'm not excited about trying
to tighten that up; we'd likely get more complaints than kudos.

Ok, when I saw this problem, I also suspected that it was the original design, 
thank you for your reply.

Thanks,
Man Zeng