Commit graph

37329 commits

Author SHA1 Message Date
unknown
0407c21a15 Merge chilla.local:/home/mydev/mysql-5.0-amain
into  chilla.local:/home/mydev/mysql-5.0-axmrg


sql/sql_insert.cc:
  Auto merged
2007-07-05 11:35:04 +02:00
unknown
0d8f353b93 Fix for bug #29420: crash with show and purge binlogs
Problem: in case of failed 'show binlog events...' we don't inform that 
the log is not in use anymore. That may confuse following 'purge logs...'
command as it takes into account logs in use.

Fix: always notify that the log is not in use anymore.


mysql-test/r/rpl_rotate_logs.result:
  Fix for bug #29420: crash with show and purge binlogs
    - test result.
mysql-test/t/rpl_rotate_logs.test:
  Fix for bug #29420: crash with show and purge binlogs
    - test case.
sql/sql_repl.cc:
  Fix for bug #29420: crash with show and purge binlogs
    - always zero thd->current_linfo at the end of the mysql_show_binlog_events().
2007-07-05 13:09:56 +05:00
unknown
e8966deecc A fix and a test case for Bug#29050 Creation of a legal stored procedure
fails if a database is not selected prior.

The problem manifested itself when a user tried to
create a routine that had non-fully-qualified identifiers in its bodies
and there was no current database selected.

This is a regression introduced by the fix for Bug 19022:

The patch for Bug 19022 changes the code to always produce a warning
if we can't resolve the current database in the parser. 
In this case this was not necessary, since even though the produced
parsed tree was incorrect, we never re-use sphead
that was obtained at first parsing of CREATE PROCEDURE.
The sphead that is anyhow used is always obtained through db_load_routine,
and there we change the current database to sphead->m_db before
calling yyparse.

The idea of the fix is to resolve the current database directly using 
lex->sphead->m_db member when parsing a stored routine body, when
such is present.

This patch removes the need to reset the current database
when loading a trigger or routine definition into SP cache.
The redundant code will be removed in 5.1.


