17.01.2017 16:35, Adriano dos Santos Fernandes wrote:
> Temporary invalidated state is incompatible with DDL+DML using the
> being-changed DDL:

   It just require some decisions.

> create table t (n integer, c computed by (f(n)));
> -- create function f ...
> commit;
> ----
> drop function f;
> select * from t; -- ??

   At prepare stage existence of object is checked anyway. Current transaction 
cannot see 
function f - "function not found" error is thrown.
   A little more complicated case is when statement was prepared in different 
transaction. 
It must either check for object existence at execution time and produce the 
same error or 
use (cached?) version of f as it was visible by transaction where the statement 
had been 
prepared. Both behaviors are pretty doable with metadata cache based on 
reference-counted 
objects.

-- 
   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