Commit graph

2304 commits

Author SHA1 Message Date
unknown
05840a5790 Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg04/51


mysql-test/r/information_schema.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
2007-04-04 11:05:22 +02:00
unknown
73fb1aed61 Bug #20376 Doesn't auto-detect data dir
This changeset fixes the problem where mysql, when run as a service,
can't "detect" it's own data directory.


sql/mysqld.cc:
  When running on Windows we check to see if we have a hard path in 
  my_progname.  If not, then we use GetModuleFilename to get the full path
  for the executing module.  This allows the program to determine where
  it's at when running as a service.
2007-04-03 15:05:33 -05:00
unknown
fbd929f802 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel


mysys/my_pread.c:
  Auto merged
mysys/thr_alarm.c:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
storage/heap/hp_write.c:
  Auto merged
mysql-test/t/mysqlbinlog2.test:
  SCCS merged
client/mysql.cc:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
sql/event_db_repository.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2007-04-03 14:51:32 +03:00
unknown
e552b08fcd Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-marvel


client/mysql.cc:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
sql/event_data_objects.cc:
  Auto merged
sql/event_db_repository.cc:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
strings/ctype-utf8.c:
  Auto merged
2007-04-03 13:51:31 +02:00
unknown
7b1bfbb77a Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime


mysql-test/r/events_bugs.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/t/events.test:
  Auto merged
sql/event_data_objects.cc:
  Auto merged
sql/event_data_objects.h:
  Auto merged
sql/event_db_repository.h:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/events.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_servers.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.h:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
mysql-test/r/events.result:
  Manual merge.
sql/event_db_repository.cc:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
2007-04-03 14:34:37 +04:00
unknown
6e5ca12b6a Bug#27327 information_schema status views, variable_value conversion
Type of 'Slave_running' status variable is changed to bool


mysql-test/r/compress.result:
  test result
mysql-test/r/rpl_packet.result:
  test result
mysql-test/t/compress.test:
  test case
mysql-test/t/rpl_packet.test:
  test case
sql/mysqld.cc:
  Type of 'Slave_running' status variable is changed to bool
2007-04-03 14:24:35 +05:00
unknown
c1020aa4c6 Type cast of constant string (empty) to keep compiler happy. 2007-04-02 14:03:33 +02:00
unknown
dd4b927bec Merge naruto.:C:/cpp/bug26174/my51-bug26174
into  naruto.:C:/cpp/mysql-5.1-runtime


sql/set_var.cc:
  Auto merged
sql/mysqld.cc:
  manual merge
2007-04-02 11:09:32 +02:00
unknown
05e3c7e0bc Bug#26174 Server Crash:INSERT ... SELECT ... FROM I_S.GLOBAL_STATUS in Event
- Some variables in I_S.GLOBAL_STATUS were depending on a network
  connection in order to evaluate. Since no network connection is 
  present during the execution of an event, this caused the server
  to crash.
- The variable function hooks does now verify that the vio-
  object is valid before attempting to use it.


mysql-test/r/information_schema.result:
  Added test case.
mysql-test/t/information_schema.test:
  Added test case.
2007-04-02 09:51:14 +02:00
unknown
1139dde7ac Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


sql/field.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.h:
  Auto merged
2007-03-31 12:38:20 +02:00
unknown
206aab319e Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


client/Makefile.am:
  Auto merged
mysql-test/r/rpl_ndb_basic.result:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-03-31 00:17:12 +02:00
unknown
f47c23288a Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-03-31 00:15:20 +02:00
unknown
7e1e228017 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-opt


sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-03-30 20:00:12 +02:00
unknown
0fdd64ba63 Merged from 5.0 2007-03-29 19:31:42 +03:00
unknown
70e4ba1f7c Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel


storage/archive/ha_archive.cc:
  Auto merged
mysys/thr_alarm.c:
  SCCS merged
sql/mysqld.cc:
  SCCS merged
2007-03-29 17:45:56 +03:00
unknown
019446f059 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-marvel


client/client_priv.h:
  Auto merged
