Commit graph

54890 commits

Author SHA1 Message Date
Chad MILLER
1fd6774b3d Merge fix for Bug#35754. 2008-10-03 11:54:22 -04:00
Chad MILLER
aa1a69222f Merge fix for Bug#35754. 2008-10-03 10:19:02 -04:00
Andrei Elkin
48a40e2ee5 merge with the main 5.1-bugteam 2008-10-03 15:35:34 +03:00
Davi Arnaut
30d46cac5a Bug#37481: status.test fails randomly
The problem was that the test was trying to obtain a lock on
a table in one connection without ensuring that a insert which
was executed in another connection had released the lock on the
same table.

The solution is to add a dummy select query after the insert to
ensure that the table is unlocked and closed by the time it tries
to lock it again. This is enough to prevent test failures described
in the bug report. As an extra safety measure, concurrent inserts
are disabled.

Remove comments that calculated the Table_locks_immediate. This
value is not tested anymore and it's calculation did not reflect
the actual value.

mysql-test/r/status.result:
  Update test case result.
mysql-test/t/status.test:
  Issue a dummy select to ensure that tables are unlocked after a
  insert and disable concurrent inserts as a extra-safety.
2008-10-03 08:40:45 -03:00
Davi Arnaut
b0e03c1311 Wrap function used for debugging with the DBUG_OFF condition.
Function uses a variable only available under debug mode.
2008-10-03 08:16:58 -03:00
Andrei Elkin
b41e081805 Bug #28786 binlog_killed.test fails: 'reset master' does not reset binlogging
The test failed originally -- did not reset binlogging - for the reason
identified by bug@15580.
However it never can be run on the embedded platfrom for yet another cause -
the embedded can not KILL query.
      
