Commit graph

37099 commits

Author SHA1 Message Date
unknown
181599582d Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29604
2007-07-11 21:05:09 -07:00
unknown
b1e5568043 Fixed bug #29604.
A bug in the restore_prev_nj_state function allowed interleaving 
inner tables of outer join operations with outer tables. With the
current implementation of the nested loops algorithm it could lead
to wrong result sets for queries with nested outer joins.
Another bug in this procedure effectively blocked evaluation of some
valid execution plans for queries with nested outer joins. 


mysql-test/r/join_nested.result:
  Added a test case for bug #29604.
mysql-test/t/join_nested.test:
  Added a test case for bug #29604.
2007-07-11 18:45:35 -07:00
unknown
db84ffa351 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-12 01:00:30 +05:00
unknown
95a526b87b Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt-29360
2007-07-12 00:58:23 +05:00
unknown
b6e01cbba3 field_conv.cc:
Additional fix for bug #29360.


sql/field_conv.cc:
  Additional fix for bug #29360.
2007-07-12 00:55:40 +05:00
unknown
2b4810030b Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29555-bug-5.0-opt-mysql
2007-07-11 23:37:02 +04:00
unknown
25e28d4d28 Bug#29555: Comparing time values as strings may lead to a wrong result.
Time values were compared as strings. This led to a wrong comparison
result when comparing values one of which is under 100 hours and another is
over 100 hours.

Now when the Arg_comparator::set_cmp_func function sees that both items to
compare are of the TIME type it sets the comparator to the
Arg_comparator::compare_e_int or the Arg_comparator::compare_int_unsigned
functions.


sql/item_cmpfunc.cc:
  Bug#29555: Comparing time values as strings may lead to a wrong result.
  Now when the Arg_comparator::set_cmp_func function sees that both items to
  compare are of the TIME type it sets the comparator to the
  Arg_comparator::compare_e_int or the Arg_comparator::compare_int_unsigned
  functions.
mysql-test/r/type_time.result:
  Added a test case for the bug#29555: Comparing time values as strings may
  lead to a wrong result.
mysql-test/t/type_time.test:
  Added a test case for the bug#29555: Comparing time values as strings may
  lead to a wrong result.
2007-07-11 23:18:02 +04:00
unknown
ad1190ec6c Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29360
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-12 00:15:01 +05:00
unknown
0920c75b5e Fixed bug #29360.
The special `zero' enum value was coerced to the normal
empty string enum value during a field-to-field copy.
This bug affected CREATE ... SELECT statements and
SELECT aggregate GROUP BY enum field statements.

Also this bug made unnecessary warnings during
the execution of CREATE ... SELECT statements:
Warning       1265    Data truncated for column...


sql/field_conv.cc:
  Fixed bug #29360.
  The field_conv function has been modified to properly convert
  the special `zero' enum value between enum fields.
mysql-test/t/type_enum.test:
  Updated test case for bug #29360.
mysql-test/r/type_enum.result:
  Updated test case for bug #29360.
mysql-test/r/type_ranges.result:
  Updated test case for bug #29360.
2007-07-12 00:03:08 +05:00
unknown
2f0e00175b Addendum to bug 29325:
test if TRUNCATE TABLE works with keep_files_on_create
2007-07-11 18:02:47 +03:00
unknown
3881f2a24d fixed uninitialized variable introduced by the fix for bug 29325 2007-07-11 12:37:47 +03:00
unknown
2b1fb350c3 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29325-5.0-opt


include/my_base.h:
  Auto merged
