17.01.2017 14:29, Adriano dos Santos Fernandes wrote:
>>>    But what exactly "invalid state" means? I can't imagine anything but 
>>> violation of
>>> "foreign key" on table rdb$dependencies. If Firebird ever is going to have 
>>> deferred
>>> constraints, allowing some metadata to be inconsistent during transaction 
>>> and their
>>> validation on commit should be relatively simple using them, no?
>>>
>>>
>> Everything that causes user to currently use tools that "recompile"
>> (recreate or alter to empty bodies and alter again).
>>
> A classical example: isql -x
>
> Creates lots of workarounds and many times has problems with
> dependencies, while it could instead create all metadata in the same
> transaction without care about order and commit everything together
> letting the engine do the job.

   Yes, that's exactly what I was talking about: dependency on objects that 
don't exist 
yet. Should work perfectly well using deferred FK constraints on system tables.
   Currently system tables don't have foreign keys at all and dependency 
checking is done 
by code. Changing that can make code simpler and robust.


-- 
   WBR, SD.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to