Comments added to the test particularly relating `reset master'
to the mentioned bug.

mysql-test/suite/binlog/t/binlog_killed.test:
  adding commets explaining why the test has to have include/not_embedded.inc guard.
2008-10-03 10:53:33 +03:00
Davi Arnaut
6cf143a2af Merge from main branch. 2008-10-02 16:23:40 -03:00
Davi Arnaut
5b1afb9b9a Remove usage of the _db_strict_keyword_ in favor of the more reliable
DBUG_EXECUTE_IF macro. The usage of the former caused breakage in other
trees as it got removed from the dbug library.

sql/sql_base.cc:
  Rework code to remove unreliable usage of _db_script_keyword_.
2008-10-02 16:13:42 -03:00
Vladislav Vaintroub
e7b5c1e750 merge fix for 38629 from 5.0 2008-10-02 17:56:29 +02:00
Vladislav Vaintroub
f140575e8a merge 2008-10-02 17:48:37 +02:00
Vladislav Vaintroub
42e48bc46d Bug #38629
mysql-test-run.pl --start-and-exit starts but does not exit
Instead, it hangs with ActiveState perl. The error is
believed to be a bug in ActiveState implementation.
Workaround is using POSIX::_exit, as described here
http://www.perlmonks.org/?node_id=334610

Thanks to Philip Stoev for the idea of the patch.
2008-10-02 16:29:41 +02:00
Sergey Glukhov
46087eaf25 5.0->5.1 bugteam merge
mysql-test/r/create.result:
  automerge
mysql-test/t/create.test:
  automerge
sql/mysql_priv.h:
  manual merge
sql/sql_parse.cc:
  manual merge
sql/sql_yacc.yy:
  manual merge
2008-10-02 17:53:08 +05:00
Sergey Glukhov
d51e2c0760 Bug#35924 DEFINER should be stored 'quoted' in I_S
The '@' symbol can not be used in the host name according to rfc952.
The fix:
added function check_host_name(LEX_STRING *str)
which checks that all symbols in host name string are valid and
host name length is not more than max host name length
(just moved check_string_length() function from the parser into check_host_name()).


mysql-test/r/create.result:
  test result
mysql-test/t/create.test:
  test case
sql/mysql_priv.h:
  added function check_host_name(LEX_STRING *str)
sql/sql_parse.cc:
  added function check_host_name(LEX_STRING *str)
  which checks that all symbols in host name string are valid and
  host name length is not more than max host name length(HOSTNAME_LENGTH).
sql/sql_yacc.yy:
  using newly added function check_host_name()
2008-10-02 16:57:52 +05:00
Sergey Glukhov
aff5670aca automerge 2008-10-02 16:22:24 +05:00
Sergey Glukhov
4735aaea70 automerge 2008-10-02 15:08:15 +05:00
Sergey Glukhov
7e60f71001 Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWS
The problem:
I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL
privileges for a view. It leads to discrepancy between SHOW CREATE VIEW
and I_S.VIEWS.
The fix:
added appropriate check.


mysql-test/r/information_schema_db.result:
  test result
mysql-test/t/information_schema_db.test:
  test case
sql/sql_show.cc:
  The problem:
  I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL
  privileges for a view. It leads to discrepancy between SHOW CREATE VIEW
  and I_S.VIEWS.
  The fix:
  added appropriate check.
2008-10-02 14:37:07 +05:00
Ingo Struewing
907cce4e4c merge 2008-10-01 19:25:37 +02:00
Georgi Kodinov
7adf7154f7 merge of bug #37943 5.0-bugteam -> 5.1-bugteam 2008-10-01 19:49:59 +03:00
Georgi Kodinov
eb3c08069d Bug#37943: Reproducible mysqld crash/sigsegv in sel_trees_can_be_ored
When analyzing the possible index use cases the server was re-using an internal structure.
This is wrong, as this internal structure gets updated during the analysis.
Fixed by making a copy of the internal structure for every place it needs to be used.
Also stopped the generation of empty SEL_TREE structures that unnecessary 
complicate the analysis.

mysql-test/r/index_merge.result:
  Bug#37943: test case
mysql-test/t/index_merge.test:
  Bug#37943: test case
sql/opt_range.cc:
  Bug#37943: 
   - Make copy constructors for SEL_TREE and sub-structures and use them when OR-ing trees.
   - don't generate empty SEL_TREEs. Return NULL instead.
2008-10-01 18:50:55 +03:00
Ingo Struewing
404d342192 merge 2008-10-01 16:47:48 +02:00
Sven Sandberg
b920fb4512 BUG#38269: pushbuild gives valgrind error in ha_statistic_increment for rpl_temporary
Re-enabling failing test case because server logs were lost in pushbuild, so we need to run it again.


mysql-test/suite/rpl/t/disabled.def:
  Re-enabling failing test case because server logs were lost in pushbuild, so we need to run it again.
2008-10-01 16:02:04 +02:00
Georgi Kodinov
cdb8a2a95d null merge of the 5.0-bugteam symlink test failure fix 2008-10-01 16:01:04 +03:00
Georgi Kodinov
652565d362 fixed a failure in symlink.test caused by replacing rm with remove_file 2008-10-01 15:53:11 +03:00
Ingo Struewing
78a4a9e410 merge 2008-10-01 12:27:57 +02:00
Ingo Struewing
2ed99fbe1c Bug#37958 - test main.plugin crash on Mac OS X when selecting from EXAMPLE engine.
This patch contains fixes for two problems:

1. As originally reported, the server crashed on Mac OS X when trying to access
   an EXAMPLE table after the EXAMPLE plugin was installed.

   It turned out that the dynamically loaded EXAMPLE plugin called the
   function hash_earch() from a Mac OS X system library, instead of
   hash_earch() from MySQL's mysys library. Makefile.am in storage/example
   does not include libmysys. So the Mac OS X linker arranged the hash_search()
   function to be linked to the system library when the shared object is
   loaded.

   One possible solution would be to include libmysys into the linkage of
   dynamic plugins. But then we must have a libmysys.so, which must be
   used by the server too. This could have a minimal performance impact,
   but foremost the change seems to bee too risky at the current state of
   MySQL 5.1.

   The selected solution is to rename MySQL's hash_search() to my_hash_search()
   like it has been done before with hash_insert() and hash_reset().

   Since this is the third time, we need to rename a hash_*() function,
   I did renamed all hash_*() functions to my_hash_*().

   To avoid changing a zillion calls to these functions, and announcing
   this to hundreds of developers, I added defines that map the old names
   to the new names.

   This change is in hash.h and hash.c.

2. The other problem was improper implementation of the handlerton-to-plugin
   mapping. We use a fixed-size array to hold a plugin reference for each
   handlerton. On every install of a handler plugin, we allocated a new slot
   of the array. On uninstall we did not free it. After some uninstall/install
   cycles the array overflowed. We did not check for overflow.

   One fix is to check for overflow to stop the crashes.

   Another fix is to free the array slot at uninstall and search for a free slot
   at plugin install.

   This change is in handler.cc.



include/hash.h:
  Bug#37958 - test main.plugin crash on Mac OS X when selecting from EXAMPLE engine.
  Renamed hash_*() functions to my_hash_*().
  Added defines that map old names to new names.
mysys/hash.c:
  Bug#37958 - test main.plugin crash on Mac OS X when selecting from EXAMPLE engine.
  Renamed hash_*() functions to my_hash_*().
sql/handler.cc:
  Bug#37958 - test main.plugin crash on Mac OS X when selecting from EXAMPLE engine.
  Protect against a failing ha_initialize_handlerton() in ha_finalize_handlerton().
  Free hton2plugin slot on uninstall of a handler plugin.
  Reuse freed slost of the hton2plugin array.
  Protect against array overrun.
2008-10-01 12:21:15 +02:00
Georgi Kodinov
5b1b7320b1 fixed a win32 warning caused by the fix for bug #35981 2008-10-01 13:12:08 +03:00
Georgi Kodinov
7c0e7cdb03 merged 5.0-bugteam -> 5.1-bugteam 2008-10-01 12:52:51 +03:00
Georgi Kodinov
63a3ce6ef0 merged 5.1-5.1.29-rc -> 5.1-bugteam 2008-10-01 12:47:25 +03:00
Georgi Kodinov
ab5b7ceb97 fixed a wrong directory in distinct.test 2008-10-01 12:45:02 +03:00
Georgi Kodinov
3f8e1edc31 merged 5.0-main -> 5.0-bugteam 2008-10-01 12:42:45 +03:00
Georgi Kodinov
dca2c113c6 merged 5.0-5.1.29-rc into 5.0-bugteam 2008-10-01 12:41:13 +03:00
Patrick Crews
6db425ab4c automerge 2008-09-30 22:01:50 -04:00
Patrick Crews
006b940a27 Bug#38311 Some tests use 'rm' which is not portable
Repush of change to fix tests on Pushbuild.
2008-09-30 20:54:06 -04:00
Davi Arnaut
37a6be753f Merge from main branch. 2008-09-30 18:23:04 -03:00
Davi Arnaut
36d8535a4f Bug#38727: BUILD/compile-solaris-* scripts should compile MySQL with libmtmalloc
Link with mtmalloc on Solaris as it is done in our release builds.
Replace deprecated flag with the newer option as already done in
other scripts.

BUILD/compile-solaris-amd64-forte:
  Link to mtmalloc and replace deprecated flag.
BUILD/compile-solaris-amd64-forte-debug:
  Replace deprecated flag.
BUILD/compile-solaris-sparc:
  Link to mtmalloc.
BUILD/compile-solaris-sparc-forte:
  Link to mtmalloc
2008-09-30 17:57:48 -03:00
Patrick Crews
e97a45fdd3 automerge 2008-09-30 16:23:04 -04:00
Patrick Crews
446fd5044c Merge 5.0 -> 5.1 2008-09-30 15:32:35 -04:00
Patrick Crews
8c33da076e Automerge 2008-09-30 12:56:12 -04:00
Davi Arnaut
6816cf6a65 Bug#34306: Can't make copy of log tables when server binary log is enabled
Post-merge bug fix: lock_type is a enumeration type and not a bit mask.

sql/sql_cache.cc:
  Check for lock type explicitly. Also err on the safe side and
  invalidate the query cache for any write lock.
2008-09-30 10:47:01 -03:00
Gleb Shchepa
0d24398697 manual merge 5.0-bugteam --> 5.1-bugteam 2008-09-30 18:16:11 +05:00
Gleb Shchepa
3c9d4ea821 Fixed bug #17823: 'arc' directories inside database directories.
Server created "arc" directories inside database directories and
maintained there useless copies of .frm files.

Creation and renaming procedures of those copies as well as
creation of "arc" directories has been discontinued.
Removal procedure has been kept untouched to be able to
cleanup existent database directories by the DROP DATABASE
query. Also view renaming procedure has been updated to remove
these directories.


sql/parse_file.cc:
  Fixed bug #17823: 'arc' directories inside database directories.
  View/table creation and renaming procedures maintained
  backup copies of .frm files. Those copies are unused yet,
  so this feature was incomplete and unnecessary.
  
  1. Unwanted code has been hidden by FRM_ARCHIVE ifdefs
  (the FRM_ARCHIVE macro is not defined).
  
  2. Renaming procedure has been modified to remove obsolete
  "arc" directories.
sql/parse_file.h:
  Fixed bug #17823: 'arc' directories inside database directories.
  The "thd" parameter has been added to the rename_in_schema_file()
  function.
sql/sql_db.cc:
  Fixed bug #17823: 'arc' directories inside database directories.
  Scope of the mysql_rm_arc_files() function has been changed to
  global for use from the parse_file.cc file.
sql/sql_view.cc:
  Fixed bug #17823: 'arc' directories inside database directories.
  Added the "thd" argument to rename_in_schema_file() calls.
2008-09-30 17:50:28 +05:00
Alexey Botchkov
b8734a1ce2 merging 2008-09-30 10:41:30 +05:00
Davi Arnaut
2714b57bd3 Merge from parent branch. 2008-09-29 14:42:36 -03:00
Alexey Botchkov
ce64a16b75 Bug#37949 Crash if argument to SP is a subquery that returns more than one row
JOIN for the subselect wasn't cleaned if we came upon an error
     during sub_select() execution. That leads to the assertion failure
     in close_thread_tables()

     part of the 6.0 code backported

per-file comments:
  mysql-test/r/sp-error.result
Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
    test result

  mysql-test/t/sp-error.test
Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
    test case

  sql/sp_head.cc
Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
    lex->unit.cleanup() call added if not substatement
2008-09-29 19:11:34 +05:00
Davi Arnaut
0406d409ea Bug#34306: Can't make copy of log tables when server binary log is enabled
The problem is that when statement-based replication was enabled,
statements such as INSERT INTO .. SELECT FROM .. and CREATE TABLE
.. SELECT FROM need to grab a read lock on the source table that
does not permit concurrent inserts, which would in turn be denied
if the source table is a log table because log tables can't be
locked exclusively.

The solution is to not take such a lock when the source table is
a log table as it is unsafe to replicate log tables under statement
based replication. Furthermore, the read lock that does not permits
concurrent inserts is now only taken if statement-based replication
is enabled and if the source table is not a log table.

include/thr_lock.h:
  Introduce yet another lock type that my get upgraded depending
  on the binary log format. This is not a optimal solution but
  can be easily improved later.
mysql-test/r/log_tables.result:
  Add test case result for Bug#34306
mysql-test/suite/binlog/r/binlog_stm_row.result:
  Add test case result for Bug#34306
mysql-test/suite/binlog/t/binlog_stm_row.test:
  Add test case for Bug#34306
mysql-test/t/log_tables.test:
  Add test case for Bug#34306
sql/lock.cc:
  Assert that TL_READ_DEFAULT is not a real lock type.
sql/mysql_priv.h:
  Export new function.
sql/mysqld.cc:
  Remove using_update_log.
sql/sql_base.cc:
  Introduce function that returns the appropriate read lock type
  depending on how the statement is going to be replicated. It will
  only take a TL_READ_NO_INSERT log if the binary is enabled and the
  binary log format is statement-based and the table is not a log table.
sql/sql_parse.cc:
  Remove using_update_log.
sql/sql_update.cc:
  Use new function to choose read lock type.
sql/sql_yacc.yy:
  The lock type is now decided at open_tables time. This old behavior was
  actually misleading as the binary log format can be dynamically switched
  and this would not change for statements that have already been parsed
  when the binary log format is changed (ie: prepared statements).
2008-09-29 10:53:40 -03:00
He Zhenxing
a2841cf1c1 BUG#35843 Slow replication slave when using partitioned myisam table
In order to improve the performance when replicating to partitioned
myisam tables with row-based format, the number of rows of current 
rows log event is estimated and used to setup storage engine for bulk
inserts.
2008-09-26 17:39:47 +08:00
Kristofer Pettersson
1e26e74c2a Automerge 2008-09-25 19:08:46 +02:00
Chad MILLER
392ff10eac Bug#35754: mysql_install_db does not work if no hostname is set
Machines with hostname set to "localhost" cause uniqueness errors in 
the SQL bootstrap data.

Now, insert zero lines for cases where the (lowercased) hostname is 
the same as an already-inserted 'localhost' name.  Also, fix a few tests 
that expect certain local accounts to have a certain host name.
2008-09-24 08:59:56 -04:00
Patrick Crews
f5c1c9af8e Bug#38311 - Fix of some cruft from remove_files in ndb_autodiscover.test, clean up of distinct.test,
and replacing error numbers with error names.
2008-09-23 05:24:32 -04:00
Mattias Jonsson
1d583e50d8 merge 2008-09-23 12:24:30 +03:00