Commit graph

48969 commits

Author SHA1 Message Date
iggy@alf.(none)
3e7caa131c Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  alf.(none):/src/bug30103/my50-bug30103
2007-07-27 17:44:43 -04:00
iggy@alf.(none)
b853f4d1fe Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  alf.(none):/src/bug30103/my51-bug30103
2007-07-27 17:43:38 -04:00
iggy@alf.(none)
95b545dba0 Bug#30103 CMake build solution does not remove auto-generated resources
- Add CMake rule to remove files.
- Manual merge.
2007-07-27 17:41:34 -04:00
iggy@alf.(none)
4aad516c64 Merge alf.(none):/src/bug30103/my50-bug30103
into  alf.(none):/src/bug30103/my51-bug30103
2007-07-27 17:36:30 -04:00
holyfoot/hf@hfmain.(none)
e4f4a46f76 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/29878/my50-29878
2007-07-28 01:33:03 +05:00
holyfoot/hf@hfmain.(none)
642b0c00ed Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/29878/my51-29878
2007-07-28 00:50:17 +05:00
jperkin@production.mysql.com
88ef9a4214 Merge jperkin@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  production.mysql.com:/usersnfs/jperkin/bk/mysql-5.0
2007-07-27 20:49:23 +02:00
jperkin@production.mysql.com
7731aad613 Merge jperkin@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  production.mysql.com:/usersnfs/jperkin/bk/mysql-5.0
2007-07-27 20:47:30 +02:00
jperkin@production.mysql.com
61a1e17260 Merge jperkin@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  production.mysql.com:/usersnfs/jperkin/bk/mysql-5.1
2007-07-27 20:43:34 +02:00
malff/marcsql@weblab.(none)
db7af023c0 manual merge 2007-07-27 12:30:02 -06:00
jperkin@production.mysql.com
87a297061c Merge production.mysql.com:/usersnfs/jperkin/bk/bug-28585-5.0
into  production.mysql.com:/usersnfs/jperkin/bk/bug-28585-5.1
2007-07-27 20:28:34 +02:00
malff/marcsql@weblab.(none)
32668a2e08 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-25422-d
2007-07-27 12:22:00 -06:00
malff/marcsql@weblab.(none)
ac7b17eac4 Code review changes 2007-07-27 12:19:36 -06:00
anozdrin/alik@ibm.
47345bd04f Fix merge. 2007-07-27 21:50:37 +04:00
holyfoot/hf@hfmain.(none)
37dece087e Merge mysql.com:/home/hf/work/29878/my50-29878
into  mysql.com:/home/hf/work/29878/my51-29878
2007-07-27 22:43:33 +05:00
dkatz@damien-katzs-computer.local
32fce0e17e Merge damien-katzs-computer.local:/Users/dkatz/50_hpux
into  damien-katzs-computer.local:/Users/dkatz/mysql51
2007-07-27 13:41:11 -04:00
anozdrin/alik@ibm.
af9e57562d Merge ibm.:/home/alik/Documents/MySQL/devel/5.0-rt
into  ibm.:/home/alik/Documents/MySQL/devel/5.1-rt-merge
2007-07-27 21:30:43 +04:00
df@pippilotta.erinye.com
50e7239d7b BUG#20815 for the 5.1 branch 2007-07-27 19:14:08 +02:00
anozdrin/alik@ibm.
04047d9666 Fix test so that it will be environment-independent. 2007-07-27 21:06:50 +04:00
ramil/ram@ramil.myoffice.izhnet.ru
bc15820d32 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  mysql.com:/home/ram/work/b29980/b29980.5.1
2007-07-27 21:17:05 +05:00
serg@janus.mylan
0967e88790 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  janus.mylan:/usr/home/serg/Abk/mysql-5.1
2007-07-27 18:08:09 +02:00
iggy@alf.(none)
667f2a35de Bug#30103 CMake build solution does not remove auto-generated resources
- Add CMake rule to remove files.
2007-07-27 11:54:54 -04:00
kent@mysql.com/kent-amd64.(none)
519ebab04e SSL/Makefile.am mysql-test/Makefile.am:
Moved CERT files to where they are used, avoids conflict
  between two make files trying to install the same CERTs