client/mysqlslap.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-29 16:11:29 +02:00
unknown
c033e15e9b Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


client/mysqlbinlog.cc:
  Auto merged
mysql-test/extra/binlog_tests/binlog.test:
  Auto merged
mysql-test/r/binlog_row_binlog.result:
  Auto merged
mysql-test/r/binlog_stm_binlog.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/lock.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.h:
  Auto merged
mysql-test/r/rpl_ndb_log.result:
  Manual merge main->rpl 5.1
mysql-test/r/rpl_truncate_7ndb.result:
  Manual merge main->rpl 5.1
sql/log.cc:
  Manual merge main->rpl 5.1
sql/log_event.cc:
  Manual merge main->rpl 5.1
2007-03-29 13:49:10 +02:00
unknown
e420488ee6 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-03-29 12:25:28 +02:00
unknown
2cdd8359ef compiler warnings 2007-03-28 17:12:38 +02:00
unknown
ca20bc18fe Merge janus.mylan:/usr/home/serg/Abk/mysql-5.0-build
into  janus.mylan:/usr/home/serg/Abk/mysql-5.1-build


mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  merged
2007-03-28 15:47:48 +02:00
unknown
f8eed3c1ce restored run-time thread lib detection
sql/stacktrace.c:
  removed code duplication
sql/stacktrace.h:
  removed code duplication
2007-03-28 15:33:29 +02:00
unknown
57693826d1 Small fixes.
sql/mysqld.cc:
  Added use of find_type_or_exit() for another option.
sql/net_serv.cc:
  Bug in version number check, could occassionally make a tree
  red.
2007-03-27 18:48:05 +03:00
unknown
689910ac9c WL3527: 5.1
renamed "--old-mode" to "--old" to prevent
 ambiguity.
 "old" now appears in SHOW VARIABLES as a
 read-only option.


mysql-test/r/group_by.result:
  WL3527: 5.1 test case
mysql-test/t/group_by.test:
  WL3527: 5.1 test case
sql/mysqld.cc:
  WL3527: 5.1
   renamed the "old-mode" to "old" to fit
   the options naming scheme
sql/set_var.cc:
  WL3527: 5.1
   added "-old" as read-only system variable
sql/set_var.h:
  WL3527: 5.1
   added class for boolean pointer read-only 
   option to support the "--old" option.
sql/sql_base.cc:
  fixed 5.0->5.1 merge problems.
2007-03-26 19:15:30 +03:00
unknown
27f8c35760 Merge sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0-build


sql/mysqld.cc:
  Auto merged
2007-03-24 14:05:27 +02:00
unknown
a1e7490f41 nptl: typo fixed. sigaddset restored 2007-03-24 14:03:27 +02:00
unknown
1e92dcae89 Merge sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0-build


mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-23 20:39:34 +02:00
unknown
d89329c685 reverted linuxthreads thr_client_alarm fix (not future-proof)
fixed differently: wake up select_thread with THR_SERVER_ALARM instead


mysys/thr_alarm.c:
  reverted linuxthreads thr_client_alarm fix (not future-proof)
2007-03-23 20:37:20 +02:00
unknown
c62c0d9df8 Merge sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0-build


mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  SCCS merged
2007-03-23 16:37:19 +02:00
unknown
9a4b2e9081 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1


mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-23 14:57:55 +02:00
unknown
6e1f446ae1 move thr_client_alarm initialization to mysqld.cc
(in thr_alarm.cc it happened too late).


mysys/thr_alarm.c:
  move thr_client_alarm initialization to mysqld.cc
  (here it happened too late)
sql/mysqld.cc:
  move thr_client_alarm initialization to mysqld.cc
  (in thr_alarm.cc it happened too late).
  moved thr_kill_signal initialization to init_signals()
2007-03-23 13:38:42 +02:00
unknown
c4e4bc3235 Merge gbichot3.local:/home/mysql_src/mysql-5.0-rpl
into  gbichot3.local:/home/mysql_src/mysql-5.1-rpl-26194
will fix by hand


mysql-test/t/rpl_misc_functions.test:
  Auto merged