mysql-test/r/sp.result:
  Update test results (Bug#29050)
mysql-test/r/trigger.result:
  Update results.
mysql-test/t/sp.test:
  Add a test case for Bug#29050
mysql-test/t/trigger.test:
  Fix wrong behavior covered with tests.
sql/sql_lex.cc:
  Implement st_lex::copy_db_to().
sql/sql_lex.h:
  Declare st_lex::copy_db_to().
sql/sql_parse.cc:
  Use st_lex::copy_db_to() in add_table_to_list, rather than
  THD::copy_db_to(). The former will use the database of the sphead,
  if we're parsing a stored routine, not the default database in
  THD. The default database is needed to initialize tables->db
  when the database part was not explicitly specified in the identifier.
sql/sql_yacc.yy:
  Use st_lex::copy_db_to() in the parser, rather than
  THD::copy_db_to(). The former will use the database of the sphead,
  if we're parsing a stored routine, not the default database in
  THD.
2007-07-05 11:34:04 +04: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
32bdbc6d85 Printing copyright into ctype-extra.c 2007-07-05 11:36:31 +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
b1ec3b534d A fix and a teset case for Bug#28551 The warning
'No database selected' is reported when calling stored procedures

Remove the offending warning introduced by the fix for Bug
25082
This minimal patch relies on the intrinsic knowledge of the fact that
mysql_change_db is never called with 'force_switch' set to TRUE
when such a warning may be needed:
 * every stored routine belongs to a database (unlike, e.g., a 
user defined function, which does not), so if we're activating the
database of a stored routine, it can never be NULL.
Therefore, this branch is never called for activation.
 * if we're restoring the 'old' current database after routine
execution is complete, we should not issue a warning, since it's OK to 
call a routine without having previously selected the current database.

TODO: 'force_switch' is an ambiguous flag, since we do not actually
have to 'force' the switch in case of stored routines at all.
When we activate the routine's database, we should perform
all the checks as in case of 'use db', and so we already do (in this
case 'force_switch' is unused).
When we load a routine into cache, we should not use mysql_change_db
at all, since there it's enough to call thd->reset_db(). We
do it this way for triggers, but code for routines is different (wrongly). 

TODO: bugs are lurking in replication, since it bypasses mysql_change_db
and calls thd->[re_]set_db to set the current database.
The latter does not change thd->db_charset, thd->sctx->db_access
and thd->variables.collation_database (and this may have nasty side
effects).

These todo items are to be addressed in a separate patch, if at all.


mysql-test/r/sp.result:
  Update results (Bug#28551)
mysql-test/t/sp.test:
  Add a test case (Bug#28551)
sql/sp.cc:
  Remove an obsolete comment.
  Replace a check with an assert.
sql/sql_db.cc:
  Remove the offending warning introduced by the fix for Bug
  25082
  This minimal patch relies on the intrinsic knowledge of the fact that
  mysql_change_db is never called with 'force_switch' set to TRUE
  when such a warning may be needed.
2007-07-05 02:20:32 +04:00
unknown
0b5daef995 Merge maint1.mysql.com:/data/localhome/tsmith/bk/maint/41
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
2007-07-04 23:42:51 +02:00
unknown
87675bcdce Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
2007-07-04 22:42:31 +02:00
unknown
7ebebf5e27 ndb - bug#29354 - fix bug in bug fix,
dont assert if 2 LCP's are being run during a node recovery
2007-07-04 22:39:55 +02:00
unknown
8d2d15203f Merge maint1.mysql.com:/data/localhome/tsmith/bk/50
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/50
2007-07-04 21:24:32 +02:00
unknown
1b827e0399 Merge maint1.mysql.com:/data/localhome/tsmith/bk/41
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/41
2007-07-04 21:22:35 +02:00
unknown
2d1d0efc41 Merge lzhou@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj
into  dev3-63.(none):/home/zhl/mysql/mysql-5.0/bug25941
2007-07-04 17:59:12 +00: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
8e871c1a39 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  mysql.com:/home/bar/mysql-work/mysql-5.0.b29484
2007-07-04 17:04:41 +05:00
unknown
b93e2536b6 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  mysql.com:/home/bar/mysql-work/mysql-5.0.b29382
2007-07-04 16:40:11 +05:00
unknown
3b1fefbf14 Bug#29333 myisam corruption with character set cp932 collate cp932_japanese_ci
Problem: wrong comparison with trailing space.
  This problem was fixed for all other character sets under terms of
  bug 7788 ""Table is full" occurs during a multitable update".
  ctype-cp932.c was forgotten.
  Fix: applying the same fix for ctype-cp932.c.
  (see ctype-sjis.c as an example of a previously correctly fixed file)


mysql-test/r/ctype_cp932.result:
  Adding test
mysql-test/t/ctype_cp932.test:
  Adding test
strings/ctype-cp932.c:
  Applying the same fix which was done for all other
      character sets under terms of bug 7788.
strings/ctype-utf8.c:
  Fixing the same problem for utf8_general_cs,
  which was forgotten in bug 7788 as well.
2007-07-04 16:17:40 +05:00
unknown
89a9835b71 Bug#29382 Collation 'utf8_test_ci' not found in tests
Problem: "mysql-test-run ctype_ldml" failed in binary
distributions because mysql-test/std_data/Index.xml
was included into distribution.
Fix: adding missing file.


scripts/make_binary_distribution.sh:
  Adding missing file into distribution
2007-07-04 14:53:08 +05:00
unknown
d64e738396 Bug#29484 ctype_big5 fails on 'double whopper' in mysql-5.1-new-rpl
Problem: "mysqldump" doesn exists when running "mysql-test-run --embedded-server".
Fix: changing test to use "SELECT INTO OUTFILE" instead of "mysqldump -T".


mysql-test/r/ctype_big5.result:
  Fixing tests to use "SELECT INTO OUTFILE" instead of "mysqldump -T"
mysql-test/t/ctype_big5.test:
  Fixing tests to use "SELECT INTO OUTFILE" instead of "mysqldump -T"
2007-07-04 14:21:29 +05:00
unknown
de82433c20 Bug#29499 Converting 'del' from ascii to Unicode results in 'question mark'
mysql-test/r/ctype_latin1.result:
  Adding tests
mysql-test/r/ctype_ucs.result:
  Adding tests
mysql-test/t/ctype_latin1.test:
  Adding tests
mysql-test/t/ctype_ucs.test:
  Adding tests
sql/share/charsets/ascii.xml:
  Changing mapping of 0x7F from "unassigned" to U+007F.
strings/ctype-extra.c:
  Regenerating ctype-extra.c from new ascii.xml
2007-07-04 12:04:57 +05: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
unknown
81194444f8 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
unknown
841cf40532 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.


sql/log.cc:
  Bug #28983: 
  can't reliably check if bin_log is open outside of its mutex
2007-07-03 10:36:37 +03:00
unknown
2a511057fe Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
2007-07-03 08:46:41 +02:00
unknown
d55ca61738 ndb - bug#29354 - Incorrect handling of replica REDO during SR (5.0)
Not very clever fix for DIH incorrect REDO handling
  - Dont report GCP_SAVE_CONF until first LCP has been complete during NR


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Not very clever fix for DIH incorrect REDO handling
    - Dont report GCP_SAVE_CONF until first LCP has been complete during NR
2007-07-03 08:39:42 +02:00
unknown
416a49a669 Bug#24924 shared-memory-base-name that is too long causes buffer overflow
- Testcase fixup.


mysql-test/t/windows_shm.test:
  Bug#24924 shared-memory-base-name that is too long causes buffer overflow
  - Pass user, port and host to mysqladmin.
2007-07-02 14:22:03 -04:00
unknown
b0696f5457 Fix testcase to be platform-independent 2007-07-02 22:18:41 +04:00
unknown
e24a757af9 Merge mysql.com:/nfsdisk1/lars/bk/mysql-4.1-rpl
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl
2007-07-02 17:46:48 +02:00
unknown
c68336b15a Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl


sql/sql_yacc.yy:
  Auto merged
2007-07-02 17:02:01 +02:00
unknown
4794cca717 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb


ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
  merge
ndb/test/run-test/daily-basic-tests.txt:
  merge
2007-07-02 14:19:15 +02:00
unknown
f83a63ad48 ndb - bug#29364 - "SQL queries hang while data node in start phase 5"
In TC init node status for already started nodes during node restart
  (not present in 5.1)


ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  on node restart, make sure to init all already started nodes to NF_STARTED
ndb/test/ndbapi/testNodeRestart.cpp:
  test prg
ndb/test/run-test/daily-basic-tests.txt:
  test prg
2007-07-02 13:45:24 +02:00
unknown
2b09b6c57c Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


sql/item_sum.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-07-02 13:22:23 +02:00
unknown
a00a7e806f Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-4.1-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-4.1-merge
2007-07-02 13:21:13 +02:00
unknown
a9b675e200 Merge mysql.com:/home/svoj/devel/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29299/mysql-5.0-engines
2007-07-02 12:31:34 +05:00
unknown
68e1f851ed Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
minor fixes to appease pushbuild.


mysql-test/r/binlog.result:
  Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
  
  make test portable so it will work on servers with
  funny names.
mysql-test/t/binlog.test:
  Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
  
  make test portable so it will work on servers with
  funny names.
sql/log.cc:
  Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
  
  change type to uchar * so it's the same as in 5.1.
2007-07-02 07:13:40 +02:00
unknown
07dcc80023 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. 


mysql-test/r/innodb_mysql.result:
  Added a test case for bug #25798.
mysql-test/t/innodb_mysql.test:
  Added a test case for bug #25798.
sql/filesort.cc:
  Fixed bug #25798.
  The function merge_buffers() when called from the Uniques::get method
  must use function buffpek_compare to compare elements in the queue it
  employs. The pointer to buffpek_compare and the info for the function
  that compares sorted records are passed to merge_buffers through certain 
  designated fields of the SORTPARAM structure.
sql/sql_sort.h:
  Fixed bug #25798.
  Added fields to the SORTPARAM structure to be used in the function 
  merge_buffers when called by the Uniques::get method.
sql/uniques.cc:
  Fixed bug 25798.
  The function merge_buffers() when called from the Uniques::get method
  must use function buffpek_compare to compare elements in the queue it
  employes.
2007-07-01 15:33:28 -07:00
unknown
c182dfa240 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime


sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-07-02 02:01:05 +04:00
unknown
2e81ee13e0 Update a missed test result.
mysql-test/r/ps_6bdb.result:
  Update test results (character sets patch).
2007-07-02 01:28:20 +04:00
unknown
8dcd5fca69 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/type_enum.result:
  Auto merged
mysql-test/t/type_enum.test:
  Auto merged
sql/field_conv.cc:
  SCCS merged
2007-06-30 16:24:09 -07:00
unknown
ffe19f62eb Merge synthia.local:/home/mydev/mysql-5.0-ateam
into  synthia.local:/home/mydev/mysql-5.0-axmrg
2007-06-30 08:18:27 +02:00
unknown
0b0cef486d Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  sin.intern.azundris.com:/home/tnurnberg/22540/50-22540
2007-06-30 03:41:31 +02:00
unknown
59ab2d4612 Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
previous correction didn't. make sure "tail" is fixed up
when filling cache several times; rework formulae.


mysql-test/r/binlog.result:
  Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
  
  show that fix for absolute end_log_pos in binlog also
  works when cache is read several times and headers are
  split across that boundary
mysql-test/t/binlog.test:
  Bug#22540: Incorrect value in column End_log_pos of SHOW BINLOG EVENTS using InnoDB
  
  show that fix for absolute end_log_pos in binlog also
  works when cache is read several times and headers are
  split across that boundary
2007-06-30 02:30:42 +02:00