"Marc Morin" <marc@xxxxxxxxxxxx> writes: > Do you mean it would be impossible to change the code so that existing > selects continue to use the pre-truncated table until they commit? Yes, because that table won't exist any more (as in the file's been unlinked) once the TRUNCATE commits. > The update/insert rule change appears to be more more doable? No? You've still got race conditions there: do onlooker transactions see the old set of rules, or the new set, or some unholy mixture? Removing the lock as you suggest would make it possible for the rule rewriter to pick up non-self-consistent data from the system catalogs, leading to arbitrarily bad behavior ... if you're lucky, it'll just crash, if you're not lucky the incorrect rule will do a fandango on your data. regards, tom lane