* Sebastian Hammer, Adam Dickmeiss
*
* $Log: isam.c,v $
- * Revision 1.14 1995-11-24 17:26:19 quinn
+ * Revision 1.18 1996-02-06 10:19:56 quinn
+ * Attempt at fixing bug. Not all blocks were read before they were unlinked
+ * prior to a remap operation.
+ *
+ * Revision 1.17 1995/12/06 15:48:44 quinn
+ * Fixed update-problem.
+ *
+ * Revision 1.16 1995/12/06 14:48:26 quinn
+ * Fixed some strange bugs.
+ *
+ * Revision 1.15 1995/12/06 09:59:45 quinn
+ * Fixed memory-consumption bug in memory.c
+ * Added more blocksizes to the default ISAM configuration.
+ *
+ * Revision 1.14 1995/11/24 17:26:19 quinn
* Mostly about making some ISAM stuff in the config file optional.
*
* Revision 1.13 1995/10/17 18:03:15 adam
/* determine number and size of blocktypes */
if (!(r = res_get_def(common_resource, nm = strconcat(name, ".",
- "blocktypes", 0), "64 1K")) ||
+ "blocktypes", 0), "64 512 4K 32K")) ||
!(num = splitargs(r, pp, IS_MAX_BLOCKTYPES)))
{
logf (LOG_FATAL, "Failed to locate resource %s", nm);
/* determine max keys/blocksize */
if (!(r = res_get_def(common_resource, nm = strconcat(name, ".",
- "maxkeys", 0), "50")) || !(num = splitargs(r, pp, IS_MAX_BLOCKTYPES)))
+ "maxkeys", 0), "50 640 10000")) || !(num = splitargs(r, pp,
+ IS_MAX_BLOCKTYPES)))
{
logf (LOG_FATAL, "Failed to locate resource %s", nm);
return 0;
/* determine nice fill rates */
if (!(r = res_get_def(common_resource, nm = strconcat(name, ".",
- "nicefill", 0), "90 90")) || !(num = splitargs(r, pp,
+ "nicefill", 0), "90 90 90 95")) || !(num = splitargs(r, pp,
IS_MAX_BLOCKTYPES)))
{
logf (LOG_FATAL, "Failed to locate resource %s", nm);
i++;
if (i != tab.pos_type)
{
+ /* read remaining blocks */
+ for (; tab.cur_mblock; tab.cur_mblock = tab.cur_mblock->next)
+ if (tab.cur_mblock->state < IS_MBSTATE_CLEAN)
+ is_m_read_full(&tab, tab.cur_mblock);
is_p_unmap(&tab);
tab.pos_type = i;
}
*/
int is_readkey(ISPT ip, void *buf)
{
- return is_m_read_record(&ip->tab, buf);
+ return is_m_read_record(&ip->tab, buf, 0);
}
int is_numkeys(ISPT ip)