SSL/*.pem, 
  Move: SSL/*.pem -> mysql-test/std_data/
2007-07-27 17:39:07 +02:00
thek@adventure.(none)
8f5fad2c34 Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-07-27 17:32:45 +02:00
thek@adventure.(none)
5ab7da9167 Merge adventure.(none):/home/thek/Development/cpp/bug29929/my50-bug29929
into  adventure.(none):/home/thek/Development/cpp/bug29929/my51-bug29929
2007-07-27 16:59:09 +02:00
gkodinov/kgeorge@magare.gmz
092f9d2e55 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30000-5.1-opt
2007-07-27 17:57:29 +03:00
thek@adventure.(none)
889b4ebcee Bug #29929 LOCK TABLES does not pre-lock tables used in triggers of the locked tables
When a table was explicitly locked with LOCK TABLES no associated
tables from any related trigger on the subject table were locked.
As a result of this the user could experience unexpected locking
behavior and statement failures similar to "failed: 1100: Table'xx'
was not locked with LOCK TABLES".

This patch fixes this problem by making sure triggers are
pre-loaded on any statement if the subject table was explicitly
locked with LOCK TABLES.
2007-07-27 16:56:29 +02:00
gkodinov/kgeorge@magare.gmz
9e1dd00ff2 Bug #30000: SHOW commands once again ends up in the
slow query log
Disable the SHOW commands to appear in the show query
log.
Update the commands type array.
2007-07-27 17:55:39 +03:00
gkodinov/kgeorge@magare.gmz
e9be3793fb fixing the 5.1-opt merge of the fix for bug 29571:
cannot check the statments in the binlog for row based 
replication.
2007-07-27 17:29:48 +03:00
anozdrin/alik@ibm.
e73f004fe6 Fix for BUG#30027: mysqldump does not dump views properly.
mysqldump generates view defitions in two stages:

  - dump CREATE TABLE statements for the temporary tables.  For each view a
    temporary table, that has the same structure as the view is created.

  - dump DROP TABLE statements for the temporary tables and CREATE VIEW
    statements for the view.

This approach is required because views can have dependencies on each other
(a view can use other views). So, they should be created in the particular
order. mysqldump however is not smart enough, so in order to resolve
dependencies it creates temporary tables first of all.

The problem was that mysqldump might have generated incorrect dump for the
temporary table when a view has non-ASCII column name. That happened when
default-character-set is not utf8.

The fix is to:

  1. Switch character_set_client for the mysqldump's connection to binary
     before issuing SHOW FIELDS statement in order to avoid conversion.
    
  2. Dump switch character_set_client statements to UTF8 and back for
     CREATE TABLE statement that is issued to create temporary table.
2007-07-27 18:20:17 +04:00
joerg@debian.(none)
808a534d11 Merge mysqldev@production.mysql.com:my/mysql-5.1-funcs1-dep
into  debian.(none):/M51/omer-5.1
2007-07-27 16:13:07 +02:00
joerg/mysqldev@production.mysql.com
0dad584179 Merge mysql.com:/data0/mysqldev/my/mysql-5.1
into  mysql.com:/data0/mysqldev/my/mysql-5.1-funcs1-dep
2007-07-27 16:06:50 +02:00
joerg/mysqldev@mysql.com/production.mysql.com
4d279aa9df Merge mysql.com:/data0/mysqldev/my/mysql-5.1
into  mysql.com:/data0/mysqldev/my/mysql-5.1-funcs1-dep
2007-07-27 15:59:18 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
03dfd986d7 Bug #29878 Garbage data generation when executing SESSION_USER() on a slave.
Item_func_user doesn't calculate anything in it's val_str() method,
just returns saved str_value.
Though Item::save_in_field method can destroy str_value, relying on
val_str() return. As a result we get the garbage stored in field.

We cannot use Item::save_in_field implementation for Item_func_user,
reimplement it in simpler way.
2007-07-27 18:42:25 +05:00
joerg@debian.(none)
4d9cbaf313 Fix a bad BitKeeper dependency structure for the "funcs_1" suite:
Step 2:
Restore the 5.1 contents in the 5.0-dependent files.
2007-07-27 15:41:27 +02:00
anozdrin/alik@ibm.
bbb1b64b95 Fix for BUG#28030: test im_instance_conf fails with an assert.
The problem was a race condition on shutdown -- when IM got shutdown
request while a guarded mysqld is starting. In this case the Guardian
thread tried to stop the mysqld, but might fail if the mysqld hadn't
created pid-file so far. When this happened, the mysqld-monitor thread
didn't stop, so the assert in Thread_registry happened.

The fix is to make several attempts to stop mysqld if it is active.
2007-07-27 17:39:01 +04:00
serg@janus.mylan
42cb8ae7d2 Bug #30094 mi_test_all: assertion failure
updated to keypart_map api
2007-07-27 15:37:37 +02:00
jperkin@production.mysql.com
d5293e4584 More fixes and cleanups for bug#28585:
- make the 'dist-hook' from top-level Makefile work again.
  - we can find my_print_defaults from --basedir by parsing command
    line arguments prior to running my_print_defaults.
  - take advantage of additional command line parsing and allow the
    --no-defaults etc arguments to work anywhere rather than having
    to be the first argument.
  - find SQL files either from binary archive or source install.
  - consolidate and tidy code and error messages.
2007-07-27 15:14:21 +02:00
kostja@bodhi.(none)
11c57540f7 A fix and a test case for Bug#24918 drop table and lock / inconsistent
between perm and temp tables. Review fixes.

The original bug report complains that if we locked a temporary table
with LOCK TABLES statement, we would not leave LOCK TABLES mode
when this temporary table is dropped.

Additionally, the bug was escalated when it was discovered than
when a temporary transactional table that was previously
locked with LOCK TABLES statement was dropped, futher actions with
this table, such as UNLOCK TABLES, would lead to a crash.

The problem originates from incomplete support of transactional temporary
tables. When we added calls to handler::store_lock()/handler::external_lock()
to operations that work with such tables, we only covered the normal
server code flow and did not cover LOCK TABLES mode. 
In LOCK TABLES mode, ::external_lock(LOCK) would sometimes be called without
matching ::external_lock(UNLOCK), e.g. when a transactional temporary table
was dropped. Additionally, this table would be left in the list of LOCKed 
TABLES.

The patch aims to address this inadequacy. Now, whenever an instance
of 'handler' is destroyed, we assert that it was priorly
external_lock(UNLOCK)-ed. All the places that violate this assert
were fixed.

This patch introduces no changes in behavior -- the discrepancy in
behavior will be fixed when we start calling ::store_lock()/::external_lock()
for all tables, regardless whether they are transactional or not, 
temporary or not.
2007-07-27 16:37:29 +04:00
gkodinov/kgeorge@magare.gmz
61a525b6ab portation of the test case for bug 29571 to cover row replication 2007-07-27 15:36:10 +03:00
joerg@debian.(none)
c80ced4111 Fix a bad BitKeeper dependency structure for the "funcs_1" suite:
The files below "mysql-test/suite/funcs_1" in version 5.1
did not depend on the equivalent ones in 5.0,
probably because they had been checked in independent of each other
in both versions.

Step 1:
Foreach file F in the suite that has a "deleted" counterpart D, use
    bk rm $F
    bk mv $D $F
to get those files into the 5.1 suite that (for BK) depend on 5.0.
2007-07-27 13:32:32 +02:00
gkodinov/kgeorge@magare.gmz
40e0efeba1 5.0-opt -> 5.1-opt merge of the test case for bug 29571:
- reset the logs before and after the test.
 - cleanup from the previous tests : use the correct schema.
2007-07-27 14:28:36 +03:00
gkodinov/kgeorge@magare.gmz
c8e525b744 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30036-5.1-opt
2007-07-27 12:54:05 +03:00
svoj@june.mysql.com
21b707e43d Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
2007-07-27 14:44:31 +05:00
svoj@june.mysql.com
81905ee14f Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
2007-07-27 14:36:43 +05:00
svoj@mysql.com/june.mysql.com
9d1bfec265 BUG#29957 - alter_table.test fails
INSERT/DELETE/UPDATE followed by ALTER TABLE within LOCK TABLES
may cause table corruption on Windows.

That happens because ALTER TABLE writes outdated shared state
info into index file.

Fixed by removing obsolete workaround.

Affects MyISAM tables on Windows only.
2007-07-27 14:30:25 +05:00
gshchepa/uchum@gleb.loc
e6c7e7d630 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-27 13:38:11 +05:00
malff/marcsql@weblab.(none)
c7bbd8917c WL#3984 (Revise locking of mysql.general_log and mysql.slow_log)
Bug#25422 (Hang with log tables)
Bug 17876 (Truncating mysql.slow_log in a SP after using cursor locks the
          thread)
Bug 23044 (Warnings on flush of a log table)
Bug 29129 (Resetting general_log while the GLOBAL READ LOCK is set causes
           a deadlock)

Prior to this fix, the server would hang when performing concurrent
ALTER TABLE or TRUNCATE TABLE statements against the LOG TABLES,
which are mysql.general_log and mysql.slow_log.

The root cause traces to the following code:
in sql_base.cc, open_table()
  if (table->in_use != thd)
  {
    /* wait_for_condition will unlock LOCK_open for us */
    wait_for_condition(thd, &LOCK_open, &COND_refresh);
  }
