diff options
author | unknown <serg@infomag.ape.relarn.ru> | 2000-08-28 17:43:58 +0400 |
---|---|---|
committer | unknown <serg@infomag.ape.relarn.ru> | 2000-08-28 17:43:58 +0400 |
commit | ca04c0eca770ebc50bb336f3ec3d66eb2fe46b58 (patch) | |
tree | 485c3b99b43fae8c2b58b7a5ab72b383265423d2 /myisam/ft_search.c | |
parent | fe26eac2198e79de6e23c17c5033a5c7bc8e1d41 (diff) | |
download | mariadb-git-ca04c0eca770ebc50bb336f3ec3d66eb2fe46b58.tar.gz |
ft_optimization: identical queries merging. collection -> fulltext. Bugs fixed.
**************** !!! NOTE EVERYBODY: SYNTAX CHANGED !!! ********************
There's no COLLECTIONs now, full-text indexes can be created via the word
FULLTEXT, which should be used like UNIQUE.
myisam/mi_check.c:
comments added
sql/lex.h:
COLLECTION -> FULLTEXT
sql/item_func.h:
ft-optimization: identical queries merging
sql/sql_select.cc:
ft-optimization
sql/item_func.cc:
ft-optimization: identical queries merging
sql/sql_base.cc:
ft_optimization: identical queries merging
sql/sql_yacc.yy:
COLLECTION -> FULLTEXT
myisam/ft_search.c:
info->lastpot dealing
Docs/manual.texi:
COLLECTION -> FULLTEXT
Diffstat (limited to 'myisam/ft_search.c')
-rw-r--r-- | myisam/ft_search.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/myisam/ft_search.c b/myisam/ft_search.c index 9dfa7f05412..91c63055fef 100644 --- a/myisam/ft_search.c +++ b/myisam/ft_search.c @@ -158,6 +158,7 @@ FT_DOCLIST * ft_init_search(void *info, uint keynr, byte *key, ALL_IN_ONE aio; FT_DOCLIST *dlist; FT_DOC *dptr; + my_off_t saved_lastpos; /* black magic ON */ if ((int) (keynr = _mi_check_index((MI_INFO *)info,keynr)) < 0) @@ -173,6 +174,8 @@ FT_DOCLIST * ft_init_search(void *info, uint keynr, byte *key, aio.keyinfo=aio.info->s->keyinfo+keynr; aio.key_root=aio.info->s->state.key_root[keynr]; + saved_lastpos=aio.info->lastpos; + if(!(wtree=ft_parse(NULL,key,key_len))) return NULL; init_tree(&aio.dtree,0,sizeof(FT_SUPERDOC),(qsort_cmp)&FT_SUPERDOC_cmp,0, @@ -199,6 +202,7 @@ FT_DOCLIST * ft_init_search(void *info, uint keynr, byte *key, } err: + aio.info->lastpos=saved_lastpos; delete_tree(&aio.dtree); delete_tree(wtree); free(wtree); @@ -217,7 +221,8 @@ int ft_read_next(FT_DOCLIST *handler, char *record) info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - if (!(*info->read_record)(info,handler->doc[handler->curdoc].dpos,record)) + info->lastpos=handler->doc[handler->curdoc].dpos; + if (!(*info->read_record)(info,info->lastpos,record)) { info->update|= HA_STATE_AKTIV; /* Record is read */ return 0; |