sql/lock.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_select.cc:
  will fix by hand
sql/table.h:
  merge from 5.0
2007-03-22 16:00:47 +01:00
unknown
685d21b72f - renaming TMP_TABLE to NON_TRANSACTIONAL_TMP_TABLE because this is
what it actually means (Monty approved the renaming)
- correcting description of transaction_alloc command-line options
(our manual is correct)
- fix for a failure of rpl_trigger.


mysql-test/t/rpl_misc_functions.test:
  test was cleaning up only on slave, but it's also needed on master,
  otherwise it influences rpl_trigger.test
sql/lock.cc:
  clearer name
sql/mysqld.cc:
  I checked the code that those two variables are not about binlogging
  but about the size of the transaction's memroot which is used
  to create savepoint structures and to store list of tables to be invalidated
  (for NDB). The manual has a correct description, no need to fix it.
sql/sql_base.cc:
  clearer name
sql/sql_derived.cc:
  clearer name
sql/sql_select.cc:
  clearer name
sql/table.h:
  clearer name: TMP_TABLE is used for non-transactional tables.
2007-03-22 15:07:32 +01:00
unknown
5f2055afaa Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-marvel


client/mysqldump.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-22 13:14:52 +01:00
unknown
e9bb08ac0c Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime


include/my_global.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/events_scheduling.result:
  Auto merged
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
  Auto merged
BitKeeper/deleted/.del-mysql_create_system_tables.sh:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/events_scheduling.test:
  Auto merged
mysql-test/t/grant_cache.test:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
scripts/mysql_system_tables_fix.sql:
  Auto merged
sql/event_db_repository.cc:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/tztime.cc:
  Auto merged
storage/innobase/handler/ha_innodb.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisam/ha_myisam.h:
  Auto merged
mysql-test/r/skip_grants.result:
  Manualmerge.
mysql-test/r/sp.result:
  Manualmerge.
mysql-test/t/skip_grants.test:
  Manualmerge.
mysql-test/t/sp.test:
  Manualmerge.
sql/event_data_objects.cc:
  Manualmerge.
2007-03-20 00:42:11 +03:00
unknown
7f5c589cda Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel


sql/mysqld.cc:
  Auto merged
2007-03-19 11:22:10 +02:00
unknown
3615debeb1 Added find_type_or_exit and find_bit_type_or_exit as wrappers
around the original functions. These will ensure that error
message is always in unique form, reduce code and print the
right alternatives automatically in an error case.


client/mysql.cc:
  Changed find_type to find_type_or_exit
client/mysqladmin.cc:
  Changed find_type to find_type_or_exit
client/mysqlbinlog.cc:
  Changed find_type to find_type_or_exit
client/mysqlcheck.c:
  Changed find_type to find_type_or_exit
client/mysqldump.c:
  Changed find_type to find_type_or_exit
client/mysqlimport.c:
  Changed find_type to find_type_or_exit
client/mysqlshow.c:
  Changed find_type to find_type_or_exit
client/mysqlslap.c:
  Changed find_type to find_type_or_exit
include/typelib.h:
  Added find_type_or_exit
mysql-test/r/mysql_protocols.result:
  Fixed result.
mysys/typelib.c:
  Added find_type_or_exit
sql/mysqld.cc:
  Added use of find_type_or_exit and find_bit_type_or_exit
  Fixed a missing break; from an option handling. (Bug
  in --tc-heuristic-recover)
2007-03-19 11:19:51 +02:00
unknown
c259b5765c Merge kpdesk.mysql.com:/home/thek/dev/bug26807/my51-bug26807
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.1-runtime


sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
2007-03-16 15:03:43 +01:00
unknown
2b2fb67460 Bug#26807 "set global event_scheduler=1" and --skip-grant-tables crashes server
- Crash occured because Event engine is only initialized if
  ACLs are used but not properly marked as disabled.
- The patch is to mark the Event engine as DISABLED if no ACLs
  are used to avoid access of uninitialized variables.


mysql-test/r/skip_grants.result:
  Added test case
mysql-test/t/skip_grants.test:
  Added test case
