Release date: 2017-08-31
This release contains a small number of fixes from 9.2.22. For information about new features in the 9.2 major release, see Section E.103.
The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon.
A dump/restore is not required for those running 9.2.X.
However, if you are upgrading from a version earlier than 9.2.22, see Section E.81.
Show foreign tables in information_schema.table_privileges view (Peter
Eisentraut)
All other relevant information_schema views include
foreign tables, but this one ignored them.
Since this view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can, as a superuser, do this in psql:
SET search_path TO information_schema;
CREATE OR REPLACE VIEW table_privileges AS
SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
CAST(grantee.rolname AS sql_identifier) AS grantee,
CAST(current_database() AS sql_identifier) AS table_catalog,
CAST(nc.nspname AS sql_identifier) AS table_schema,
CAST(c.relname AS sql_identifier) AS table_name,
CAST(c.prtype AS character_data) AS privilege_type,
CAST(
CASE WHEN
-- object owner always has grant options
pg_has_role(grantee.oid, c.relowner, 'USAGE')
OR c.grantable
THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
FROM (
SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
pg_namespace nc,
pg_authid u_grantor,
(
SELECT oid, rolname FROM pg_authid
UNION ALL
SELECT 0::oid, 'PUBLIC'
) AS grantee (oid, rolname)
WHERE c.relnamespace = nc.oid
AND c.relkind IN ('r', 'v', 'f')
AND c.grantee = grantee.oid
AND c.grantor = u_grantor.oid
AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
AND (pg_has_role(u_grantor.oid, 'USAGE')
OR pg_has_role(grantee.oid, 'USAGE')
OR grantee.rolname = 'PUBLIC');
This must be repeated in each database to be fixed,
including template0.
Clean up handling of a fatal exit (e.g., due to
receipt of SIGTERM) that
occurs while trying to execute a ROLLBACK of a failed transaction (Tom
Lane)
This situation could result in an assertion failure. In production builds, the exit would still occur, but it would log an unexpected message about “cannot drop active portal”.
Remove assertion that could trigger during a fatal exit (Tom Lane)
Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for (Tom Lane)
Certain ALTER commands
that change the definition of a composite type or domain
type are supposed to fail if there are any stored values
of that type in the database, because they lack the
infrastructure needed to update or check such values.
Previously, these checks could miss relevant values that
are wrapped inside range types or sub-domains, possibly
allowing the database to become inconsistent.
Change ecpg's parser
to allow RETURNING clauses
without attached C variables (Michael Meskes)
This allows ecpg
programs to contain SQL constructs that use RETURNING internally (for example,
inside a CTE) rather than using it to define values to be
returned to the client.
Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)
This fix avoids possible crashes of PL/Perl due to
inconsistent assumptions about the width of time_t values. A side-effect that may be
visible to extension developers is that _USE_32BIT_TIME_T is no longer defined
globally in PostgreSQL
Windows builds. This is not expected to cause problems,
because type time_t is not used
in any PostgreSQL API
definitions.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.