2007-07-11 11:59:46 +03:00
unknown
1abab6c7c7 Bug #29325:
By default MyISAM overwrites .MYD and .MYI files no 
DATA DIRECTORY option is used. This can lead to two tables
using the same .MYD and .MYI files (that can't be dropped).

To prevent CREATE TABLE from overwriting a file a new option
is introduced : keep_files_on_create
When this is on the CREATE TABLE throws an error if either
the .MYD or .MYI exists for a MyISAM table.
The option is off by default (resulting in compatible behavior).


include/my_base.h:
  Bug #29325: introduce keep_files_on_create
myisam/mi_create.c:
  Bug #29325: introduce keep_files_on_create
mysql-test/r/create.result:
  Bug #29325: test case
mysql-test/t/create.test:
  Bug #29325: test case
sql/ha_myisam.cc:
  Bug #29325: introduce keep_files_on_create
sql/set_var.cc:
  Bug #29325: introduce keep_files_on_create
sql/sql_class.h:
  Bug #29325: introduce keep_files_on_create
sql/sql_table.cc:
  Bug #29325: introduce keep_files_on_create
sql/unireg.cc:
  Bug #29325: introduce keep_files_on_create
2007-07-11 10:49:54 +03:00
unknown
3295d449c4 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29070-5.0-opt
2007-07-10 11:58:36 +03:00
unknown
21474cd11e Bug #29469: Client dies if a query is issued after hitting Ctrl + C
The Ctrl-C handler in mysql closes the console while ReadConsole()
waits for console input.
But the main thread was detecting that ReadConsole() haven't read 
anything and was processing as if there're data in the buffer.
Fixed to handle correctly this error condition.
No test case added as the test relies on Ctrl-C sent to the client
from its console.


client/mysql.cc:
  Bug #29469: handle correctly console read error
mysys/my_conio.c:
  Bug #29469: 
   1. handle correctly console read error
   2. add boundry checks for console buffer.
2007-07-10 10:43:12 +03:00
unknown
4f4764cdcb Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29070-5.0-opt
2007-07-10 10:40:49 +03:00
unknown
2ad26498cf Bug #29070: Error in spatial index
1. Threat MBR for a key as double[] and convert it only
when about to store it on disk.
2. Remove the redundant function get_double().


myisam/sp_key.c:
  Bug #29070: 
  1. threat MBR for a key as double[] and convert it only
  when about to store it on disk.
  2. remove the redundant function get_double()
mysql-test/r/gis-rtree.result:
  Bug #29070: test case
mysql-test/t/gis-rtree.test:
  Bug #29070: test case
2007-07-09 17:41:24 +03:00
unknown
25cba45009 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/29461-bug-5.0-opt-mysql
2007-07-09 02:02:18 +04:00
unknown
bfa027e72e Bug#29461: Sort order of the collation wasn't used when comparing characters
with the space character.

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.


mysql-test/t/ctype_collate.test:
  Added a test case for the bug#29461: Sort order of the collation wasn't used when
  comparing characters with the space character.
mysql-test/r/ctype_collate.result:
  Added a test case for the bug#29461: Sort order of the collation wasn't used when
  comparing characters with the space character.
strings/ctype-simple.c:
  Bug#29461: Sort order of the collation wasn't used when comparing characters
  with the space character.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-07-09 01:23:33 +04:00
unknown
f045039d86 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-08 11:46:52 +05:00
unknown
3561de50b1 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29417


mysql-test/r/type_newdecimal.result:
  Manual merge.
mysql-test/t/type_newdecimal.test:
  Manual merge.
2007-07-07 15:45:28 -07:00
unknown
7ec0820b19 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-08 03:40:01 +05:00
unknown
79435f375b Merge gleb.loc:/home/uchum/work/bk/4.1-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-08 03:25:39 +05:00
unknown
0671e30ae6 Fixed bug #29417.
An assertion abort could occur for some grouping queries that employed 
decimal user variables with assignments to them.

The problem appeared the constructors of the class Field_new_decimal
because the function my_decimal_length_to_precision did not guarantee
returning decimal precision not greater than DECIMAL_MAX_PRECISION.


mysql-test/r/type_newdecimal.result:
  Added a test case for bug #29417.
mysql-test/t/type_newdecimal.test:
  Added a test case for bug #29417.
sql/field.cc:
  Fixed bug #29417.
  An assertion abort could occur for some grouping queries that employed 
  decimal user variables with assignments to them.
  
  The problem appeared the constructors of the class Field_new_decimal
  because the function my_decimal_length_to_precision did not guarantee
  returning decimal precision not greater than DECIMAL_MAX_PRECISION.
  
  Now if the precision returned by calls to my_decimal_length_to_precision
  in the constructors of the class Field_new_decimal is greater than 
  DECIMAL_MAX_PRECISION the precision is set to this value.
2007-07-07 12:31:55 -07:00
unknown
16fc3a2771 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/t/innodb_mysql.test:
  Merge with 5.0 (main).
2007-07-08 00:19:31 +05:00
unknown
95e4b2e365 Merge gleb.loc:/home/uchum/work/bk/4.1
into  gleb.loc:/home/uchum/work/bk/4.1-opt
2007-07-08 00:15:53 +05:00
unknown
3756819e4b Fixed bug #29415.
The cast operation ignored the cases when the precision and/or the scale exceeded
the limits, 65 and 30 respectively. No errors were reported in these cases.
For some queries this may lead to an assertion abort.

Fixed by throwing errors for such cases.


mysql-test/r/type_newdecimal.result:
  Added a test case for bug #29415.
mysql-test/t/type_newdecimal.test:
  Added a test case for bug #29415.
2007-07-07 10:33:02 -07:00
unknown
87e1a302c3 Bug #29543 GCov information not written in case of crash.
For GCov builds, if the server crashes, the normal exit handler for writing
coverage information is not executed due to the abnormal termination.

Fix this by explicitly calling the __gcov_flush function in our crash handler.
2007-07-07 07:46:17 +02:00
unknown
b1dce946cc Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0
into  ppcg5.local:/private/Network/Servers/anubis.xiphis.org/home/antony/work/mysql-5.0-engines.merge
2007-07-06 14:29:58 -07:00
unknown
a077186b70 fix test for bug29299 2007-07-06 11:35:10 -07:00
unknown
b0f65c166c Merge ppcg5.local:/private/Network/Servers/anubis.xiphis.org/home/antony/work/mysql-4.1-engines.merge
into  ppcg5.local:/private/Network/Servers/anubis.xiphis.org/home/antony/work/mysql-5.0-engines.merge
2007-07-06 09:02:36 -07:00
unknown
fec6d3f134 Merge anubis.xiphis.org:/usr/home/antony/work/mysql-5.0-engines
into  anubis.xiphis.org:/usr/home/antony/work/mysql-5.0-engines.merge


sql/sql_insert.cc:
  Auto merged
2007-07-06 09:00:40 -07:00
unknown
46943ab628 Merge anubis.xiphis.org:/usr/home/antony/work/mysql-4.1-engines
into  anubis.xiphis.org:/usr/home/antony/work/mysql-4.1-engines.merge
2007-07-06 08:57:18 -07:00
unknown
0b24005753 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  labbari.dsl.inet.fi:/home/my/bk/mysql-5.0-marvel


libmysql/libmysql.c:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Manual merge from main 5.1 to 5.1-marvel.
mysql-test/t/innodb_mysql.test:
  Manual merge from main 5.1 to 5.1-marvel.
2007-07-06 09:51:02 +03:00
unknown
8195a213c2 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29392


sql/item.h:
  Auto merged
2007-07-05 17:39:51 -07:00
unknown
50373d1ae7 Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-07-06 03:49:40 +05:00
unknown
725b49716b Fixed bug #29442.
The SELECT INTO OUTFILE FIELDS ENCLOSED BY digit or minus sign,
followed by the same LOAD DATA INFILE statement, used wrond encoding
of non-string fields contained the enclosed character in their text
representation.

Example:
  SELECT 15, 9 INTO OUTFILE 'text' FIELDS ENCLOSED BY '5';

Old encoded result in the text file:
  5155 595
         ^ was decoded as the 1st enclosing character of the 2nd field;
        ^ was skipped as garbage;
  ^    ^ was decoded as a pair of englosing characters of the 1st field;
      ^   was decoded as traling space of the first field;
    ^^ was decoded as a doubled enclosed character.

New encoded result in the text file:
  51\55 595
  ^   ^ pair of enclosing characters of the 1st field;
    ^^ escaped enclosed character.



sql/sql_class.h:
  Fixed bug #29442.
  The NUMERIC_CHARS macro constant has been defined to enumerate
  all possible characters of a numeric value text representation.
  The select_export::is_unsafe_field_sep boolean flag has been added
  to apply the encoding algorithm to non-string values when it is
  necessary.
sql/sql_class.cc:
  Fixed bug #29442.
  The select_export::send_data method has been modified to encode text
  representation of fields of all data types like string fields.
mysql-test/t/loaddata.test:
  Updated test case for bug #29442.
mysql-test/r/loaddata.result:
  Updated test case for bug #29442.
2007-07-06 03:43:23 +05:00
unknown
6139d34c92 Bug #29166:
AsText() needs to know the maximum number of
characters a IEEE double precision value can
occupy to make sure there's enough buffer space.
The number was too small to hold all possible
values and this caused buffer overruns.
Fixed by correcting the calculation of the 
maximum digits in a string representation of an
IEEE double precision value as printed by 
String::qs_append(double).


mysql-test/r/gis.result:
  Bug #29166: test case
mysql-test/t/gis.test:
  Bug #29166: test case
sql/spatial.cc:
  Bug #29166: correct calculation of the maximum digits in
  a string representation of a double
2007-07-05 18:24:48 +03:00
unknown
dc308c5147 Merge mysql.com:/home/svoj/devel/mysql/BUG27564/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG27564/mysql-5.0-engines


mysys/hash.c:
  Auto merged
2007-07-05 11:45:58 +05:00
unknown
b7bf972585 BUG#27564 - Valgrind: UDF does not cleanup correctly
Dropping an user defined function may cause server crash in
case this function is still in use by another thread.

The problem was that our hash implementation didn't update
hash link list properly when hash_update() was called.


mysys/hash.c:
  The following requirement wasn't met by hash_update() function
  causing corruption of hash links list:
  
  After a record was unlinked from the old chain during update, it
  holds random position. By the chance this position is equal to
  position for the first element in the new chain. That means
  updated record is the only record in the new chain.
2007-07-05 11:45:14 +05:00
unknown
5d88b654ed Fixed bug #29392.
This bug may manifest itself for select queries over a multi-table view
that includes an ORDER BY clause in its definition. If the select list of 
the query contains references to the same view column with different
aliases the names of the columns in the result output will be nevertheless
the same, coinciding with one of the alias.

The bug happened because the method Item_ref::get_tmp_table_item that
was inherited by the class Item_direct_view_ref ignored the fact that
the name of the view column reference must be inherited by the fields
of the temporary table that was created in order to get the result rows
sorted.


mysql-test/r/view.result:
  Added a test case for bug #29392.
mysql-test/t/view.test:
  Added a test case for bug #29392.
sql/item.h:
  Fixed bug #29392.
  This bug may manifest itself for select queries over a multi-table view
  that includes an ORDER BY clause in its definition. If the select list of 
  the query contains references to the same view column with different
  aliases the names of the columns in the result output will be nevertheless
  the same, coinciding with one of the alias.
  
  The bug happened because the method Item_ref::get_tmp_table_item that
  was inherited by the class Item_direct_view_ref ignored the fact that
  the name of the view column reference must be inherited by the fields
  of the temporary table that was created in order to get the result rows
  sorted.
  
  Fixed by providing a proper implementation of the get_tmp_table_item 
  method for the Item_direct_view_ref class.
2007-07-04 21:12:07 -07:00
unknown
e0f93ca8c1 Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_class.h:
  Auto merged
2007-07-05 03:34:56 +05:00
unknown
e2ccd8f849 Backport from 5.2: Fix valgrind failure: Don't access item_func->arguments()
if item_func->argument_count()==0
2007-07-04 17:11:56 +04:00
unknown
8d035c57f0 loaddata.result, loaddata.test:
Updated test case for bug #29294.


mysql-test/t/loaddata.test:
  Updated test case for bug #29294.
mysql-test/r/loaddata.result:
  Updated test case for bug #29294.
2007-07-04 03:15:37 +05:00
unknown
c700a77623 Merge gleb.loc:/home/uchum/work/bk/4.1-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt


sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
mysql-test/r/loaddata.result:
  Merge with 4.1-opt.
mysql-test/t/loaddata.test:
  Merge with 4.1-opt.
2007-07-04 02:09:56 +05:00
unknown
f57e4b99e7 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
unknown
bc3e008688 loaddata.result, loaddata.test:
Test case update for bug #29294.


mysql-test/t/loaddata.test:
  Test case update for bug #29294.
mysql-test/r/loaddata.result:
  Test case update for bug #29294.
2007-07-03 21:45:20 +05:00
unknown
19a5d20ce3 sql_class.cc:
Windows compilation error fix.


sql/sql_class.cc:
  Windows compilation error fix.
2007-07-03 21:05:17 +05:00
unknown
166d3c9186 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.


sql/sql_class.h:
  Fixed bug #29294.
  The ESCAPE_CHARS macro constant is defined to enumerate
  symbolic names of espace-sequences like  '\n', '\t' etc.
  The select_export::is_ambiguous_field_sep field has been added
  to distinguish special values of the field_sep field from
  another values (see ESCAPE_CHARS).
sql/sql_class.cc:
  Fixed bug #29294.
  The select_export::send_data method has been modified to
  encode special values of the field_sep field by
  doubling of those values instead of prepending them with a
  value of the escape_char field.
  Example: The SELECT 'r' INTO OUTFILE FIELDS ENCLOSED BY 'r'
  now produces the 'rr' output string instead of x'5c72'
  (i.e. instead of sequence of 2 bytes: \ and r).
sql/sql_load.cc:
  Fixed bug #29294.
  Added commentary for the READ_INFO::unescape method.
mysql-test/t/loaddata.test:
  Updated test case for bug #29294.
mysql-test/r/loaddata.result:
  Updated test case for bug #29294.
2007-07-03 19:37:46 +05:00
unknown
7edcebc97a Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  mysql.com:/home/bar/mysql-work/mysql-5.0.b27345
2007-07-03 13:58:19 +05:00