The problem with this code is that the current implementation of the
LOGGER creates 'fake' THD objects, like
- Log_to_csv_event_handler::general_log_thd
- Log_to_csv_event_handler::slow_log_thd
which are not associated to a real thread running in the server,
so that waiting for these non-existing threads to release table locks
cause the dead lock.

In general, the design of Log_to_csv_event_handler does not fit into the
general architecture of the server, so that the concept of general_log_thd
and slow_log_thd has to be abandoned:
- this implementation does not work with table locking
- it will not work with commands like SHOW PROCESSLIST
- having the log tables always opened does not integrate well with DDL
operations / FLUSH TABLES / SET GLOBAL READ_ONLY

With this patch, the fundamental design of the LOGGER has been changed to:
- always open and close a log table when writing a log
- remove totally the usage of fake THD objects
- clarify how locking of log tables is implemented in general.

See WL#3984 for details related to the new locking design.

Additional changes (misc bugs exposed and fixed):

1)

mysqldump which would ignore some tables in dump_all_tables_in_db(),
 but forget to ignore the same in dump_all_views_in_db().

2)

mysqldump would also issue an empty "LOCK TABLE" command when all the tables
to lock are to be ignored (numrows == 0), instead of not issuing the query.

3)

Internal errors handlers could intercept errors but not warnings
(see sql_error.cc).

