Commit graph

47969 commits

Author SHA1 Message Date
gkodinov/kgeorge@magare.gmz
66bfc21362 Merge magare.gmz:/home/kgeorge/mysql/work/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt
2007-07-04 11:46:45 +03:00
gshchepa/uchum@gleb.loc
79622efe7c loaddata.result, loaddata.test:
Updated test case for bug #29294.
2007-07-04 03:15:37 +05:00
gshchepa/uchum@gleb.loc
4269994622 Merge gleb.loc:/home/uchum/work/bk/4.1-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-04 02:09:56 +05:00
gshchepa/uchum@gleb.loc
0e8292c97c Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  gleb.loc:/home/uchum/work/bk/4.1-opt
2007-07-03 21:48:52 +05:00
gshchepa/uchum@gleb.loc
1f85dac21c loaddata.result, loaddata.test:
Test case update for bug #29294.
2007-07-03 21:45:20 +05:00
gshchepa/uchum@gleb.loc
5f5929846b sql_class.cc:
Windows compilation error fix.
2007-07-03 21:05:17 +05:00
gshchepa/uchum@gleb.loc
dbe4fb94ca Fixed bug #29294.
The `SELECT 'r' INTO OUTFILE ... FIELDS ENCLOSED BY 'r' ' statement
encoded the 'r' string to a 4 byte string of value x'725c7272'
(sequence of 4 characters: r\rr).
The LOAD DATA statement decoded this string to a 1 byte string of
value x'0d' (ASCII Carriage Return character) instead of the original
'r' character.
The same error also happened with the FIELDS ENCLOSED BY clause
followed by special characters: 'n', 't', 'r', 'b', '0', 'Z' and 'N'.

NOTE 1: This is a result of the undocumented feature: the LOAD DATA INFILE
recognises 2-byte input sequences like \n, \t, \r and \Z in addition
to documented 2-byte sequences: \0 and \N. This feature should be
documented (here backspace character is a default ESCAPED BY character,
in the real-life example it may be any ESCAPED BY character).

NOTE 2, changed behaviour:
Now the `SELECT INTO OUTFILE' statement with the `FIELDS ENCLOSED BY'
clause followed by one of: 'n', 't', 'r', 'b', '0', 'Z' or 'N' characters
encodes this special character itself by doubling it ('r' --> 'rr'),
not by prepending it with an escape character.
2007-07-03 19:37:46 +05:00
gkodinov/kgeorge@magare.gmz
248650120c Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28983-2-5.0-opt
2007-07-03 10:40:31 +03:00
gkodinov/kgeorge@magare.gmz
bad7900a5a Bug #28983: 'reset master' in multiple threads and innodb tables
asserts debug binary

We can't reliably check if the binary log is opened without 
acquiring its mutex. 
Fixed by removing this check.
2007-07-03 10:36:37 +03:00
sergefp@mysql.com
de0cf5d22f Fix testcase to be platform-independent 2007-07-02 22:18:41 +04:00
mikael@dator6.(none)
da7e78cead removed test case no longer supported 2007-07-02 20:11:54 +02:00
mikael@dator6.(none)
8ccd9ee981 Merge dator6.(none):/home/mikael/mysql_clones/mysql-5.1-opt
into  dator6.(none):/home/mikael/mysql_clones/bug18198
2007-07-02 18:08:27 +02:00
igor@olga.mysql.com
f8683bfb44 Fixed bug #25798.
This bug may manifest itself not only with the queries for which
the index-merge access method is chosen. It also may display
itself for queries with DISTINCT.

The bug was in how the Unique::get method used the merge_buffers
function. To compare elements in the the queue employed by
merge_buffers() it must use the buffpek_compare function rather
than the function for binary comparison.
2007-07-01 15:33:28 -07:00
igor@olga.mysql.com
2efac22463 Corrected a test case. 2007-07-01 11:00:29 -07:00
igor@olga.mysql.com
eea7dd0a77 Made test case platform independent. 2007-07-01 01:59:05 -07:00
igor@olga.mysql.com
f93f44e739 Post-merge fix. 2007-06-30 22:50:14 -07:00
igor@olga.mysql.com
259fdbf9ca Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt
2007-06-30 20:49:28 -07:00
igor@olga.mysql.com
38deea2496 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-06-30 16:24:09 -07:00
gkodinov/kgeorge@magare.gmz
fdf2d7c24f Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29157-5.1-opt
2007-06-30 17:16:20 +03:00
gshchepa/uchum@gleb.loc
3b8b31b0be Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29205
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-06-30 02:47:22 +05:00
gshchepa/uchum@gleb.loc
3c260e4a9a Fixed bug #29205.
When a UNION statement forced conversion of an UTF8
charset value to a binary charset value, the byte
length of the result values was truncated to the
CHAR_LENGTH of the original UTF8 value.
2007-06-30 02:09:50 +05:00
evgen@moonbone.local
1f118574f2 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29261-bug-5.0-opt-mysql
2007-06-29 22:22:05 +04:00
evgen@moonbone.local
fc601d775f Bug#29261: Sort order of the collation wasn't used when comparing trailing
spaces.

