Commit graph

172 commits

Author SHA1 Message Date
Michael Widenius
1a6373e8e2 Merge with MySQL 5.1.53
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.
2010-11-25 00:57:34 +02:00
Sergey Glukhov
127c721cef Bug#54484 explain + prepared statement: crash and Got error -1 from storage 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
2010-10-18 14:47:26 +04:00
unknown
b1e00b6be8 Merge MySQL 5.1.46 into MariaDB.
Still two test failures to be solved: main.myisam and main.subselect.
2010-04-28 14:52:24 +02:00
Sergey Vojtovich
412798658a BUG#51866 - crash with repair by sort and fulltext keys
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).
2010-03-25 16:08:21 +04:00
unknown
4bf849c23c Merge MySQL 5.1.44 into MariaDB. 2010-03-04 09:03:07 +01:00
Sergey Vojtovich
cb2d6a0016 Merge fix for bug50351 to mysql-5.1-bugteam. 2010-02-09 15:47:07 +04:00
Sergey Vojtovich
dac9e51811 BUG#50351 - ft_min_word_len=2 Causes query to hang
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).
2010-02-02 15:08:49 +04:00
Georgi Kodinov
e4b7138561 Bug #49445: Assertion failed: 0, file .\item_row.cc, line 55 with
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.
2010-02-02 18:37:56 +02:00
Michael Widenius
d8ecbbe634 Merge with MySQL 5.1.42
- 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
2010-01-15 17:27:55 +02:00
Georgi Kodinov
97620e3ba8 merge of bug #49250 to 5.1-bugteam 2009-12-11 16:02:47 +02:00
Georgi Kodinov
30e51fe854 Bug #49250 : spatial btree index corruption and crash
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.
2009-12-10 11:28:38 +02:00
Georgi Kodinov
313c5a01ee Bug #47930: MATCH IN BOOLEAN MODE returns too many results
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.
2009-10-27 14:43:12 +02:00
Sergey Petrunya
29f0dcb563 Merge MySQL->MariaDB
* 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.
2009-09-08 00:50:10 +04:00
Anurag Shekhar
0ad57bef5d merging with 5.0 bugteam tree 2009-07-15 15:43:45 +05:30
Anurag Shekhar
c77b836ab8 Bug#37740 Server crashes on execute statement with full text search and
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.
2009-07-15 15:00:58 +05:30
Sergey Vojtovich
509a9cee1c BUG#42907 - Multi-term boolean fulltext query containing a
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.
2009-04-23 16:24:08 +05:00
Guilhem Bichot
c71aae73f6 merge of 5.1-main into 5.1-maria. MyISAM changes are propagated to Maria except
those of davi.arnaut@sun.com-20090219210935-9vilvcisyyieffxl (TODO).
2009-04-01 11:34:52 +02:00
Guilhem Bichot
704b4845aa merge of 5.1-main into 5.1-maria. Myisam->Maria change propagation will follow.
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.
2009-02-12 15:08:56 +01:00
Sergey Vojtovich
e994c4f97b Merge 5.0-bugteam -> 5.1-bugteam. 2009-02-12 14:10:07 +04:00
Sergey Vojtovich
5803e10628 BUG#36737 - having + full text operator crashes mysql
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().
2009-02-12 13:49:44 +04:00
Guilhem Bichot
926aaf4635 Merge of 5.1-main into 5.1-maria. There were no changes to storage/myisam, 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.
2008-12-10 10:02:25 +01:00
Sergey Vojtovich
0e62ee8e79 Merge. 2008-12-09 13:27:46 +04:00
Sergei Golubchik
f1906c62d5 Bug#34374: mysql generates incorrect warning
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
2008-11-29 00:27:13 +01:00
Sergey Vojtovich
589ac1cfdc BUG#37245 - Full text search problem
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.
2008-11-28 18:17:13 +04:00
Sergey Vojtovich
ca1ad1c552 Merge. 2008-11-18 15:38:28 +04:00
Sergey Vojtovich
ab9ecae47b BUG#38842 - Fix for 25951 seems incorrect
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.
2008-11-11 13:10:51 +04:00
unknown
c1d0dd94bb Fix for Bug#32538: View definition picks up character set,
but not collation.

