Freeing the statement with DSQL_close, DSQL_drop or DSQL_unprepare is
deferred (since the v11 protocol). As a result, the free is only sent
when something else is subsequently sent over the connection.
I wonder if this makes sense for DSQL_drop and DSQL_unprepare, because
the end result is that if you free the statement and then leave it alone
for a long time, the statement remains prepared and holding existence
locks, which can cause issues if you execute DDL dropping or modifying
those metadata objects using another connection.
I think that sending the free immediately (at least for DSQL_drop and
DSQL_unprepare), and only deferring the processing of the response might
make more sense.
What do you think?
Mark
--
Mark Rotteveel
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel