Subject Re: [Firebird-Architect] Architectural Cleanliness: CVT_move
Author Jim Starkey
Helen Borrie wrote:

>At 11:40 AM 20/12/2003 -0500, you wrote:
>
>
>>There is an exported symbol in the gds32 library, CVT_move, that does
>>not belong there and is causing me great pain. The function is a
>>database internal function used to move or convert data represented by a
>>descriptor into a type represented by a second descriptor. It is a very
>>useful function in the engine, and should never have been exported.
>>
>>
>
>Pardon my ignorance, but would fixing this make it impossible to pass
>external function parameters by descriptor ?
>
>
Not ignorance, insight. No, I'm not in the business of pardoning people
for insight, Helen.

Yes, that is a problem. Probably why we didn't publish the mechanism.
That and the fact that using the descriptor for anything intelligent
required access to internals that users don't/shouldn't have.

A safe mechanism could be defined by freezing the current descriptors as
separate structures and doing translation if/when the datatype list
changes. But the other issues about descriptor usage remain.

The best solution, of course, is abandon descriptors to the external
function API and replace descriptors with an Value class. Really
elegant and would only require rewriting 3/4 of the engine...


[Non-text portions of this message have been removed]