The problem here was that text literals in a view were always
dumped with character set introducer. That lead to loosing
collation information.

The fix is to dump character set introducer only if it was
in the original query. That is now possible because there 
is no problem any more of loss of character set of string
literals in views -- after WL#4052 the view is dumped 
in the original character set.


mysql-test/r/case.result:
  Update result file.
mysql-test/r/compress.result:
  Update result file.
mysql-test/r/ctype_collate.result:
  Update result file.
mysql-test/r/date_formats.result:
  Update result file.
mysql-test/r/ddl_i18n_koi8r.result:
  Update result file.
mysql-test/r/ddl_i18n_utf8.result:
  Update result file.
mysql-test/r/fulltext.result:
  Update result file.
mysql-test/r/func_crypt.result:
  Update result file.
mysql-test/r/func_encrypt.result:
  Update result file.
mysql-test/r/func_if.result:
  Update result file.
mysql-test/r/func_in.result:
  Update result file.
mysql-test/r/func_like.result:
  Update result file.
mysql-test/r/func_regexp.result:
  Update result file.
mysql-test/r/func_set.result:
  Update result file.
mysql-test/r/func_str.result:
  Update result file.
mysql-test/r/func_time.result:
  Update result file.
mysql-test/r/gis.result:
  Update result file.
mysql-test/r/group_min_max.result:
  Update result file.
mysql-test/r/mysqldump.result:
  Update result file.
mysql-test/r/negation_elimination.result:
  Update result file.
mysql-test/r/null.result:
  Update result file.
mysql-test/r/select.result:
  Update result file.
mysql-test/r/show_check.result:
  Update result file.
mysql-test/r/sp-code.result:
  Update result file.
mysql-test/r/ssl.result:
  Update result file.
mysql-test/r/ssl_compress.result:
  Update result file.
mysql-test/r/subselect.result:
  Update result file.
mysql-test/r/temp_table.result:
  Update result file.
mysql-test/r/type_blob.result:
  Update result file.
mysql-test/r/view.result:
  Update result file.
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
  Update result file.
mysql-test/suite/rpl/r/rpl_get_lock.result:
  Update result file.
mysql-test/suite/rpl/r/rpl_master_pos_wait.result:
  Update result file.
mysql-test/t/view.test:
  Add a test case for Bug#32538.
sql/item.cc:
  Do not dump character set introducer if it was not specified
  explicitly in the original query.
sql/item.h:
  Add 'cs_specified' property to Item_string.
sql/sql_yacc.yy:
  Set Item_string::cs_specified property to TRUE
  when character set introducer is explicitly specified.
2008-02-12 22:09:16 +03:00
unknown
382fbcbe14 Merge mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-5.0-engines
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
2007-11-02 13:20:38 +04:00
unknown
5c41118645 Merge mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-4.1-engines
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.
2007-11-02 12:58:20 +04:00
unknown
b698b6fd94 BUG#11392 - fulltext search bug
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.
2007-10-30 14:46:43 +04:00
unknown
bae6562762 BUG#29464 - load data infile into table with big5 chinese fulltext index
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.
2007-07-13 03:29:25 +05:00
unknown
62738bf97e BUG#29445 - match ... against () never returns
Part 2:
Searching fulltext index for a word with boolean mode truncation
operator may cause infinite loop.

The problem was that "smarter index merge" was used with "trunc-words",
which must never happen.

Affects 5.1 only.


mysql-test/r/fulltext.result:
  Addition to a test case for BUG#29445.
mysql-test/t/fulltext.test:
  Addition to a test case for BUG#29445.
storage/myisam/ft_boolean_search.c:
  Fulltext "smarter index merge" optimization assumes that rows
  it gets are ordered by doc_id. That is not the case when we
  search for a word with truncation operator. It may return
  rows in random order. Thus we may not use "smarter index merge"
  optimization with "trunc-words".
  
  Also fixed compiler warning introduced by Part 1 patch.
2007-07-13 03:25:27 +05:00
unknown
847d6ed75b fix for smarter index mergein fulltext
to work for queries like "+a (b)"


mysql-test/r/fulltext.result:
  second test for BUG#29445
