On 23/11/2016 12:37, Dimitry Sibiryakov wrote: > 23.11.2016 14:54, Adriano dos Santos Fernandes wrote: >> But that (DDL changes with concurrent sessions) is unreliable. >> >> And if you change a single view that recompiles 100 views, you multiple >> the unreliability by 100 in the production environment. > That's why I, personally, prefer to prohibit altering anything that has > dependencies. > It works well for data with foreign key, it should work for metadata as well. > > That is a good argument only for tool vendors.
In my opinion, things should work this way: - Everything (*) is allowed before the transaction commits, including internal future metadata foreign keys (they should be deferred) - (*) Of course, not things as create a table or field name duplicate - You can drop a table with dependencies - You can create another table with the same name of the dropped one - When you commit, everything changed or that depends on the changed objects are validated - If validation fails, transaction does not commit, user can continue changing and commit latter or rollback Adriano ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel