Some more information_schema issues
От | Tom Lane |
---|---|
Тема | Some more information_schema issues |
Дата | |
Msg-id | 16713.1066348090@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: Some more information_schema issues
Re: Some more information_schema issues |
Список | pgsql-hackers |
I looked through all the information_schema stuff, and found a few more nits. The CHECK_CONSTRAINTS view should use pg_get_constraintdef() function rather than consrc, for the same reasons as psql should (I haven't fixed the latter yet, but will soon). There are several views that display pg_type.typname directly. I wonder whether any of these ought to be using format_type() instead. It won't matter for the views that only show domains, but several could potentially show standard types. Don't we want the output to be "character" rather than "bpchar"? It would be a small efficiency boost to use UNION ALL rather than UNION where possible. "READ COMMITED" should be "READ COMMITTED" in sql_implementation_info. In sql_sizing, MAXIMUM COLUMNS IN SELECT should be 1664 (MaxTupleAttributeNumber). Several views get fixed pg_class OIDs like this: AND d.refclassid = (SELECT oid FROM pg_class WHERE relname = 'pg_class') This is unsafe --- suppose a user creates a table named pg_class in one of his own schemas? The SELECT would return multiple rows, causing a runtime error. What I would recommend is coding these like AND d.refclassid = 'pg_catalog.pg_class'::regclass which is schema-safe and also rather more efficient, since the planner will see this as a simple constant instead of a sub-query. The ELEMENT_TYPES view doesn't work --- it returns zero rows. After some fooling around I think it's a simple typo: the line AND (n.nspname, x.objname, x.objtype, x.objtypeid) IN should be AND (n.nspname, x.objname, x.objtype, x.objdtdid) IN regards, tom lane
В списке pgsql-hackers по дате отправления: