|
From: Ann W. H. <aha...@ib...> - 2001-11-21 00:15:50
|
The "bad handle" message from ISQL when executing a SHOW DATABASE command on a database with forced writes enabled appears to result from a very simple bug. Unfortunately, it can be fixed in two ways. The problem is in winnt.c. The FIL block originally included one file descriptor, called fil_desc. It now contains two: fil_desc and file_force_write_desc. For databases that are running with forced writes enabled, the normal descriptor is sent to -1 (aka INVALIDHANDLE) and the actual file descriptor is kept in the second field. The code that gets the number of pages in the database - part of the info mechanism used by SHOW DATABASE - references only the fil_desc field. My question to Mike is: Did you intend to carry alternate descriptors throughout? If so, I'll set up the code that gets the number of pages to check for a valid descriptor. Otherwise, I'll figure out why the descriptor isn't being reset and reset it. Ann |