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