This is causing a headache for us, if that is indeed true. So we have code that goes like begin; lock table t1; lock table t2; ... ...Of course within our own code, we do make sure things are always locked in the same order (so we wouldn't create deadlocks). We do, however, end up in deadlocks with pg_autovacuum which seem to take lock in different order.
Why does pg_autovacuum need locks on more than one table at a time? (there tables in question are NOT related to each other via foriegn keys)