Subject assert triggers and server aborts
Author Mike Nordell
Suggestion from a dev-list pointed me here with this problem, since
IB-Architect would be the more probable list to find someone that knows, if
even partially, this code.

Preconditions: debug build with DEV_BUILD macro defined.

SELECT DISTINCT RDB$DESCRIPTION FROM RDB$RELATIONS;

This results in an triggered assert
assert (sort_key->skd_dtype != 0);
at (or about) line 4287 in jrd/opt.c.

Obviously this code have never been run, why I can't verify the the
validity of the assert. On the other hand, it would seem as it is trying to
use a blob as sort-key, why the assert possibly is correct, just a "little"
too deep in the call-stack to be of *any* help, it just aborts the server.

I've backtracked it to OPT_compile() (jrd/opt.c,610) where it uses a local
'project' variable as argument to gen_sort, but from this point I'm
clueless. It doesn't exactly help that everything seems to be logically
inheriting a struct "blk", that is used by pointers in nesting levels that
would make a lisp programmer cry. To try to parse these at runtime (using
the debugger) is not a walk in the park.

I've been at this now for what seems forever, and really don't have come any
closer to what really happens. If anyone get an idea, anything...

/Mike

Your database needs YOU!
http://sourceforge.net/projects/firebird