When the my_strnncollsp_simple function compares two strings and one is a prefix
of another then this function compares characters in the rest of longer key
with the space character to find whether the longer key is greater or less.
But the sort order of the collation isn't used in this comparison. This may
lead to a wrong comparison result, wrongly created index or wrong order of the
result set of a query with the ORDER BY clause.

Now the my_strnncollsp_simple function uses collation sort order to compare
the characters in the rest of longer key with the space character.
2007-06-29 22:13:33 +04:00
gkodinov/kgeorge@magare.gmz
9a9263a380 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27333-gcov-5.0-opt
2007-06-29 11:05:59 +03:00
gkodinov/kgeorge@magare.gmz
38172240e3 Bug#27333: subquery grouped for aggregate of outer
query / no aggregate of subquery
 The optimizer counts the aggregate functions that 
 appear as top level expressions (in all_fields) in 
 the current subquery. Later it makes a list of these
 that it uses to actually execute the aggregates in
 end_send_group().
 That count is used in several places as a flag whether
 there are aggregates functions.
 While collecting the above info it must not consider
 aggregates that are not aggregated in the current 
 context. It must treat them as normal expressions 
 instead. Not doing that leads to incorrect data about
 the query, e.g. running a query that actually has no
 aggregate functions as if it has some (and hence is
 expected to return only one row).
 Fixed by ignoring the aggregates that are not aggregated
 in the current context. 
 One other smaller omission discovered and fixed in the 
 process : the place of aggregation was not calculated for
 user defined functions. Fixed by calling 
 Item_sum::init_sum_func_check() and 
 Item_sum::check_sum_func() as it's done for the rest of 
 the aggregate functions.
2007-06-29 10:39:17 +03:00
holyfoot/hf@hfmain.(none)
6413c24826 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/29247/my51-29247
2007-06-29 10:51:42 +05:00
holyfoot/hf@hfmain.(none)
2fafcb1e53 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/29247/my50-29247
2007-06-29 10:50:56 +05:00
holyfoot/hf@hfmain.(none)
cb7efcad2b Merge mysql.com:/home/hf/work/29252/my51-29252
into  mysql.com:/home/hf/work/29247/my51-29247
2007-06-29 10:49:45 +05:00
holyfoot/hf@hfmain.(none)
2834a07bcd Merge mysql.com:/home/hf/work/29247/my50-29247
into  mysql.com:/home/hf/work/29247/my51-29247
2007-06-29 10:48:12 +05:00
gkodinov/kgeorge@magare.gmz
71aaf52a2f Bug #29157: UPDATE, changed rows incorrect
Sometimes the number of really updated rows (with changed
column values) cannot be determined at the server level
alone (e.g. if the storage engine does not return enough
column values to verify that). So the only dependable way
in such cases is to let the storage engine return that
information if possible.
Fixed the bug at server level by providing a way for the 
storage engine to return information about wether it 
actually updated the row or the old and the new column 
values are the same. It can do that by returning 
HA_ERR_RECORD_IS_THE_SAME in ha_update_row().
Note that each storage engine may choose not to try to
return this status code, so this behaviour remains 
storage engine specific.
2007-06-28 16:07:55 +03:00
gkodinov/kgeorge@magare.gmz
48223dfc6b Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26564-5.1-opt
2007-06-28 12:46:03 +03:00
holyfoot/hf@mysql.com/hfmain.(none)
be9257966d events_bugs.test didn't remove all the objects it created
what caused some consequitive tests failures
2007-06-28 13:34:39 +05:00
gkodinov/kgeorge@magare.gmz
49a52fe55a Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26642-5.0-opt
2007-06-28 09:27:27 +03:00
holyfoot/hf@hfmain.(none)
960f8c02c8 Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/29156/my51-29156
2007-06-27 19:11:47 +05:00
mhansson@dl145s.mysql.com
a90ff73738 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/dev/shm/mhansson/my50-bug28677
2007-06-27 14:02:32 +02:00
gkodinov/kgeorge@magare.gmz
0b421fad4a Bug #26642: create index corrupts table definition in .frm
Thanks to Martin Friebe for finding and submitting a fix for this bug!
  
  A table with maximum number of key segments and maximum length key name
  would have a corrupted .frm file, due to an incorrect calculation of the
  complete key length.  Now the key length is computed correctly (I hope) :-)
  
  MyISAM would reject a table with the maximum number of keys and the maximum
  number of key segments in all keys.  It would allow one less than this total
  maximum.  Now MyISAM accepts a table defined with the maximum.  (This is a
  very minor issue.)