4)

Implementing a nested call to open tables, for the performance schema tables,
exposed an existing bug in remove_table_from_cache(), which would perform:
  in_use->some_tables_deleted=1;
against another thread, without any consideration about thread locking.
This call inside remove_table_from_cache() was not required anyway,
since calling mysql_lock_abort() takes care of aborting -- cleanly -- threads
that might hold a lock on a table.
This line (in_use->some_tables_deleted=1) has been removed.
2007-07-27 00:31:06 -06:00
dkatz@damien-katzs-computer.local
9fe1a5a952 Bug #25061 Build failure on HP/UX similar to BUG#20507
Added libCsup as a mysql library dependency on hpux11.

This means any projects statically linking to our libraries using the HPUX11 compiler will need to add the -lCSup option to their build link options. If they use the mysql_config tool this will happen automatically.

Projects that dynamically link to libmysqlclient will continue to work without any modifications.

Library libCsup is a C++ runtime library needed for yassl support when built with the hpux11 C/C++ compiler. The first attempts to fix this bug were to remove the yassl dependencies on libCsup. We tried removing all pure virtual functions and other hacks, but the dependency remained. The only other options left involve extensive restructuring of the yassl library.
2007-07-26 23:39:53 -04:00
joerg@debian.(none)
7d08e0890a Merge debian.(none):/M51/rowlock-5.1
into  debian.(none):/M51/push-5.1
2007-07-26 21:15:44 +02:00