Subject RE: [Firebird-Architect] DDL, Scripts, DFW, and Commit
Author Claudio Valderrama C.
Geoff Worboys wrote:
>> DFW and metadata operations
>
> OK, I give up. Can someone tell me what DFW means?

Deferred Work Handler, located in dfw.epp.

Different modules "queue" actions to be done when a txn is going to be
committed. For example, rights (security classes) may need recalculation
(grant.epp), events have to be posted (event.cpp), a new db needs to be
initialized or if it exists, upgraded (ini.epp), domains and implicit
domains are being altered (met.epp), different objects are deleted, updated
or created (vio.cpp) and at the same time, system objects should be
protected from deletion, etc.

The deferred work handler does those pending actions when the txn is being
committed. It basically updates information in system relations and posts
events, but also interacts with external files, shadows, indices, ref
constraints, computes the compressed RDB$RUNTIME information about a changed
table's fields, etc. It could be used to implement deferred constraints that
other engines support. I'm not sure if DFW should be credited for our
inhability to commit of rollback a complete DDL script: as you know, some
DDL statements do not work if previous metadata definitions aren't
committed.

C.
--
Claudio Valderrama C.
Consultant, SW developer.
www.cvalde.net - www.firebirdSql.org