ft boolean search by table scan; queue_fix()

include/queues.h:
  queue_fix() introduced
myisam/ft_boolean_search.c:
  ft boolean search by table scan
myisam/ft_parser.c:
  ft boolean search by table scan
myisam/ft_update.c:
  ft boolean search by table scan
myisam/ftdefs.h:
  ft boolean search by table scan
mysql-test/r/fulltext_cache.result:
  ft boolean search by table scan
mysql-test/t/fulltext_cache.test:
  ft boolean search by table scan
mysys/queues.c:
  queue_fix() introduced
This commit is contained in:
unknown
2001-11-06 16:17:31 +01:00
parent 36a4cc178f
commit 9e29bb4e01
8 changed files with 252 additions and 137 deletions

View File

@ -124,7 +124,6 @@ byte *queue_remove(register QUEUE *queue, uint idx)
}
}
/* Fix when element on top has been replaced */
#ifndef queue_replaced
@ -166,3 +165,19 @@ void _downheap(register QUEUE *queue, uint idx)
}
queue->root[idx]=element;
}
static int queue_fix_cmp(QUEUE *queue, void *a, void *b)
{
return queue->compare(queue->first_cmp_arg,
a+queue->offset_to_key,
b+queue->offset_to_key);
}
/* Fix heap when every element was changed */
void queue_fix(QUEUE *queue)
{
qsort2(queue->root+1,queue->elements, sizeof(void *),
(qsort2_cmp)queue_fix_cmp, queue);
}