From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: kimber7@illinois.edu
Subject: BUG #17634: Inconsistent view_definition in information_schema.views
Date: Tue, 11 Oct 2022 13:32:03 +0000
Message-ID: <17634-fd5cb524a79c1df9@postgresql.org> (raw)
The following bug has been logged on the website:
Bug reference: 17634
Logged by: Kimberly Blum
Email address: kimber7@illinois.edu
PostgreSQL version: 14.5
Operating system: RHEL 8
Description:
I use information_schema.views (the view_definition column) in code that
provides dependency information for functions and procedures. All objects in
my code are schema qualified, and when I look for dependencies, I rely on
that qualification.
If I run my query against information_schema.views while my session is
active in a schema that is referenced in my query, information_schema.views
strips out that schema name. All other objects remain schema qualified.
My example query:
SELECT view_definition FROM information_schema.views WHERE table_schema =
'appcode' AND table_name = 'cfg_msg_v';
The results from first query, which was run from schema api (which is not
referenced in the code), and all schema qualification shows up. Note all the
areas where appcfg.<obj> is shown.
query: select view_definition from information_schema.views where
SELECT cfg_msg.id_msg,
cfg_msg.id_src,
cfg_src.src_name,
cfg_msg.msg_type,
cfg_msg.msg_version,
cfg_msg.id_class,
cfg_cls class_name,
cfg_msg.descript
FROM ((appcfg.cfg_msg cfg_msg
JOIN appcfg.cfg_data_src cfg_src ON (((cfg_msg.id_src)::integer =
(cfg_src.id_src)::integer)))
JOIN cmdb.cfg_class cfg_cls ON (((cfg_msg.id_class)::integer =
(cfg_cls.id_class)::integer)));
If I switch my session to the appcfg schema, and run the same query, this is
the result (appcfg qualification disappears, other schema qualification is
fine).
SELECT cfg_msg.id_msg,
cfg_msg.id_src,
cfg_src.src_name,
cfg_msg.msg_type,
cfg_msg.msg_version,
cfg_msg.id_class,
cfg_cls.class_name,
cfg_msg.descript
FROM ((cfg_msg cfg_msg
JOIN cfg_data_src cfg_src ON (((cfg_msg.id_src)::integer =
(cfg_src.id_src)::integer)))
JOIN cmdb.cfg_class cfg_cls ON (((cfg_msg.id_class)::integer =
(cfg_cls.id_class)::integer)));
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, kimber7@illinois.edu
Subject: Re: BUG #17634: Inconsistent view_definition in information_schema.views
In-Reply-To: <17634-fd5cb524a79c1df9@postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox