All,

Please. If nobody else sees the magnitude of this problem, I'll shut up.

What we talk here is something that is being said to fix read committed,
but completely destroys it.

Vlad want to make that code:


create procedure proc2
as
  declare file_handle integer;
begin
  file_handle = some_udf_open_file('x');
  some_udf_write_file(file_handle, '...');
  some_udf_close_file(file_handle);

  execute procedure proc2;
end!


create procedure proc1
as
begin
  execute procedure proc2;
end!


execute block
as
begin
  execute procedure proc1;
  select something from something ...;
end!


And when the user executes that EXECUTE BLOCK, all the whole thing may
execute repeated times.

So we cannot use any external routines with side effects anymore in
Firebird. Not even internal functions with side effects.

PROC2 has an autonomous transaction? Forget, now it can execute multiple
times.

External routines manipulating files? Forget, cannot do it anymore.

Some HTTP post/put called in a PSQL logic? No, we can't do it anymore.

Firebird is now limited to only manipulate data on the same transaction,
everything else may work or not anymore, depending if others users are
doing concurrent writes to some table.


Adriano


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