diff options
author | unknown <monty@donna.mysql.com> | 2000-09-13 01:08:34 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-09-13 01:08:34 +0300 |
commit | 1040f1ac8ec95fcd2f42bc3b4d74d5ee01584e8f (patch) | |
tree | 42c131dcc09b3b264d33b14120eaae7687ab2425 /myisam/ft_update.c | |
parent | de04a97b613356f19bfbe67856cda64774865832 (diff) | |
download | mariadb-git-1040f1ac8ec95fcd2f42bc3b4d74d5ee01584e8f.tar.gz |
Fixes for FULLTEXT and TIME type
Docs/manual.texi:
Update of Linux notes and mysql_install_db
include/my_tree.h:
new tree function
myisam/ft_parser.c:
Fix free() bug
myisam/ft_search.c:
Fix free() bug
myisam/ft_update.c:
Fix free() bug
scripts/safe_mysqld.sh:
Check if we run as root
sql-bench/Results-linux/ATIS-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/big-tables-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/connect-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/select-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/select-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/Results-linux/wisconsin-mysql_fast-Linux_2.2.13_SMP_alpha:
***MISSING WEAVE***
sql-bench/server-cfg.sh:
Added use of OPTIMIZE TABLE
sql-bench/test-ATIS.sh:
Added use of OPTIMIZE TABLE
sql-bench/test-insert.sh:
Added use of OPTIMIZE TABLE
sql-bench/test-select.sh:
Added use of OPTIMIZE TABLE
sql-bench/test-wisconsin.sh:
Added use of OPTIMIZE TABLE
sql/field.cc:
Fix TIME type
sql/item_func.h:
Fixed Free bug
Diffstat (limited to 'myisam/ft_update.c')
-rw-r--r-- | myisam/ft_update.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/myisam/ft_update.c b/myisam/ft_update.c index cff5cb36baa..1c16a77ab5b 100644 --- a/myisam/ft_update.c +++ b/myisam/ft_update.c @@ -29,7 +29,8 @@ /* parses a document i.e. calls _mi_ft_parse for every keyseg */ -static FT_WORD * _mi_ft_parserecord(MI_INFO *info, uint keynr, byte *keybuf, const byte *record) +static FT_WORD * _mi_ft_parserecord(MI_INFO *info, uint keynr, byte *keybuf, + const byte *record) { TREE *parsed=NULL; MI_KEYSEG *keyseg; @@ -62,7 +63,7 @@ static FT_WORD * _mi_ft_parserecord(MI_INFO *info, uint keynr, byte *keybuf, con len=keyseg->length; parsed=ft_parse(parsed, pos, len); - if(parsed==NULL) return NULL; + if (parsed==NULL) return NULL; } return ft_linearize(info, keynr, keybuf, parsed); } @@ -150,23 +151,36 @@ int _mi_ft_cmp(MI_INFO *info, uint keynr, const byte *rec1, const byte *rec2) } /* adds a document to the collection */ -int _mi_ft_add(MI_INFO *info, uint keynr, byte *keybuf, const byte *record, my_off_t pos) +int _mi_ft_add(MI_INFO *info, uint keynr, byte *keybuf, const byte *record, + my_off_t pos) { + int error= -1; FT_WORD *wlist; - if(!(wlist=_mi_ft_parserecord(info, keynr, keybuf, record))) return -1; - return _mi_ft_store(info,keynr,keybuf,wlist,pos); + if ((wlist=_mi_ft_parserecord(info, keynr, keybuf, record))) + { + error=_mi_ft_store(info,keynr,keybuf,wlist,pos); + my_free((char*) wlist,MYF(0)); + } + return error; } /* removes a document from the collection */ -int _mi_ft_del(MI_INFO *info, uint keynr, byte *keybuf, const byte *record, my_off_t pos) +int _mi_ft_del(MI_INFO *info, uint keynr, byte *keybuf, const byte *record, + my_off_t pos) { + int error= -1; FT_WORD *wlist; - if(!(wlist=_mi_ft_parserecord(info, keynr, keybuf, record))) return -1; - return _mi_ft_erase(info,keynr,keybuf,wlist,pos); + if ((wlist=_mi_ft_parserecord(info, keynr, keybuf, record))) + { + error=_mi_ft_erase(info,keynr,keybuf,wlist,pos); + my_free((char*) wlist,MYF(0)); + } + return error; } -uint _ft_make_key(MI_INFO *info, uint keynr, byte *keybuf, FT_WORD *wptr, my_off_t filepos) +uint _ft_make_key(MI_INFO *info, uint keynr, byte *keybuf, FT_WORD *wptr, + my_off_t filepos) { byte buf[HA_FT_MAXLEN+16]; |