Commit 417dd728 authored by monty@donna.mysql.fi's avatar monty@donna.mysql.fi
Browse files

Added SQL_CALC_FOUND_ROWS and FOUND_ROWS()

parent 8f62579c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
monty@work.mysql.com
monty@donna.mysql.fi
+4 −3
Original line number Diff line number Diff line
@@ -90,8 +90,9 @@ static double _nwghts[11]={
 -3.796875000000000};
static double *nwghts=_nwghts+5; // nwghts[i] = -0.5*1.5**i

int do_boolean(ALL_IN_ONE *aio, uint nested,
                int yesno, int plusminus, bool pmsign)
int do_boolean(ALL_IN_ONE *aio, uint nested __attribute__((unused)),
	       int yesno __attribute__((unused)),
	       int plusminus, bool pmsign)
{
  int r, res;
  uint keylen, wno;
@@ -106,7 +107,7 @@ int do_boolean(ALL_IN_ONE *aio, uint nested,

  param.prev=' ';

  for(wno=1; res=ft_get_word(&aio->start,aio->end,&w,&param); wno++)
  for(wno=1; (res=ft_get_word(&aio->start,aio->end,&w,&param)); wno++)
  {
    r=plusminus+param.plusminus;
    if (param.pmsign^pmsign)
+2 −3
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ byte ft_get_word(byte **start, byte *end, FT_WORD *word, FTB_PARAM *param)

    param->prev='A'; // be sure *prev is true_word_char
    word->len= (uint)(doc-word->pos) - mwc;
    if (param->trunc=(doc<end && *doc == FTB_TRUNC))
    if ((param->trunc=(doc<end && *doc == FTB_TRUNC)))
      doc++;

    if (word->len >= MIN_WORD_LEN && word->len < MAX_WORD_LEN &&
@@ -221,7 +221,6 @@ int is_boolean(byte *q, uint len)
TREE * ft_parse(TREE *wtree, byte *doc, int doclen)
{
  byte   *end=doc+doclen;
  int     res;
  FT_WORD w;

  if (!is_tree_inited(wtree))
@@ -229,7 +228,7 @@ TREE * ft_parse(TREE *wtree, byte *doc, int doclen)
    init_tree(wtree,0,sizeof(FT_WORD),(qsort_cmp)&FT_WORD_cmp,0,NULL);
  }

  while (res=ft_simple_get_word(&doc,end,&w))
  while (ft_simple_get_word(&doc,end,&w))
  {
    if (!tree_insert(wtree, &w, 0))
      goto err;
+3 −3
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ int _mi_ft_update(MI_INFO *info, uint keynr, byte *keybuf,
  int error= -1;
  FT_WORD *oldlist,*newlist, *old_word, *new_word;
  uint key_length;
  uint cmp;
  int cmp;

  if (!(old_word=oldlist=_mi_ft_parserecord(info, keynr, keybuf, oldrec)))
    goto err0;
@@ -187,7 +187,7 @@ int _mi_ft_update(MI_INFO *info, uint keynr, byte *keybuf,
    switch (cmp) {
    case -1:
      key_length=_ft_make_key(info,keynr,keybuf,old_word,pos);
      if (error=_mi_ck_delete(info,keynr,(uchar*) keybuf,key_length))
      if ((error=_mi_ck_delete(info,keynr,(uchar*) keybuf,key_length)))
        goto err2;
      old_word++;
      break;
@@ -197,7 +197,7 @@ int _mi_ft_update(MI_INFO *info, uint keynr, byte *keybuf,
      break;
    case 1:
      key_length=_ft_make_key(info,keynr,keybuf,new_word,pos);
      if (error=_mi_ck_write(info,keynr,(uchar*) keybuf,key_length))
      if ((error=_mi_ck_write(info,keynr,(uchar*) keybuf,key_length)))
        goto err2;
      new_word++;
      break;
+4 −2
Original line number Diff line number Diff line
@@ -116,9 +116,11 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
      }
      while ((maxbuffer= (int) (records/(keys-1)+1)) != skr);

    if (sort_keys=(uchar **)my_malloc(keys*(sort_length+sizeof(char*))+HA_FT_MAXLEN, MYF(0)))
    if ((sort_keys=(uchar **)my_malloc(keys*(sort_length+sizeof(char*))+
				       HA_FT_MAXLEN, MYF(0))))
    {
      if (init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer, maxbuffer/2))
      if (init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer,
			     maxbuffer/2))
	my_free((gptr) sort_keys,MYF(0));
      else
	break;
Loading