Alvaro Herrera <alvherre@xxxxxxxxxxxxxxxxx> writes: > Tom Lane wrote: >> Hmm, there is not any filter in ReindexDatabase() to exclude temp tables >> of other backends, but it sure seems like there needs to be. CLUSTER >> might have the same issue. I think we fixed this in VACUUM long ago, >> but we need to check the other commands that grovel over all of a database. > Was this ever fixed? I think it wasn't, because I don't see any check > in ReindexDatabase. Here is a patch to add one. No, that's still on the todo list. Your patch looks reasonable. > I examined cluster.c and it does seem to be missing a check too. I'm > not sure where to add one though; the best choice would be the place > where the list of rels is built, but that scans only pg_index, so it > doesn't have access to the namespace of each rel. So one idea would be > to get the pg_class row for each candidate, but that seems slow. > Another idea would be to just add all the candidates and silently skip > the temp indexes in cluster_rel. Yeah, an extra fetch of the pg_class row doesn't seem all that nice. I think you'd want to check it in approximately the same two places where pg_class_ownercheck() is applied (one for the 1-xact and one for the multi-xact path). Are there any other commands to be worried about? I can't see any besides VACUUM/ANALYZE, and those seem covered. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster