diff options
author | unknown <serg@serg.mylan> | 2004-02-15 20:36:12 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-02-15 20:36:12 +0100 |
commit | d3545913028c1479a704c2a7523115eaa81860b4 (patch) | |
tree | 304adc3ec45054065c6b77d3b55083cadf7a0fd0 /myisam/ft_parser.c | |
parent | f7f02b484c9e2509a1a52dcddcce04bb12263419 (diff) | |
download | mariadb-git-d3545913028c1479a704c2a7523115eaa81860b4.tar.gz |
bug#2708
test results updated
myisam/ft_boolean_search.c:
cleanup
myisam/ft_parser.c:
cleanup
bug#2708
mysql-test/r/derived.result:
error messages updated
mysql-test/r/fulltext.result:
bug#2708
mysql-test/r/warnings.result:
error messages updated
mysql-test/t/fulltext.test:
bug#2708
Diffstat (limited to 'myisam/ft_parser.c')
-rw-r--r-- | myisam/ft_parser.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/myisam/ft_parser.c b/myisam/ft_parser.c index 0318bcbed10..f68bf3f030c 100644 --- a/myisam/ft_parser.c +++ b/myisam/ft_parser.c @@ -93,27 +93,30 @@ byte ft_get_word(CHARSET_INFO *cs, byte **start, byte *end, for (;doc<end;doc++) { if (true_word_char(cs,*doc)) break; - if (*doc == FTB_RQUOT && param->quot) { + if (*doc == FTB_RQUOT && param->quot) + { param->quot=doc; *start=doc+1; return 3; /* FTB_RBR */ } - if ((*doc == FTB_LBR || *doc == FTB_RBR || *doc == FTB_LQUOT) - && !param->quot) - { - /* param->prev=' '; */ - *start=doc+1; - if (*doc == FTB_LQUOT) param->quot=*start; - return (*doc == FTB_RBR)+2; - } - if (param->prev == ' ' && !param->quot) + if (!param->quot) { - if (*doc == FTB_YES ) { param->yesno=+1; continue; } else - if (*doc == FTB_EGAL) { param->yesno= 0; continue; } else - if (*doc == FTB_NO ) { param->yesno=-1; continue; } else - if (*doc == FTB_INC ) { param->plusminus++; continue; } else - if (*doc == FTB_DEC ) { param->plusminus--; continue; } else - if (*doc == FTB_NEG ) { param->pmsign=!param->pmsign; continue; } + if (*doc == FTB_LBR || *doc == FTB_RBR || *doc == FTB_LQUOT) + { + /* param->prev=' '; */ + *start=doc+1; + if (*doc == FTB_LQUOT) param->quot=*start; + return (*doc == FTB_RBR)+2; + } + if (param->prev == ' ') + { + if (*doc == FTB_YES ) { param->yesno=+1; continue; } else + if (*doc == FTB_EGAL) { param->yesno= 0; continue; } else + if (*doc == FTB_NO ) { param->yesno=-1; continue; } else + if (*doc == FTB_INC ) { param->plusminus++; continue; } else + if (*doc == FTB_DEC ) { param->plusminus--; continue; } else + if (*doc == FTB_NEG ) { param->pmsign=!param->pmsign; continue; } + } } param->prev=*doc; param->yesno=(FTB_YES==' ') ? 1 : (param->quot != 0); @@ -139,6 +142,11 @@ byte ft_get_word(CHARSET_INFO *cs, byte **start, byte *end, return 1; } } + if (param->quot) + { + param->quot=*start=doc; + return 3; /* FTB_RBR */ + } return 0; } |