mysql-test/t/fulltext.test:
  second test for BUG#29445
storage/myisam/ft_boolean_search.c:
  fix for smarter index merge, to work for queries like "+a (b)"
2007-07-11 15:26:19 +02:00
unknown
3e99fbbb7f BUG#29445 - match ... against () never returns
Part 1:
Do not perform index search for a plus-word with truncation operator
in case there are other plus-words in expression.

Specifically this optimization was enforced for expression like
"+word1 +word2*", but wasn't enforced for expression like
"+word1 word2*".


mysql-test/r/fulltext.result:
  A test case for BUG#29445.
mysql-test/t/fulltext.test:
  A test case for BUG#29445.
storage/myisam/ft_boolean_search.c:
  Do not perform index search for a plus-word with truncation operator
  in case there are other plus-words in expression.
  
  Specifically this optimization was enforced for expression like
  "+word1 +word2*", but wasn't enforced for expression like
  "+word1 word2*".
2007-07-10 15:37:39 +05:00
unknown
3bd52b0b7b BUG#29464 - load data infile into table with big5 chinese fulltext index
hangs 100% cpu

Fulltext parser may fall into infinite loop when it gets illegal
multibyte sequence (or a sequence that doesn't have mapping to unicode).

Affects 5.1 only.


mysql-test/r/fulltext.result:
  A test case for BUG#29464.
mysql-test/t/fulltext.test:
  A test case for BUG#29464.
storage/myisam/ft_parser.c:
  ctype() may return negative value, which was stored in unsigned
  variable.
  
  Also ctype() may return negative length for correct multibyte
  sequence that doesn't have a mapping to unicode. These characters
  are skipped correctly with this patch.
2007-07-05 15:17:06 +05:00
unknown
1ff64d6e11 Merge mysql.com:/home/svoj/devel/mysql/BUG25951/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG25951/mysql-5.1-engines


mysql-test/r/fulltext.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-04-18 13:27:04 +05:00
unknown
b8250c7126 Merge mysql.com:/home/svoj/devel/mysql/BUG25951/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG25951/mysql-5.0-engines


mysql-test/r/fulltext.result:
  Manual merge.
mysql-test/t/fulltext.test:
  Manual merge.
sql/item_func.cc:
  Manual merge.
2007-04-18 12:39:04 +05:00
unknown
202f34e2f5 BUG#25951 - ignore/use index does not work with fulltext
IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
index.

With this fix these hints are ignored. For regular indexes we may
perform table scan instead of index lookup when IGNORE INDEX was
specified. We cannot do this for FULLTEXT in NLQ mode.


mysql-test/r/fulltext.result:
  A test case for bug#25951.
mysql-test/t/fulltext.test:
  A test case for bug#25951.
sql/item_func.cc:
  IGNOR/USE/FORCE INDEX hints should not be honored when choosing FULLTEXT
  index.
  
  Use proper bitmap, that is not modified by IGNORE/USE/FORCE INDEX hints.
2007-04-13 02:31:34 +05:00
unknown
bfdc9c1207 Merge mysql.com:/usr/home/bar/mysql-5.0.b18908
into  mysql.com:/usr/home/bar/mysql-5.1-rpl


BitKeeper/etc/collapsed:
  auto-union
mysql-test/r/ctype_recoding.result:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
mysql-test/r/strict_autoinc_1myisam.result:
  Auto merged
mysql-test/r/strict_autoinc_2innodb.result:
  Auto merged
mysql-test/r/strict_autoinc_3heap.result:
  Auto merged
mysql-test/r/strict_autoinc_4bdb.result:
  Auto merged
mysql-test/r/strict_autoinc_5ndb.result:
  Auto merged
sql/sql_string.cc:
  Auto merged
sql/sql_string.h:
  Auto merged
sql/field.cc:
  SCCS merged
2006-11-01 16:48:03 +04:00
unknown
00c1c19e94 Bug#18908: ERROR 1406 (22001): Data too long for column :: using utf8
Problem: Too confusing error message when cannot convert
between string and column character sets on INSERT and UPDATE.
Fix: producing a better error message, instead of "Data too long"
in such cases
Additional changes: Adding "DROP TABLE IF EXISTS" into several
tests to be safe against failures in previous tests. 


mysql-test/include/strict_autoinc.inc:
  Adding DROP TABLE to be safe against previous tests failure.
mysql-test/r/ctype_recoding.result:
  Fixing test results
mysql-test/r/ctype_utf8.result:
  Fixing test results
mysql-test/r/fulltext.result:
  Fixing test results
mysql-test/r/strict_autoinc_1myisam.result:
  Adding DROP TABLE to be safe against previous tests failure.
mysql-test/r/strict_autoinc_2innodb.result:
  Adding DROP TABLE to be safe against previous tests failure.
mysql-test/r/strict_autoinc_3heap.result:
  Adding DROP TABLE to be safe against previous tests failure.
mysql-test/r/strict_autoinc_4bdb.result:
  Adding DROP TABLE to be safe against previous tests failure.
mysql-test/r/strict_autoinc_5ndb.result:
  Adding DROP TABLE to be safe against previous tests failure.
sql/field.cc:
  - producing better error messages than
    "DATA TRUNCATED" or "DATA TOO LONG" (in strict mode)
    in case of "not well formed source" and
    "cannot convert to field character set"
  - Performance improvements: copying directly to
    the target, instead of using an intermediate
    String.
  - Moving duplicate code into report_data_too_long() function.
sql/sql_string.cc:
  Adding a new function to convert strings between character sets,
  but not more than "nchar" characters - a helper function for
  Field_string::store(), Field_varstring::store() and Field_blob::store().
sql/sql_string.h:
  Adding new function prototype.
2006-10-30 10:14:03 +04:00
unknown
ef452e19bf BUG#14940 "MySQL choose wrong index", v.2
- Make the range-et-al optimizer produce E(#table records after table 
                                           condition is applied),
- Make the join optimizer use this value,
- Add "filtered" column to EXPLAIN EXTENDED to show 
  fraction of records left after table condition is applied
- Adjust test results, add comments


mysql-test/r/archive_gis.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/auto_increment.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/bdb_gis.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/bench_count_distinct.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/binlog_stm_blackhole.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/case.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/cast.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/compress.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ctype_collate.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ctype_cp1250_ch.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/date_formats.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/distinct.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/fulltext.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_compress.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_crypt.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_default.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_encrypt.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_gconcat.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_group.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_if.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_in.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_like.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_math.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_op.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_regexp.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_set.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_str.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_system.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_test.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/func_time.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/gis.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/group_by.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/group_min_max.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/having.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/heap.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/heap_hash.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge_innodb.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/index_merge_ror.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/innodb_gis.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/insert_update.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/join.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/join_nested.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/key_diff.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/myisam.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ndb_gis.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/negation_elimination.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/null.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/olap.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/partition_pruning.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/query_cache.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/row.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/rpl_get_lock.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/rpl_master_pos_wait.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/select.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ssl.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/ssl_compress.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/subselect.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/type_blob.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/union.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/varbinary.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/variables.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/r/view.result:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/ctype_cp1250_ch.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/func_like.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/group_min_max.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/index_merge_ror.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/index_merge_ror_cpk.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/join.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
mysql-test/t/partition_pruning.test:
  BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
sql/opt_range.cc:
  BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
    estimate of #records that will match the table condition.
sql/sql_class.cc:
  BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
sql/sql_select.cc:
  BUG#14940: 
  - Make the join optimizer to use TABLE::quick_condition_rows=
    = E(#table records after filtering with table condition) 
  - Add "filtered" column to output of EXPLAIN EXTENDED
sql/sql_select.h:
  BUG#14940: Added comments
sql/table.h:
  BUG#14940: Added comments
2006-07-28 21:27:01 +04:00
unknown
7e78842adf Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1


mysql-test/r/fulltext.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
mysql-test/t/type_float.test:
  Auto merged
mysql-test/t/type_newdecimal.test:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
2006-03-22 16:48:35 +01:00
unknown
9aae1afbbb Bug#18071 Result from MATCH() uses too many decimals
- Use FORMAT as a workaround to only output the first 6 decimals of the value returned
from MATCH
 - This has been done before


mysql-test/r/fulltext.result:
  Use FORMAT to only output the first 6 decimals from MATCH
mysql-test/t/fulltext.test:
  Use FORMAT to only output the first 6 decimals from MATCH
2006-03-22 14:57:24 +01:00
unknown
31a7a0d646 Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case
mysql-test/r/alter_table.result:
  Update test result
mysql-test/r/analyse.result:
  Update test result
mysql-test/r/archive.result:
  Update test result
mysql-test/r/archive_bitfield.result:
  Update test result
mysql-test/r/archive_gis.result:
  Update test result
mysql-test/r/bdb.result:
  Update test result
mysql-test/r/bdb_gis.result:
  Update test result
mysql-test/r/bigint.result:
  Update test result
mysql-test/r/binary.result:
  Update test result
mysql-test/r/case.result:
  Update test result
mysql-test/r/cast.result:
  Update test result
mysql-test/r/constraints.result:
  Update test result
mysql-test/r/create.result:
  Update test result
mysql-test/r/ctype_collate.result:
  Update test result
mysql-test/r/ctype_create.result:
  Update test result
mysql-test/r/ctype_latin1_de.result:
  Update test result
mysql-test/r/ctype_many.result:
  Update test result
mysql-test/r/ctype_mb.result:
  Update test result
mysql-test/r/ctype_recoding.result:
  Update test result
mysql-test/r/ctype_sjis.result:
  Update test result
mysql-test/r/ctype_tis620.result:
  Update test result
mysql-test/r/ctype_ucs.result:
  Update test result
mysql-test/r/ctype_ujis.result:
  Update test result
mysql-test/r/ctype_utf8.result:
  Update test result
mysql-test/r/default.result:
  Update test result
mysql-test/r/events.result:
  Update test result
mysql-test/r/federated.result:
  Update test result
mysql-test/r/fulltext.result:
  Update test result
mysql-test/r/func_gconcat.result:
  Update test result
mysql-test/r/func_group.result:
  Update test result
mysql-test/r/func_math.result:
  Update test result
mysql-test/r/func_misc.result:
  Update test result
mysql-test/r/func_str.result:
  Update test result
mysql-test/r/func_system.result:
  Update test result
mysql-test/r/gis-rtree.result:
  Update test result
mysql-test/r/heap.result:
  Update test result
mysql-test/r/index_merge_innodb.result:
  Update test result
mysql-test/r/information_schema.result:
  Update test result
mysql-test/r/innodb.result:
  Update test result
mysql-test/r/innodb_gis.result:
  Update test result
mysql-test/r/key.result:
  Update test result
mysql-test/r/merge.result:
  Update test result
mysql-test/r/myisam.result:
  Update test result
mysql-test/r/mysqldump-max.result:
  Update test result
mysql-test/r/mysqldump.result:
  Update test result
mysql-test/r/ndb_bitfield.result:
  Update test result
mysql-test/r/ndb_gis.result:
  Update test result
mysql-test/r/ndb_partition_key.result:
  Update test result
mysql-test/r/null.result:
  Update test result
mysql-test/r/partition.result:
  Update test result
mysql-test/r/partition_02myisam.result:
  Update test result
mysql-test/r/partition_mgm_err.result:
  Update test result
mysql-test/r/partition_range.result:
  Update test result
mysql-test/r/ps_2myisam.result:
  Update test result
mysql-test/r/ps_3innodb.result:
  Update test result
mysql-test/r/ps_4heap.result:
  Update test result
mysql-test/r/ps_5merge.result:
  Update test result
mysql-test/r/ps_6bdb.result:
  Update test result
mysql-test/r/rpl_mixed_ddl_dml.result:
  Update test result
mysql-test/r/rpl_multi_engine.result:
  Update test result
mysql-test/r/rpl_ndb_UUID.result:
  Update test result
mysql-test/r/show_check.result:
  Update test result
mysql-test/r/sp-vars.result:
  Update test result
mysql-test/r/sp.result:
  Update test result
mysql-test/r/sql_mode.result:
  Update test result
mysql-test/r/strict.result:
  Update test result
mysql-test/r/subselect.result:
  Update test result
mysql-test/r/symlink.result:
  Update test result
mysql-test/r/synchronization.result:
  Update test result
mysql-test/r/system_mysql_db.result:
  Update test result
mysql-test/r/temp_table.result:
  Update test result
mysql-test/r/trigger.result:
  Update test result
mysql-test/r/type_binary.result:
  Update test result
mysql-test/r/type_bit.result:
  Update test result
mysql-test/r/type_bit_innodb.result:
  Update test result
mysql-test/r/type_blob.result:
  Update test result
mysql-test/r/type_decimal.result:
  Update test result
mysql-test/r/type_enum.result:
  Update test result
mysql-test/r/type_float.result:
  Update test result
mysql-test/r/type_nchar.result:
  Update test result
mysql-test/r/type_newdecimal.result:
  Update test result
mysql-test/r/type_set.result:
  Update test result
mysql-test/r/type_timestamp.result:
  Update test result
mysql-test/r/type_varchar.result:
  Update test result
mysql-test/r/union.result:
  Update test result
mysql-test/r/user_var.result:
  Update test result
mysql-test/r/variables.result:
  Update test result
sql/sql_show.cc:
  Make ouput from SHOW CREATE TABLE use uppercase for "CHARACTER SET", "COLLATE", "DEFAULT", "ON UPDATE" and "AUTO_INCREMENT"
2006-02-22 10:09:59 +01:00
unknown
4f4f20d4e0 MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
remove explicit $<ulong_num>$ from sql_yacc.yy


mysql-test/r/fulltext.result:
  MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
mysql-test/t/fulltext.test:
  MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
2006-02-14 13:19:54 +01:00
unknown
d7becbc2c8 Merge mysql.com:/home/kostja/mysql/mysql-5.0-root
into  mysql.com:/home/kostja/mysql/mysql-5.1-merge


BitKeeper/deleted/.del-ndb_load.result:
  Delete: mysql-test/r/ndb_load.result
BitKeeper/deleted/.del-ndb_load.test:
  Delete: mysql-test/t/ndb_load.test
extra/perror.c:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
mysql-test/r/ndb_blob.result:
  Auto merged
mysql-test/r/sp-code.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
mysql-test/t/sp-destruct.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
  Auto merged
storage/ndb/src/kernel/main.cpp:
  Auto merged
storage/ndb/src/kernel/vm/Configuration.cpp:
  Auto merged
storage/ndb/src/kernel/vm/Configuration.hpp:
  Auto merged
storage/ndb/src/ndbapi/NdbBlob.cpp:
  Auto merged
storage/ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
storage/ndb/tools/delete_all.cpp:
  Auto merged
mysql-test/t/disabled.def:
  Manual merge.
2006-02-09 13:35:59 +03:00
unknown
79f6936d73 Merge april.(none):/home/svoj/devel/mysql/merge/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-5.0


mysql-test/r/fulltext.result:
  Manual merge.
mysql-test/t/fulltext.test:
  Manual merge.
sql/item_func.h:
  Manual merge.
sql/sql_base.cc:
  Manual merge: use local.
2006-02-07 15:30:32 +04:00
unknown
e3c3086304 BUG#14496: Crash or strange results with prepared statement,
MATCH and FULLTEXT
Fixed that fulltext query using PS results in unexpected behaviour
when executed 2 or more times.


mysql-test/r/fulltext.result:
  Testcase for BUG#14496.
mysql-test/t/fulltext.test:
  Testcase for BUG#14496.
sql/item_func.h:
  In Item_func_match::cleanup() always reset ft_handler to 0.
2006-02-01 20:40:12 +04:00
unknown
1d5185d6ec BUG#16722 - Fulltext: implicit limit for query word number (depends on length of the query)
Remove implicit limit for query word number.


mysql-test/r/fulltext.result:
  Reoder results.
storage/myisam/ft_boolean_search.c:
  Remove implicit limit for query word number. Instead compute
  number of elements and allocate exactly needed memory.
2006-01-26 15:12:59 +04:00
unknown
6c83ba5c48 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into  april.(none):/home/svoj/devel/mysql/BUG14194/mysql-5.1-new


mysql-test/r/fulltext.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
2006-01-16 22:27:36 +04:00