2013/7/14 Luca Ferrari <fluca1978@xxxxxxxxxxx>: > On Fri, Jul 12, 2013 at 1:23 PM, Vincenzo Romano > <vincenzo.romano@xxxxxxxxxxx> wrote: >> Hi all >> I'm making some experiments with table archiving and I'd like to >> "replace" a full table F with an empty one E. >> In order to do this I see only one way: >> >> ALTER TABLE F RENAME TO T; >> ALTER TABLE E RENAME TO F; >> ALTER TABLE T RENAME TO E; -- optional >> >> This implies there's a moment when the full table doesn't exist. >> Would a transaction enclosure ensure that the table F will be always >> available to all clients? > > > If I get it right using transaction boundaries around the DDL will > prevent clients to query the F table until the transaction ends, and > this is due to the locking of the alter table. In other words, a query > performed against the F table while the transaction is running will > simply locks without generating any error. > > Hope this helps. > Luca Thank Luca. That sheds more light on DDL transactions. The one I'm thinking of is the body of a PL/PGSQL function. I am only concerned about how late is done the binding between a table name and the actual OID for other functions, views and triggers. Any idea? Grazie. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general