Robert Haas <robertmh...@gmail.com> writes: > On Thu, Jan 2, 2020 at 12:59 PM Mahendra Singh <mahi6...@gmail.com> wrote: >> While reading code and doing some testing, I found that if we create a >> temporary table with same name as we created a normal(global) table, then \d >> is showing only temporary table info.
> That's because the query that \d issues to the backend includes: > AND pg_catalog.pg_table_is_visible(c.oid) > So I'd say it's not a bug, because that bit of SQL didn't get included > in the query by accident. It's also documented: Whenever the pattern parameter is omitted completely, the \d commands display all objects that are visible in the current schema search path — this is equivalent to using * as the pattern. (An object is said to be visible if its containing schema is in the search path and no object of the same kind and name appears earlier in the search path. This is equivalent to the statement that the object can be referenced by name without explicit schema qualification.) To see all objects in the database regardless of visibility, use *.* as the pattern. Perhaps that's not clear enough, but the behavior is certainly as-intended. regards, tom lane