summaryrefslogtreecommitdiff
path: root/mysql-test/t/fulltext.test
Commit message (Collapse)AuthorAgeFilesLines
* Create 'main' test directory and move 't' and 'r' thereMichael Widenius2018-03-291-718/+0
|
* Merge branch 'github/10.1' into 10.2Sergei Golubchik2018-02-061-0/+15
|\
| * Merge remote-tracking branch '5.5' into 10.0Vicențiu Ciorbaru2018-01-241-0/+15
| |\
| | * MDEV-14743: Server crashes in Item_func_match::init_searchOleksandr Byelkin2018-01-121-0/+15
| | | | | | | | | | | | | | | | | | Remove non prepared (and so belonging to removed clauses FT functions) from the list. in later version it will be fixed by building the list during preparation.
* | | MDEV-7635: Update tests to adapt to the new default sql_modeNirbhay Choubey2017-02-101-0/+1
|/ /
* | 5.5 mergeSergei Golubchik2014-05-091-0/+43
|\ \ | |/
| * MDEV-6146 Can't mix (latin1_swedish_ci,NUMERIC) and ↵Alexander Barkov2014-04-231-0/+39
| | | | | | | | (utf8_unicode_ci,IMPLICIT) for MATCH
* | MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252).Alexey Botchkov2013-04-131-0/+11
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Syntax modified to allow statements: ALTER TABLE ADD/DROP COLUMN ALTER TABLE ADD/DROP INDEX ALTER TABLE ADD/DROP FOREIGN KEY ALTER TABLE ADD/DROP PARTITION ALTER TABLE CHANGE COLUMN ALTER TABLE MODIFY COLUMN DROP INDEX to have IF (NOT) EXISTS options. Appropriate implementations added to mysql_alter_table(). per-file comments: mysql-test/r/alter_table.result MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). test result updated. mysql-test/r/fulltext.result MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). mysql-test/r/partition.result test result updated. MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). mysql-test/t/alter_table.test tests added. MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). mysql-test/t/fulltext.test MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). tests added. mysql-test/t/partition.test MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). tests added. sql/field.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). create_if_not_exists field added. sql/field.h MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). create_if_not_exists field added. sql/partition_info.h MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). has_unique_name made public. sql/sp_head.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). sql/sql_class.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). create_if_not_exists inited. sql/sql_class.h MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). create_if_not_exists inited. sql/sql_lex.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). check_exists inited. sql/sql_lex.h MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). check_exists inited. sql/sql_parse.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). check_exists inited. sql/sql_table.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). handle_if_exists_options() added. it's called in mysql_alter_table(). sql/sql_trigger.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). check_exists instead of drop_if_exists. sql/sql_view.cc MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). check_exists instead of drop_if_exists. sql/sql_yacc.yy MDEV-318 IF (NOT) EXIST clauses for ALTER TABLE (MWL #252). sintax modified.
* 5.3->5.5 mergeSergei Golubchik2011-11-221-0/+2
|\
| * Fixed a cost estimation bug introduced into in the function best_access_pathIgor Babaev2011-09-301-0/+2
| | | | | | | | | | | | | | | | | | of the 5.3 code line after a merge with 5.2 on 2010-10-28 in order not to allow the cost to access a joined table to be equal to 0 ever. Expanded data sets for many test cases to get the same execution plans as before.
| * Merge with MySQL 5.1.53Michael Widenius2010-11-251-0/+36
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Open issues: - A better fix for #57688; Igor is working on this - Test failure in index_merge_innodb.test ; Igor promised to look at this - Some Innodb tests fails (need to merge with latest xtradb) ; Kristian promised to look at this. - Failing tests: innodb_plugin.innodb_bug56143 innodb_plugin.innodb_bug56632 innodb_plugin.innodb_bug56680 innodb_plugin.innodb_bug57255 - Werror is disabled; Should be enabled after merge with xtradb.
* | \ 5.5-mergeSergei Golubchik2011-07-021-0/+37
|\ \ \
| * \ \ 5.1-security->5.5-security mergeSergey Glukhov2010-10-181-0/+37
| |\ \ \ | | | |/ | | |/|
| | * | Bug#54484 explain + prepared statement: crash and Got error -1 from storage ↵Sergey Glukhov2010-10-181-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | engine Subquery executes twice, at top level JOIN::optimize and ::execute stages. At first execution create_sort_index() function is called and FT_SELECT object is created and destroyed. HANDLER::ft_handler is cleaned up in the object destructor and at second execution FT_SELECT::get_next() method returns error. The fix is to reinit HANDLER::ft_handler field before re-execution of subquery. mysql-test/r/fulltext.result: test case mysql-test/t/fulltext.test: test case sql/item_func.cc: reinit ft_handler before re-execution of subquery sql/item_func.h: Fixed method name sql/sql_select.cc: reinit ft_handler before re-execution of subquery
* | | | merge.Sergei Golubchik2010-11-251-0/+12
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | checkpoint. does not compile.
| * | Merge MySQL 5.1.46 into MariaDB.unknown2010-04-281-0/+30
| |\ \ | | |/ | | | | | | Still two test failures to be solved: main.myisam and main.subselect.
| * | Merge MySQL 5.1.44 into MariaDB.unknown2010-03-041-0/+31
| |\ \
| * \ \ Merge with MySQL 5.1.42Michael Widenius2010-01-151-0/+41
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Marked a couple of tests with --big - Fixed xtradb/handler/ha_innodb.cc to call explain_filename() storage/xtradb/handler/ha_innodb.cc: Call explain_filename() to get proper names for partitioned tables
| * | | | Fix test suite so that it works when doing configure --without-ucaMichael Widenius2009-12-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify testing of needed characterset Remove ndb from --with-plugins=max build mysqlbug now sends email to maria-developers@lists.launchpad.net client/mysqltest.cc: SKIP now expands variables (for better error messages) mysql-test/include/have_big5.inc: Simplify by using have_collation.inc mysql-test/include/have_collation.inc: Test if '$collation' is supported mysql-test/include/have_cp1250_ch.inc: Simplify by using have_collation.inc mysql-test/include/have_cp1251.inc: Simplify by using have_collation.inc mysql-test/include/have_cp866.inc: Simplify by using have_collation.inc mysql-test/include/have_cp932.inc: Simplify by using have_collation.inc mysql-test/include/have_eucjpms.inc: Simplify by using have_collation.inc mysql-test/include/have_euckr.inc: Simplify by using have_collation.inc mysql-test/include/have_gb2312.inc: Simplify by using have_collation.inc mysql-test/include/have_gbk.inc: Simplify by using have_collation.inc mysql-test/include/have_koi8r.inc: Simplify by using have_collation.inc mysql-test/include/have_latin2_ch.inc: Simplify by using have_collation.inc mysql-test/include/have_sjis.inc: Simplify by using have_collation.inc mysql-test/include/have_tis620.inc: Simplify by using have_collation.inc mysql-test/include/have_ucs2.inc: Simplify by using have_collation.inc mysql-test/include/have_ujis.inc: Simplify by using have_collation.inc mysql-test/include/have_utf8.inc: Simplify by using have_collation.inc mysql-test/r/create-uca.result: Create tests that uses unicode mysql-test/r/create.result: Move test with unicode to create-uca.test mysql-test/r/have_big5.require: Not needed anymore mysql-test/r/have_cp1250_ch.require: Not needed anymore mysql-test/r/have_cp1251.require: Not needed anymore mysql-test/r/have_cp866.require: Not needed anymore mysql-test/r/have_cp932.require: Not needed anymore mysql-test/r/have_eucjpms.require: Not needed anymore mysql-test/r/have_euckr.require: Not needed anymore mysql-test/r/have_gb2312.require: Not needed anymore mysql-test/r/have_gbk.require: Not needed anymore mysql-test/r/have_koi8r.require: Not needed anymore mysql-test/r/have_latin2_ch.require: Not needed anymore mysql-test/r/have_sjis.require: Not needed anymore mysql-test/r/have_tis620.require: Not needed anymore mysql-test/r/have_ucs2.require: Not needed anymore mysql-test/r/have_ujis.require: Not needed anymore mysql-test/r/have_utf8.require: Not needed anymore mysql-test/r/innodb.result: Move tests that depends on unicode to innodb_utf8.test mysql-test/r/innodb_utf8.result: Test moved from innodb.test mysql-test/suite/rpl/t/rpl_ignore_table.test: Test for required collations mysql-test/t/create-uca.test: Create tests that uses unicode mysql-test/t/create.test: Move test with unicode to create-uca.test mysql-test/t/ctype_utf8.test: Test that require unicode mysql-test/t/ddl_i18n_koi8r.test: Test for required collations mysql-test/t/ddl_i18n_utf8.test: Test for required collations mysql-test/t/fulltext.test: Test for required collations mysql-test/t/fulltext2.test: Test for required collations mysql-test/t/innodb.test: Move tests that depends on unicode to innodb_utf8.test mysql-test/t/innodb_utf8.test: Tests that uses unicode mysql-test/t/query_cache_ps_no_prot.test: Test for required collations mysql-test/t/query_cache_ps_ps_prot.test: Test for required collations scripts/mysqlbug.sh: Send emails to maria-developers@lists.launchpad.net storage/ndb/plug.in: Don't include ndb in 'max' builds
| * | | | Merge MySQL->MariaDBSergey Petrunya2009-09-081-0/+22
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Finished Monty and Jani's merge * Some InnoDB tests still fail (because it's old xtradb code run against newer testsuite). They are expected to go after mergning with the latest xtradb.
| * \ \ \ \ merge of 5.1-main into 5.1-maria. MyISAM changes are propagated to Maria exceptGuilhem Bichot2009-04-011-0/+8
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | those of davi.arnaut@sun.com-20090219210935-9vilvcisyyieffxl (TODO).
| * \ \ \ \ \ merge of 5.1-main into 5.1-maria. Myisam->Maria change propagation will follow.Guilhem Bichot2009-02-121-0/+9
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were so many changes into mtr (this is the new mtr coming) that I rather copied mtr from 6.0-main here (at least this one knows how to run Maria tests). I also fixed suite/maria tests to be accepted by the new mtr. mysys/thr_mutex.c: adding DBUG_PRINT here, so that we can locate where the warning is issued.
| * \ \ \ \ \ \ Merge of 5.1-main into 5.1-maria. There were no changes to storage/myisam, ↵Guilhem Bichot2008-12-101-0/+9
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysys/mf_keycache.c, mysql-test/t/*myisam* since previous merge. MARIA_PAGECACHE_READS in maria-preload.test are down a little bit (5%), which must be a good side-effect of some sql/ change.
| | * | | | | | | Bug#34374: mysql generates incorrect warningSergei Golubchik2008-11-291-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | an item was evaluated unnecessary, fix that by checking preconditions before evaluating the item sql/sql_select.cc: an item was evaluated unnecessary, fix that by checking preconditions before evaluating the item
* | | | | | | | | Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.Alexey Kopytov2010-04-021-0/+9
|\ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Text conflict in mysql-test/r/func_str.result Text conflict in mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_32.result Text conflict in mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_64.result Text conflict in mysql-test/t/func_str.test Text conflict in sql/mysqld.cc Text conflict in sql/protocol.cc Text conflict in storage/myisam/mi_open.c
| * | | | | | | | BUG#51866 - crash with repair by sort and fulltext keysSergey Vojtovich2010-03-251-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repairing MyISAM table with fulltext indexes and low myisam_sort_buffer_size may crash the server. Estimation of number of index entries was done incorrectly, causing further assertion failure or server crash. Docs note: min value for myisam_sort_buffer_size has been changed from 4 to 4096. mysql-test/r/fulltext.result: A test case for BUG#51866. mysql-test/r/myisam.result: Min value for myisam_sort_buffer_size is 4096. mysql-test/r/variables.result: Min value for myisam_sort_buffer_size is 4096. mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic_32.result: Min value for myisam_sort_buffer_size is 4096. mysql-test/t/fulltext.test: A test case for BUG#51866. sql/mysqld.cc: Min value for myisam_sort_buffer_size is 4096. storage/myisam/mi_check.c: When estimating number of index entries for external fulltext parser, take into account that key_length may be bigger than myisam_sort_buffer_size. Reuse logic from _create_index_by_sort(): force MIN_SORT_BUFFER to be min value for myisam_sort_buffer_size. Another problem is that ftkey_nr has no other meaning than serial number of fulltext index starting with 1. We can't say if this key using built-in or external parser basing on it's value. In other words we always entered if-branch for external parser. At this point, the only way to check if we use default parser is to compare keyinfo::parser with &ft_default_parser. storage/myisam/sort.c: Get rid of MIN_SORT_MEMORY, use MIN_SORT_BUFFER instead (defined in myisamdef.h, has the same value and purpose).
* | | | | | | | | Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.Alexey Kopytov2010-02-221-0/+21
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Merge fix for bug50351 to mysql-5.1-bugteam.Sergey Vojtovich2010-02-091-0/+21
| |\ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|/ | |/| | | | | | |
| | * | | | | | | BUG#50351 - ft_min_word_len=2 Causes query to hangSergey Vojtovich2010-02-021-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Performing fulltext prefix search (a word with truncation operator) may cause a dead-loop. ft_min_word_len value doesn't matter actually. The problem was introduced along with "smarter index merge" optimization. mysql-test/r/fulltext.result: A test case for BUG#50351. mysql-test/t/fulltext.test: A test case for BUG#50351. storage/myisam/ft_boolean_search.c: When going up to first-level tree, we need to restore docid[0], so it informs fulltext index merge not to enter this second-level tree again (avoiding dead-loop).
* | | | | | | | | Manual merge from mysql-5.1-bugteam.Alexander Nozdrin2010-02-031-0/+10
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: - configure.in - mysql-test/include/setup_fake_relay_log.inc - sql/sql_select.cc
| * | | | | | | | Bug #49445: Assertion failed: 0, file .\item_row.cc, line 55 withGeorgi Kodinov2010-02-021-0/+10
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fulltext search and row op. The search for fulltext indexes is searching for some special predicate layouts. While doing so it's not checking for the number of columns of the expressions it tries to calculate. And since row expressions can't return a single scalar value there was a crash. Fixed by checking if the expressions are scalar (in addition to being constant) before calling Item::val_xxx() methods.
* | | | | | | | Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.Alexey Kopytov2009-12-161-0/+21
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | merge of bug #49250 to 5.1-bugteamGeorgi Kodinov2009-12-111-0/+21
| |\ \ \ \ \ \ \ | | |_|_|_|_|_|/ | |/| | | | | |
| | * | | | | | Bug #49250 : spatial btree index corruption and crashGeorgi Kodinov2009-12-101-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SPATIAL and FULLTEXT indexes don't support algorithm selection. Disabled by creating a special grammar rule for these in the parser. Added some encasulation of duplicate parser code.
* | | | | | | | Manual merge from mysql-trunk.Alexander Nozdrin2009-12-111-0/+9
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: - client/mysqltest.cc - mysql-test/collections/default.experimental - mysql-test/suite/rpl/t/disabled.def - sql/mysqld.cc - sql/opt_range.cc - sql/sp.cc - sql/sql_acl.cc - sql/sql_partition.cc - sql/sql_table.cc
| * | | | | | | Bug#34374 mysql generates incorrect warningSergei Golubchik2009-10-191-0/+9
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | backport to next-mr
* | | | | | | Bug #47930: MATCH IN BOOLEAN MODE returns too many resultsGeorgi Kodinov2009-10-271-0/+41
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inside subquery Re-setting a fulltext index was a no-operation if not all the matches of a search were consumed by reading them. This was preventing a joined table using a fulltext index in a subquery that requires only 1 row of output (e.g. EXISTS) from working correctly because the second execution of the sub-query has the fulltext index cursor in a wrong state and was not finding results. Fixed by making the re-init code _ftb_init_index_search() to re-set open cursors in addition to depleted ones.
* | | | | | merging with 5.0 bugteam treeAnurag Shekhar2009-07-151-0/+13
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Bug#37740 Server crashes on execute statement with full text search and Anurag Shekhar2009-07-151-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | match against. Server crashes when executing prepared statement with duplicating MATCH() function calls in SELECT and ORDER BY expressions, e.g.: SELECT MATCH(a) AGAINST('test') FROM t1 ORDER BY MATCH(a) AGAINST('test') This query gets optimized by the server, so the value returned by MATCH() from the SELECT list is reused for ORDER BY purposes. To make this optimization server is comparing items from SELECT and ORDER BY lists. We were getting server crash because comparision function for MATCH() item is not intended to be called at this point of execution. In 5.0 and 5.1 this problem is workarounded by resetting MATCH() item to the state as it was during PREPARE. In 6.0 correct comparision function will be implemented and duplicating MATCH() items from the ORDER BY list will be optimized. mysql-test/r/fulltext.result: Updated with the test case for Bug#37740 mysql-test/t/fulltext.test: A test case for Bug#37740. sql/item_func.h: True initialization of 'table' happens in ::fix_fields(). As Item_func_match::eq() may be called before ::fix_fields(), it is expected that 'table' is initialized to 0 when it is reused. This is mostly affecting prepared statements, when the same item doesn't get destroyed, but rather cleaned up and reused.
* | | | | | BUG#42907 - Multi-term boolean fulltext query containing aSergey Vojtovich2009-04-231-0/+9
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | single quote fails in 5.1.x Performing fulltext prefix search (a word with truncation operator) may cause a dead-loop. The problem was in smarter index merge algorithm - it was writing record reference to an incorrect memory area. mysql-test/r/fulltext.result: A test case for BUG#42907. mysql-test/t/fulltext.test: A test case for BUG#42907. storage/myisam/ft_boolean_search.c: Fixed incorrect memory update by _mi_dpointer() when performing fulltext prefix search.
* | | | | Merge 5.0-bugteam -> 5.1-bugteam.Sergey Vojtovich2009-02-121-0/+8
|\ \ \ \ \ | |/ / / / | | | | / | |_|_|/ |/| | |
| * | | BUG#36737 - having + full text operator crashes mysqlSergey Vojtovich2009-02-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MATCH() function accepts column list as an argument. It was possible to override this requirement with aliased non-column select expression. Which results in server crash. With this fix aliased non-column select expressions are not accepted by MATCH() function, returning an error. mysql-test/r/fulltext.result: A test case for BUG#36737. mysql-test/t/fulltext.test: A test case for BUG#36737. sql/item_func.cc: Only accept fields as arguments to MATCH().
* | | | Merge.Sergey Vojtovich2008-12-091-0/+9
|\ \ \ \ | |/ / / | | / / | |/ / |/| |
| * | BUG#37245 - Full text search problemSergey Vojtovich2008-11-281-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain boolean mode queries with truncation operator did not return matching records and calculate relevancy incorrectly. myisam/ft_boolean_search.c: Sort ftb->list in ascending order. This helps to fix binary search in ft_boolean_find_relevance() without rewriting it much. Fixed binary search in ft_boolean_find_relevance(), so it finds right-most element in an array. Fixed that ft_boolean_find_relevance() didn't return match for words with truncation operator in case query has other non- matching words. mysql-test/r/fulltext.result: A test case for BUG#37245. mysql-test/t/fulltext.test: A test case for BUG#37245.
* | | Merge.Sergey Vojtovich2008-11-181-0/+27
|\ \ \ | |/ / | | / | |/ |/|
| * BUG#38842 - Fix for 25951 seems incorrectSergey Vojtovich2008-11-111-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With fix for bug 25951 index hints are ignored for fulltext searches, as handling of fulltext indexes is different from handling regular indexes. Meaning it is not possible to implement true index hints support for fulltext indexes within the scope of current fulltext architecture. The problem is that prior to fix for bug 25951, some useful index hints still could be given for boolean mode searches. This patch implements special index hints support for fulltext indexes with the following characteristics: - all index hints are still ignored for NLQ mode searches - it cannot work without an index; - for 5.1 and up index hints FOR ORDER BY and FOR GROUP BY are still ignored for fulltext indexes; - boolean mode searches honor USE/FORCE/IGNORE INDEX hints; - as opposed to index hints for regular indexes, index hints for fulltext BOOLEAN mode searches affect the usage of the index for the whole query. mysql-test/r/fulltext.result: A test case for BUG#38842. mysql-test/t/fulltext.test: A test case for BUG#38842. sql/item_func.cc: For boolean mode searches, which can work without fulltext index, use keys_in_use_for_query bitmap instead of keys_in_use. The effect is that boolean mode searches now honor index hints.
* | Merge mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-5.0-enginesunknown2007-11-021-0/+8
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-5.1-engines mysql-test/t/fulltext.test: Auto merged storage/myisam/ft_boolean_search.c: Auto merged mysql-test/r/fulltext.result: SCCS merged
| * Merge mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-4.1-enginesunknown2007-11-021-0/+8
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-5.0-engines mysql-test/r/fulltext.result: Auto merged mysql-test/t/fulltext.test: Auto merged myisam/ft_boolean_search.c: Use local.
| | * BUG#11392 - fulltext search bugunknown2007-10-301-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fulltext boolean mode phrase search may crash server on platforms where size of pointer is not equal to size of unsigned integer (in other words some 64-bit platforms). The problem was integer overflow. Affects 4.1 only. myisam/ft_boolean_search.c: my_match_t::beg is unsigned int, that means type of expression (m[0].beg - 1) has unsigned type too. It may happen that instr() finds substring in the beggining of passed string, returning m[0].beg equal to 0. In this case value of expression (m[0].beg - 1) is equal to MAX_UINT. This is not a problem on platforms where sizeof(pointer) equals to sizeof(uint). That means ptr[(uint)-1] = ptr[(uint)MAX_UINT] = ptr - 1. On some 64-bit platforms where sizeof(pointer) is 8 and sizeof(uint) is 4, wrong address gets accessed. In other words ptr[(uint)-1] is equal to ptr + MAX_UINT. mysql-test/r/fulltext.result: A test case for BUG#11392. mysql-test/t/fulltext.test: A test case for BUG#11392.
* | | BUG#29464 - load data infile into table with big5 chinese fulltext indexunknown2007-07-131-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hangs 100% cpu Moved a test case for BUG#29464 into fulltext3.test, since it requires big5 character set. mysql-test/r/fulltext.result: Moved a test case for BUG#29464 into fulltext3.test, since it requires big5 character set. mysql-test/r/fulltext3.result: Moved a test case for BUG#29464 into fulltext3.test, since it requires big5 character set. mysql-test/t/fulltext.test: Moved a test case for BUG#29464 into fulltext3.test, since it requires big5 character set. mysql-test/t/fulltext3.test: Moved a test case for BUG#29464 into fulltext3.test, since it requires big5 character set.