Thread: pgsql: Improve behavior of concurrent CLUSTER.

pgsql: Improve behavior of concurrent CLUSTER.

From
Robert Haas
Date:
Improve behavior of concurrent CLUSTER.

In the previous coding, a user could queue up for an AccessExclusiveLock
on a table they did not have permission to cluster, thus potentially
interfering with access by authorized users who got stuck waiting behind
the AccessExclusiveLock.  This approach avoids that.  cluster() has the
same permissions-checking requirements as REINDEX TABLE, so this commit
moves the now-shared callback to tablecmds.c and renames it, per
discussion with Noah Misch.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/cbe24a6dd8fb224b9585f25b882d5ffdb55a0ba5

Modified Files
--------------
src/backend/commands/cluster.c   |   16 +++++++---------
src/backend/commands/indexcmds.c |   36 ++----------------------------------
src/backend/commands/tablecmds.c |   35 +++++++++++++++++++++++++++++++++++
src/include/commands/tablecmds.h |    3 +++
4 files changed, 47 insertions(+), 43 deletions(-)