Subject Architectural Violation in isc_dsql_sql_info
Author Jim Starkey
There is an architectural violation in the "isc_info_sql_sqlda_start"
information item used in the isc_dsql_sql_info call. Information item
lists are defined as a dense vector of bytes each containing an
information item. The reason for this is that the set of information
items is open-ended and that not all subsystems will, or need to,
understand all items. This is always why the failure of a subsystem to
respond to an information item isn't an error or even a warning -- just
a normal case with a well defined "I don't understand this" response.
The "isc_info_sql_sqlda_start" item violates the architecture by
requiring the item to be followed by two byte integer, rendering the
rest of the information item vector indecipherable by any subsystem or
transmission layer than doesn't understand "isc_info_sql_sqlda_start".

The only reference I've been able to find to "isc_info_sql_sqlda_start"
is in the old Y-valve, why.cpp (dropped in Vulcan). Its apparent
purpose was to bail out some Borland developer who had painted himself
into a corner.

I strongly recommend that this item be deprecated in FB 2 head and
dropped completely in Vulcan. I doubt that the item has ever been used
in user code and I would like to make sure that continues.

--

Jim Starkey
Netfrastructure, Inc.
978 526-1376