Mark Dilger <[email protected]> writes:
> But since we allow tables and schemas with dotted names in them, I'm
> uncertain what \d foo.bar.baz is really asking. That could be
> "foo.bar"."baz", or "foo"."bar"."baz", or "foo"."bar.baz", or even
> "public"."foo.bar.baz". The old behavior seems a bit dangerous. There may
> be tables with all those names, and the user may not have meant the one that
> we gave them.
You are attacking a straw man here. To use a period in an identifier,
you have to double-quote it; that's the same in SQL or \d.
regression=# create table "foo.bar" (f1 int);
CREATE TABLE
regression=# \d foo.bar
Did not find any relation named "foo.bar".
regression=# \d "foo.bar"
Table "public.foo.bar"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
f1 | integer | | |
According to a quick test, you did not manage to break that in v14.
> I expect I'll have to submit a patch restoring the old behavior, but I wonder
> if that's the best direction to go.
I do not understand why you're even questioning that. The old
behavior had stood for a decade or two without complaints.
regards, tom lane