Я создал представление со следующим определением:
CREATE TABLE t1(id int,name varchar);
INSERT INTO t1 values(1,'n1'),(2,'n2');
CREATE VIEW v2 AS SELECT * FROM t1 WHERE name = 'n1';
Но когда я проверил определение в postgresql DB (9.5) в таблице pg_views, оно изменилось следующим образом:
postgres=# select * from pg_views where schemaname = 'sc1' and viewname = 'v2';
schemaname | viewname | viewowner | definition
------------+----------+-----------+-----------------------------------------
sc1 | v2 | postgres | SELECT t1.id, +
| | | t1.name +
| | | FROM sc1.t1 +
| | | WHERE ((t1.name)::text = 'n1'::text);
(1 row)
Я могу добавить tablename перед columnname, но мне не нужна дополнительная часть ':: text'. Есть ли способ достичь этого (как и любая другая системная таблица, из которой я могу запросить, чтобы получить исходное определение)