2007-06-27 14:35:49 +03:00
holyfoot/hf@mysql.com/hfmain.(none)
8f7cc6997a Bug #29156 events crash server in test suite
don't free thd->lex->sphead if we didn't do lex_start(),
as we can have garbage there
2007-06-27 11:06:37 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
fd93b7b605 rpl_partition.test fixed 2007-06-27 09:58:58 +05:00
igor@olga.mysql.com
6a4b2343db Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29087
2007-06-26 16:37:02 -07:00
gshchepa/uchum@gleb.loc
f8bf427ba4 Fixed bug #29251.
Sometimes special 0 ENUM values was ALTERed to normal
empty string ENUM values.

Special 0 ENUM value has the same string representation
as normal ENUM value defined as '' (empty string).
The do_field_string function was used to convert
ENUM data at an ALTER TABLE request, but this
function doesn't care about numerical "indices" of
ENUM values, i.e. do_field_string doesn't distinguish
a special 0 value from an empty string value.

A new copy function called do_field_enum has been added to
copy special 0 ENUM values without conversion to an empty
string.
2007-06-27 03:41:50 +05:00
holyfoot/hf@hfmain.(none)
656ce8b584 Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/hf/work/28430/my51-28430
2007-06-26 15:37:24 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
0332e803bd Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
In the ha_partition::position we don't calculate the number of
the partition of the record. We use m_last_part_value instead relying on
that it is set in other place like previous calls of ::write_row().
In replication we do neither of these calls before ::position().
Delete_row_log_event::do_exec_row calls find_and_fetch_row() where
we used position() & rnd_pos() calls to find the record for the
PARTITION/INNODB table as it posesses InnoDB table flags.
Fixed by removing HA_PRIMARY_KEY_REQUIRED_FOR_POSITION flag from PARTITION
2007-06-26 15:36:38 +05:00
gkodinov/kgeorge@magare.gmz
8209199c28 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29154-5.0-opt
2007-06-26 10:49:21 +03:00
mhansson@dl145s.mysql.com
dca6539f07 Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  dl145s.mysql.com:/dev/shm/mhansson/my51-bug28677
2007-06-26 09:31:12 +02:00
igor@olga.mysql.com
6f98ec66b6 Fixed bug #29087. This bug manifested itself for queries that performed
a lookup into a BINARY index by a key ended with spaces. It caused
an assertion abort for a debug version and wrong results for non-debug
versions.

The problem occurred because the function _mi_pack_key stripped off 
the trailing spaces from binary search keys while the function _mi_make_key
did not do it when keys were inserted into the index.

Now the function _mi_pack_key does not remove the trailing spaces from
search keys if they are of the binary type.
2007-06-25 22:44:22 -07:00
gkodinov/kgeorge@magare.gmz
9affe65211 Bug #26564: Windows implementation of pthread_join crashes
MySQL uses _beginthread()/_endthread() instead of 
_beginthreadex()/_endthreadex() to create/end its threads
on Windows.
According to MSDN  _endthread() does close the thread handle.
So there's no need the handle to be closed explicitly.
Besides : WaitForSingleObject(, INFINITE) != WAIT_OBJECT_0) is
true for all practical cases as the other two possible return 
codes (according to MSDN) cannot happen in that case the 
CloseHandle() was actually a dead code.
Fixed by removing the CloseHandle() call. No test case added
because it's not possible to test for absence of dead code.
2007-06-25 19:21:18 +03:00
gshchepa/uchum@gleb.loc
39e900e53e Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-06-25 18:59:09 +05:00
gshchepa/uchum@gleb.loc
5c7b01dc20 Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-06-25 18:55:06 +05:00
jbruehe/mysqldev@mysql.com/production.mysql.com
5651ce23d4 Raise version number after cloning 5.1.20-beta 2007-06-25 15:04:31 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
43e0e17ae6 Bug #29247 Double free in libmysqlclient_r when mysql restarted.
If one sets MYSQL_READ_DEFAULTS_FILE and MYSQL_READ_DEFAULT_GROUP options
after mysql_real_connect() called with that MYSQL instance,
these options will affect next mysql_reconnect then.
As we use a copy of the original MYSQL object inside mysql_reconnect,
and mysql_real_connect frees options.my_cnf_file and _group strings,
we will free these twice when we execute mysql_reconnect with the
same MYSQL for the second time.

I don't think we should ever read defaults files handling mysql_reconnect.
So i just set them to 0 for the temporary MYSQL object there/
2007-06-25 16:40:29 +05:00