2007-03-16 14:57:02 +01:00
unknown
cf2842b56d Merge bk@192.168.21.1:mysql-5.1
into  mysql.com:/home/hf/work/mrg/mysql-5.1-opt


sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-03-16 11:54:36 +04:00
unknown
41a7704b9d Merge mockturtle.local:/home/dlenev/src/mysql-5.0-bg25966-2
into  mockturtle.local:/home/dlenev/src/mysql-5.1-bg25966


sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-03-15 11:55:15 +03:00
unknown
cdd2a2e40d Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

Memory and CPU hogging occured when connection which had to wait for table
lock was serviced by thread which previously serviced connection that was
killed (note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
The problem also occured when one killed particular query in connection
(using KILL QUERY) and later this connection had to wait for some table
lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.


sql/mysqld.cc:
  We should not forget to reset THD::mysys_var::abort after kill operation
  if we are going to use thread to which this operation was applied for
  handling of other connections.
sql/sp_head.cc:
  We should not forget to reset THD::mysys_var::abort after kill operation
  if we are going to use thread to which this operation was applied for
  handling of further statements.
sql/sql_parse.cc:
  We should not forget to reset THD::mysys_var::abort after kill operation
  if we are going to use thread to which this operation was applied for
  handling of further statements.
2007-03-15 11:51:35 +03:00
unknown
db1d2f64d1 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

CPU hogging occured when connection which had to wait for table lock was
serviced by thread which previously serviced connection that was killed
(note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
In 5.* versions memory hogging was added to CPU hogging. Moreover in
those versions the problem also occured when one killed particular query
in connection (using KILL QUERY) and later this connection had to wait for
some table lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.


sql/mysqld.cc:
  We should not forget to reset THD::mysys_var::abort after kill operation
  if we are going to use thread to which this operation was applied for
  handling of other connections.
2007-03-15 11:30:17 +03:00
unknown
8555b8d7ab Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/WL3527-5.1-opt


BitKeeper/deleted/.del-sql_parse.cc.rej:
  Auto merged
BitKeeper/deleted/.del-table.cc.rej:
  Auto merged
mysql-test/r/endspace.result:
  Auto merged
mysql-test/t/group_by.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
BitKeeper/deleted/.del-mysqld.cc.rej~35c1c438e11ebd89:
  Auto merged
mysql-test/r/group_by.result:
  manual merge to 5.1-opt
sql/mysqld.cc:
  manual merge to 5.1-opt
sql/sql_base.cc:
  manual merge to 5.1-opt
sql/sql_select.cc:
  manual merge to 5.1-opt
sql/table.h:
  manual merge to 5.1-opt
2007-03-09 17:54:13 +02:00
unknown
90f02ac861 Merge bk-internal:/home/bk/mysql-5.1-new-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
2007-03-08 13:31:37 +01:00
unknown
cc379fff6d Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint


extra/comp_err.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-08 13:30:04 +01:00
unknown
e7362d5c32 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/51
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg0306/51


mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2007-03-08 00:02:41 +01:00
unknown
30c1622ec4 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg0306/50


sql/mysqld.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-03-07 23:55:25 +01:00
unknown
676b59cffa Merge bodhi.local:/opt/local/work/mysql-5.0-26750
into  bodhi.local:/opt/local/work/mysql-5.1-runtime


mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/sql_class.cc:
  Manual merge.
sql/sql_class.h:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_prepare.cc:
  Manual merge.
sql/sql_yacc.yy:
  Manual merge.
2007-03-07 13:02:14 +03:00
unknown
7f69b747d0 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  bodhi.local:/opt/local/work/mysql-5.0-26750


sql/mysqld.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_class.h:
  Manual merge.
2007-03-07 12:28:16 +03:00
unknown
053c6c01d6 A fix for Bug#26750 "valgrind leak in sp_head" (and post-review
fixes).

The legend: on a replication slave, in case a trigger creation
was filtered out because of application of replicate-do-table/
replicate-ignore-table rule, the parsed definition of a trigger was not 
cleaned up properly. LEX::sphead member was left around and leaked 
memory. Until the actual implementation of support of 
replicate-ignore-table rules for triggers by the patch for Bug 24478 it 
was never the case that "case SQLCOM_CREATE_TRIGGER"
was not executed once a trigger was parsed,
so the deletion of lex->sphead there worked and the memory did not leak.

The fix: 

The real cause of the bug is that there is no 1 or 2 places where
we can clean up the main LEX after parse. And the reason we 
can not have just one or two places where we clean up the LEX is
asymmetric behaviour of MYSQLparse in case of success or error. 

One of the root causes of this behaviour is the code in Item::Item()
constructor. There, a newly created item adds itself to THD::free_list
- a single-linked list of Items used in a statement. Yuck. This code
is unaware that we may have more than one statement active at a time,
and always assumes that the free_list of the current statement is
located in THD::free_list. One day we need to be able to explicitly
allocate an item in a given Query_arena.
Thus, when parsing a definition of a stored procedure, like
CREATE PROCEDURE p1() BEGIN SELECT a FROM t1; SELECT b FROM t1; END;
we actually need to reset THD::mem_root, THD::free_list and THD::lex
to parse the nested procedure statement (SELECT *).
The actual reset and restore is implemented in semantic actions
attached to sp_proc_stmt grammar rule.
The problem is that in case of a parsing error inside a nested statement
Bison generated parser would abort immediately, without executing the
restore part of the semantic action. This would leave THD in an 
in-the-middle-of-parsing state.
This is why we couldn't have had a single place where we clean up the LEX
after MYSQLparse - in case of an error we needed to do a clean up
immediately, in case of success a clean up could have been delayed.
This left the door open for a memory leak.

One of the following possibilities were considered when working on a fix:
- patch the replication logic to do the clean up. Rejected
as breaks module borders, replication code should not need to know the
gory details of clean up procedure after CREATE TRIGGER.
- wrap MYSQLparse with a function that would do a clean up.
Rejected as ideally we should fix the problem when it happens, not
adjust for it outside of the problematic code.
- make sure MYSQLparse cleans up after itself by invoking the clean up
functionality in the appropriate places before return. Implemented in 
this patch.
- use %destructor rule for sp_proc_stmt to restore THD - cleaner
than the prevoius approach, but rejected
because needs a careful analysis of the side effects, and this patch is 
for 5.0, and long term we need to use the next alternative anyway
- make sure that sp_proc_stmt doesn't juggle with THD - this is a 
large work that will affect many modules.

Cleanup: move main_lex and main_mem_root from Statement to its
only two descendants Prepared_statement and THD. This ensures that
when a Statement instance was created for purposes of statement backup,
we do not involve LEX constructor/destructor, which is fairly expensive.
In order to track that the transformation produces equivalent 
functionality please check the respective constructors and destructors
of Statement, Prepared_statement and THD - these members were
used only there.
This cleanup is unrelated to the patch.


sql/log_event.cc:
  THD::main_lex is private and should not be used.
sql/mysqld.cc:
  Move MYSQLerror to sql_yacc.yy as it depends on LEX headers now.
sql/sql_class.cc:
  Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
sql/sql_class.h:
  Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
sql/sql_lex.cc:
  Implement st_lex::restore_lex()
sql/sql_lex.h:
  Declare st_lex::restore_lex().
sql/sql_parse.cc:
  Consolidate the calls to unit.cleanup() and deletion of lex->sphead
  in mysql_parse (COM_QUERY handler)
sql/sql_prepare.cc:
  No need to delete lex->sphead to restore memory roots now in case of a 
  parse error - this is done automatically inside MYSQLparse
sql/sql_trigger.cc:
  This code could lead to double deletion apparently, as in case
  of an error lex.sphead was never reset.
sql/sql_yacc.yy:
  Trap all returns from the parser to ensure that MySQL-specific cleanup
  is invoked: we need to restore the global state of THD and LEX in 
  case of a parsing error. In case of a parsing success this happens as 
  part of normal grammar reduction process.
2007-03-07 12:24:46 +03:00