Add pgstattuple2 function to allow block sampling in order to
estimate live tuples, dead tuples and free spaces in the specified
table.
Merge branch 'master' into pgstattuple2
Merge branch 'master' into pgstattuple2
Merge branch 'master' into pgstattuple2
Merge branch 'master' into pgstattuple2
Fix pgstattuple2() to allow running only on a >3000 blocks table.
Make comments reflect that omission of SPI_gettypmod() is intentional.
Switch user ID to the object owner when populating a materialized view.

This makes superuser-issued REFRESH MATERIALIZED VIEW safe regardless of
the object's provenance.  REINDEX is an earlier example of this pattern.
As a downside, functions called from materialized views must tolerate
running in a security-restricted operation.  CREATE MATERIALIZED VIEW
need not change user ID.  Nonetheless, avoid creation of materialized
views that will invariably fail REFRESH by making it, too, start a
security-restricted operation.

Back-patch to 9.3 so materialized views have this from the beginning.

Reviewed by Kevin Grittner.
Merge branch 'master' into pgstattuple2