Subject Re: [Firebird-Architect] Re: External procedures: implementation
Author Jim Starkey
Dmitry Sibiryakov wrote:

>On 25 Jul 2005 at 15:21, Jim Starkey wrote:
>>violation of layering. If Firebird 2.0 were refactored to make the
>>y-valve and engine separate libraries, "execute statement" would have
>>been unimplementable.
> Why? I can easily imagine separate engine library which exports the
>same API, includes DSQL and NOT includes Y-valve. In such engine any
>API call is statically linked and don't break layering because
>everything is incapsulated inside one layer.
Execute statement calls into DSQL, which is part of the Y-valve, to get
the external handles to loop back through the client interface to the
Y-valve. If DSQL were in the engine itself, as in Vulcan, that hack
wouldn't work. If the engine is in a different library than the
Y-valve, there is no way for the engine get access to the internal
Y-valve data structures necessary to recover or forge a useable database


Jim Starkey
Netfrastructure, Inc.
978 526-1376