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

Reply via email to