1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00
Commit Graph

37337 Commits

Author SHA1 Message Date
unknown
9bbf2f7c32 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb


ndb/test/include/NdbRestarter.hpp:
  Auto merged
2007-05-28 16:18:38 +02:00
unknown
f4c75aefb2 make memeber public 2007-05-28 16:18:04 +02:00
unknown
ac146e31c7 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb


ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  Auto merged
ndb/test/run-test/daily-basic-tests.txt:
  Auto merged
ndb/src/kernel/blocks/ERROR_codes.txt:
  manual merge
ndb/test/ndbapi/testNodeRestart.cpp:
  manual merge
2007-05-28 16:03:07 +02:00
unknown
547b51124c bug#28717, make sure only master updates activeStatus
so that othernodes dont get confused after having recevied status from master
  and then tries to update it self


ndb/src/kernel/blocks/ERROR_codes.txt:
  error 1001, delay node_failrep
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  error 1001, delay node_failrep
ndb/test/ndbapi/testNodeRestart.cpp:
  testcase
ndb/test/run-test/daily-basic-tests.txt:
  testcase
2007-05-28 15:59:02 +02:00
unknown
dab8586f27 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-28 15:56:10 +02:00
unknown
8046747c62 Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb
into  mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb


sql/handler.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Merge
2007-05-28 15:23:28 +02:00
unknown
96d16d96d1 Bug#24988 FLUSH PRIVILEGES causes brief unavailability
- A race condition caused brief unavailablility when trying to acccess
  a table.
- The unprotected variable 'grant_option' wasn't intended to alternate
  during normal execution. Variable initialization moved to grant_init
  a lines responsible for the alternation are removed. 


sql/mysqld.cc:
  - Added documentation to describe grant_option flag.
sql/sql_acl.cc:
  - This patch removes lines which causes grant_option to alternate and moves
    variable initialization to the grant_init()-function.
2007-05-28 13:50:33 +02:00
unknown
088cb9ddc4 Some Windows-related fixes to make Microsoft compilers happy. This is for bug #28128.
include/m_string.h:
  Reduced the number of elements in log_10[] and log_01[] to not exceed DBL_MAX.
sql/field.cc:
  Avoid the warning on Windows.
strings/strtod.c:
  Reduced the number of elements in log_10[] and log_01[] to not exceed DBL_MAX.
2007-05-28 15:33:22 +04:00
unknown
b1a5f427bc Bug #28719: multi pk update ignore corrupts data
- check multi update as well as update
- this bug is not present in 5.0, but execution patch is wrong, so there are probably other bugs


mysql-test/r/ndb_basic.result:
  Bug #28719: multi pk update ignore corrupts data
  - add test + backport some tests from 5.1
mysql-test/t/ndb_basic.test:
  Bug #28719: multi pk update ignore corrupts data
  - add test + backport some tests from 5.1
2007-05-28 13:23:11 +02:00
unknown
d41bc07359 Bug #28653 Fast GCP + high load + high RedoBuffer causes ndbrequire
- correction, backport to 5.0
2007-05-28 12:56:48 +02:00
unknown
8358a0c7c7 Merge polly.local:/home/kaa/src/maint/bug28121/my50-bug28121
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
strings/strtod.c:
  Auto merged
2007-05-28 14:34:36 +04:00
unknown
e3af3c2127 Fix for bug #28121 "INSERT or UPDATE into DOUBLE(200,0) field being truncated to 31 digits"
When storing a large number to a FLOAT or DOUBLE field with fixed length, it could be incorrectly truncated if the field's length was greater than 31.

This patch also does some code cleanups to be able to reuse code which is common between Field_float::store() and Field_double::store().


include/m_string.h:
  Added declarations for log_10 and log_01 from strtod.c
mysql-test/r/type_float.result:
  Added the testcase for bug #28121 "INSERT or UPDATE into DOUBLE(200,0) field being truncated to 31 digits"
mysql-test/t/type_float.test:
  Added the testcase for bug #28121 "INSERT or UPDATE into DOUBLE(200,0) field being truncated to 31 digits"
sql/field.cc:
  Moved common code from Field_float::store() and Field_double:store() to Field_real::truncate()
  Fixed the algorithm to not truncate large input numbers if the field length is greater than 31.
  Fixed rounding to not depend on FLT_MAX/DBL_MAX constants.
sql/field.h:
  Moved not_fixed member from Field_double to Field_real to allow code reuse between Field_float::store() and Field_double::store()
  Added truncate() method to Field_real which is used by both Field_float and Field_double
sql/init.cc:
  log_10[] and log_01[] are now defined as statical arrays in strtod.c, no need to pre-computed them.
sql/item_cmpfunc.cc:
  log_01[] now starts from 1e0, not from 1e-1 for consistency.
sql/mysql_priv.h:
  Moved log_10[] and log_01[] from mysqld.cc to libmystrings.
sql/mysqld.cc:
  Moved log_10[] and log_01[] from mysqld.cc to libmystrings.
strings/strtod.c:
  Define and use log_10[] and log_01[] as static arrays of constants instead of values pre-computed at startup.
2007-05-28 12:44:59 +04:00
unknown
9f757559ee Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
sql/sql_load.cc:
  Auto merged
2007-05-28 09:21:42 +02:00
unknown
d7a90fa172 Post-merge fix. 2007-05-27 20:14:50 -07:00
unknown
11dd353e12 Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt


client/mysqldump.c:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/ps_2myisam.result:
  Auto merged
mysql-test/r/ps_3innodb.result:
  Auto merged
mysql-test/r/ps_4heap.result:
  Auto merged
mysql-test/r/ps_5merge.result:
  Auto merged
mysql-test/r/ps_6bdb.result:
  Auto merged
mysql-test/r/ps_7ndb.result:
  Auto merged
sql/field.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/my_decimal.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-05-28 00:05:38 +02:00
unknown
e010e1c240 Bug #24733 RESET MASTER run before dump with --delete-master-logs
fixed by using flush logs, dumping, then doing PURGE MASTER LOGS TO 'binfile', instead
of deleting the log files at the beginning.
  
  NOTE: previously the delete-master-logs  would reset the log names back to
filename.00001. Now the trailing number doesn't get reset. This may need to be
documented. 


client/mysqldump.c:
  changed the code the --delete-master-logs option is used from this:
      
      take locks
      delete bin logs
      do dump (if this is a lock-based dump)
      release locks
      do dump (if this is a consistent-read-dump)
      
   to this:
      
      take locks
      flush logs
      remember the name of the new log
      do dump (if this is a lock-based dump)
      release locks
      do dump (if this is a consistent-read-dump)
      fflush output sql file if specified, to ensure the backup is commited to disk
      --- yes, dump succeeded ---
      do PURGE MASTER LOGS TO up to the new log
2007-05-27 11:50:10 -04:00
unknown
5f99cf963e Avoided warnings on Windows. 2007-05-26 13:19:36 -07:00
unknown
faf03194f8 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28571
2007-05-26 11:30:23 -07:00
unknown
90484de3f7 Fixed bug #28571. Outer join queries with ON conditions over
constant outer tables did not return null complemented
rows when conditions were evaluated to FALSE.
Wrong results were returned because the conditions over constant
outer tables, when being pushed down, were erroneously enclosed 
into the guard function used for WHERE conditions.


mysql-test/r/join_outer.result:
  Added a test case for bug #28571.
mysql-test/t/join_outer.test:
  Added a test case for bug #28571.
sql/sql_select.cc:
  Fixed bug #28571. Outer join queries with ON conditions over
  constant outer tables did not return null complemented
  rows when conditions were evaluated to FALSE.
  Wrong results were returned because the conditions over constant
  outer tables, when being pushed down, were erroneously enclosed 
  into the guard function used for WHERE conditions.
  The problem is fixed in the function make_join_select. Now the
  conditions over constant tables from ON expressions are pushed
  down after the conditions from WHERE has been pushed down.
2007-05-26 10:33:01 -07:00
unknown
5ed76763f8 Code review comments
sql/sql_lex.cc:
  Fixed parenthese typo, found during code review
2007-05-25 16:17:20 -06:00
unknown
1e33b063f0 Bug#27876 (SF with cyrillic variable name fails during execution (regression))
The root cause of this bug is related to the function skip_rear_comments,
in sql_lex.cc

Recent code changes in skip_rear_comments changed the prototype from
"const uchar*" to "const char*", which had an unforseen impact on this test:
  (endp[-1] < ' ')
With unsigned characters, this code filters bytes of value [0x00 - 0x20]
With *signed* characters, this also filters bytes of value [0x80 - 0xFF].

This caused the regression reported, considering cyrillic characters in the
parameter name to be whitespace, and truncated.
Note that the regression is present both in 5.0 and 5.1.

With this fix:
- [0x80 - 0xFF] bytes are no longer considered whitespace.
This alone fixes the regression.

In addition, filtering [0x00 - 0x20] was found bogus and abusive,
so that the code now filters uses my_isspace when looking for whitespace.

Note that this fix is only addressing the regression affecting UTF-8
in general, but does not address a more fundamental problem with
skip_rear_comments: parsing a string *backwards*, starting at end[-1],
is not safe with multi-bytes characters, so that end[-1] can confuse the
last byte of a multi-byte characters with a characters to filter out.

The only known impact of this remaining issue affects objects that have to
meet all the conditions below:

- the object is a FUNCTION / PROCEDURE / TRIGGER / EVENT / VIEW
- the body consist of only *1* instruction, and does *not* contain a
  BEGIN-END block
- the instruction ends, lexically, with <ident> <whitespace>* ';'?
  For example, "select <ident>;" or "return <ident>;"
- The last character of <ident> is a multi-byte character
- the last byte of this character is ';' '*', '/' or whitespace

In this case, the body of the object will be truncated after parsing,
and stored in an invalid format.

This last issue has not been fixed in this patch, since the real fix
will be implemented by Bug 25411 (trigger code truncated), which is caused
by the very same code.
The real problem is that the function skip_rear_comments is only a
work-around, and should be removed entirely: see the proposed patch for
bug 25411 for details.


sql/sp_head.cc:
  In skip_rear_comments,
  Filter out only whitespace, not other (non ascii or control) valid characters
sql/sql_lex.cc:
  In skip_rear_comments,
  Filter out only whitespace, not other (non ascii or control) valid characters
sql/sql_lex.h:
  In skip_rear_comments,
  Filter out only whitespace, not other (non ascii or control) valid characters
sql/sql_view.cc:
  In skip_rear_comments,
  Filter out only whitespace, not other (non ascii or control) valid characters
tests/mysql_client_test.c:
  Bug#27876 (SF with cyrillic variable name fails during execution (regression))
2007-05-25 14:36:01 -06:00
unknown
5a5c256ffd field.h:
Warnings elimination.


sql/field.h:
  Warnings elimination.
2007-05-26 00:44:13 +05:00
unknown
36b183ee31 Fix for bug #24611 "mysqld crashes when connecting from remote host, and compiled from source".
On some Linux distributions with both LinuxThreads and NPTL glibc versions available, statically built binaries can crash, because linker defaults to LinuxThreads when linking statically, but calls to external libraries (like libnss) are resolved to NPTL versions.

Since there is nothing we can do in the code to work that around, just give user an advice on how to fix that, if a crash happened on such a binary/OS combination.


sql/mysqld.cc:
  Advise a user on possible solutions in case of a crash in a statically built binary on a system with both LinuxThreads and NPTL available.
2007-05-25 20:52:01 +04:00
unknown
a2051ec57c Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
2007-05-25 21:27:34 +05:00
unknown
de108e05f9 Bug#26664 test suite times out on OS X 64bit
- Add checks to make sure net has a vio assigned
 - For example bootstrap will create a fake "net" with vio
   set to 0 


sql/net_serv.cc:
  Add checks to make sure net has a vio assigned
2007-05-25 16:47:43 +02:00
unknown
c326457d78 Fixed bug #28522:
sometimes `mysqldump --hex-blob' overruned output buffer by '\0' byte.

The dump_table() function has been fixed to reserve 1 byte more for the
last '\0' byte of dumped string.


client/mysqldump.c:
  Fixed bug #28522.
  The dump_table() function has been fixed to reserve 1 byte more for the
  last '\0' byte of dumped string.
mysql-test/t/mysqldump.test:
  Updated test case for bug #28522.
mysql-test/r/mysqldump.result:
  Updated test case for bug #28522.
2007-05-25 17:24:17 +05:00
unknown
d8f21a949a Bug #26664 test suite times out on OS X 64bit
- Make the two "my_net_set*" function only visible when included
   from my_global.h


include/mysql_com.h:
  Make the two "my_net_set*" functions only
  visible when included from my_global.h
2007-05-25 11:38:23 +02:00
unknown
26b4a7db2c Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b26842/b26842.5.0
2007-05-25 11:13:32 +05:00
unknown
33f40d86e1 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug28561
2007-05-24 16:16:19 -07:00
unknown
180b8eed6a Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-24 22:26:49 +02:00
unknown
9202b48b5e Bug #28653 Fast GCP + high load + high RedoBuffer causes ndbrequire
- correction, use recomputed _actual_ redobuffer
2007-05-24 21:02:01 +02:00
unknown
98a46edb23 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
2007-05-24 20:59:46 +02:00
unknown
6c78927888 Merge pilot.blaudden:/home/msvensson/mysql/bug26664/my50-bug26664
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint


libmysql/libmysql.c:
  Auto merged
sql-common/client.c:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
2007-05-24 20:51:37 +02:00
unknown
c8236f564c Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  vajra.(none):/opt/local/work/mysql-5.0-runtime


sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-05-24 19:23:52 +04:00
unknown
7be03ef01f Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b28464.new/b28464.new.5.0


sql/item.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/item.cc:
  SCCS merged
2007-05-24 20:21:04 +05:00
unknown
3791e35f79 Fix for
bug #26842: master binary log contains invalid queries - replication fails
bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements

Problem:  
binlogging PS' we may produce syntacticly incorrect queries in the binlog replacing 
some parameters with variable names (instead of variable values).
E.g. in the reported case of "limit ?" clause: replacing "?" with "@var"
produces "limit @var" which is not a correct SQL syntax. 
Also it may lead to different query execution on slave if we
set and use a variable in the same statement, e.g.
"insert into t1 values (@x:=@x+1, ?)"

Fix: make the stored statement string created upon its execution use variable values
(instead of names) to fill placeholders.


mysql-test/r/ctype_cp932_binlog.result:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - result adjusted.
mysql-test/r/ctype_cp932_notembedded.result:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - result adjusted.
mysql-test/r/rpl_user_variables.result:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - test result.
mysql-test/t/ctype_cp932_binlog.test:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - test adjusted.
mysql-test/t/rpl_user_variables.test:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - test case.
sql/sql_prepare.cc:
  Fix for
  bug #26842: master binary log contains invalid queries - replication fails
  bug #12826: Possible to get inconsistent slave using SQL syntax Prepared Statements
    - set val to the variable's value (escaped if needed) then insert it into the query
      string in the position of the placeholder. We don't need to call
      get_var_with_binlog() here as there is no trace of the variable's name in the binlog.
2007-05-24 15:35:43 +05:00
unknown
e079e20499 Merge pilot.blaudden:/home/msvensson/mysql/bug27438/my50-bug27438
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-05-24 12:04:03 +02:00
unknown
945f3c2cc8 Bug#26664 test suite times out on OS X 64bit
- The "mysql client in mysqld"(which is used by
   replication and federated) should use alarms instead of setting
   socket timeout value if the rest of the server uses alarm. By
   always calling 'my_net_set_write_timeout'
   or 'my_net_set_read_timeout' when changing the timeout value(s), the
   selection whether to use alarms or timeouts will be handled by
   ifdef's in those two functions. 
 - Move declaration of 'vio_timeout' into "vio_priv.h"


include/mysql_com.h:
  Move the net_set_*_timeout function declarations to mysql_com.h and
  rename to my_net_set_*_timeout to avoid name clashes
include/violite.h:
  Move declaration of 'vio_timeout' to vio_priv.h (to make
  the function as private as possible)
libmysql/libmysql.c:
  Use my_net_read_timeout or my_net_write_timeout when setting
  the timeouts. Move the global variables for my_net_read/my_write_timeout
  into the only place where they are used. Thus removing them...
server-tools/instance-manager/mysql_connection.cc:
  Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql-common/client.c:
  Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql/mysql_priv.h:
  Move the net_set_*_timeout function declarations to mysql_com.h
sql/net_serv.cc:
  No need to cast the net->write_timeout value from "uint" to "uint"
sql/set_var.cc:
  Rename net_set_*_timeout to my_net_set_*_timeout
sql/sql_client.cc:
  Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql/sql_parse.cc:
  Rename net_set_*_timeout to my_net_set_*_timeout
sql/sql_repl.cc:
  Rename net_set_*_timeout to my_net_set_*_timeout
vio/vio_priv.h:
  Move declaration of 'vio_timeout' to vio_priv.h
vio/viosocket.c:
  Cleanup 'vio_timeout'
   - Use "const void*" on POSIX and "const char*" on windows for
     setsockopt
   - Add DBUG_PRINT's
   - Add comment about why we don't have an implementation of
    vio_timeout for platforms not supporting SO_SNDTIMEO or SO_RCVTIMEO
2007-05-24 11:21:27 +02:00
unknown
0629727088 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-05-24 09:27:53 +02:00
unknown
6df02cf7d7 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build


configure.in:
  Auto merged
include/my_global.h:
  Auto merged
sql/item_func.cc:
  Auto merged
strings/strtod.c:
  Auto merged
2007-05-24 09:22:00 +02:00
unknown
37f1e22247 Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work
2007-05-24 09:12:29 +02:00
unknown
48af05a8e9 Fixed bug #28561: assertion abort for update on multi-table view with
CHECK OPTION and a subquery in WHERE condition.
The abort was triggered by setting the value of join->tables for
subqueries in the function JOIN::cleanup. This function was called
after an invocation of the JOIN::join_free method for subqueries
used in WHERE condition.


mysql-test/r/view.result:
  Added a test case for bug #28561.
mysql-test/t/view.test:
  Added a test case for bug #28561.
sql/sql_select.cc:
  Fixed bug #28561: assertion abort for update on multi-table view with
  CHECK OPTION and a subquery in WHERE condition.
  The abort was triggered by setting the value of join->tables for
  subqueries in the function JOIN::cleanup. This function was called
  after an invocation of the JOIN::join_free method for subqueries
  used in WHERE condition.
  Setting the value of join->tables to for a subquery created serious
  problems for checking WHERE condition after update of the multi-table
  view as this check is performed in the do_select function right
  after a call of the JOIN::join_free method.
  In fact setting join->tables to 0 in JOIN::cleanup is not needed 
  anywhere in the current code.
2007-05-23 19:04:12 -07:00
unknown
c57d6f729d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/27563-bug-5.0-opt-mysql


sql/item_func.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
2007-05-23 23:31:33 +04:00
unknown
1734b4e990 Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
If a stored function or a trigger was killed it had aborted but no error
was thrown. This allows the caller statement to continue without a notice.
This may lead to a wrong data being inserted/updated to/deleted as in such
cases the correct result of a stored function isn't guaranteed. In the case
of triggers it allows the caller statement to ignore kill signal and to
waste time because of re-evaluation of triggers that always will fail
because thd->killed flag is still on.

Now the Item_func_sp::execute() and the sp_head::execute_trigger() functions
check whether a function or a trigger were killed during execution and
throws an appropriate error if so.
Now the fill_record() function stops filling record if an error was reported
through thd->net.report_error.


sql/item_func.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the Item_func_sp::execute() function checks whether a trigger was killed
  during execution and throws an appropriate error if so.
sql/sp_head.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the sp_head::execute_trigger() function checks whether a function was
  killed during execution and throws an appropriate error if so.
sql/sql_base.cc:
  Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
  Now the fill_record() function stops filling record if an error was reported
  through thd->net.report_error.
mysql-test/r/kill.result:
  Added a test case for the bug#27563: Stored functions and triggers wasn't
  throwing an error when killed.
mysql-test/t/kill.test:
  Added a test case for the bug#27563: Stored functions and triggers wasn't
  throwing an error when killed.
2007-05-23 23:24:16 +04:00
unknown
8998080a37 Bug #28250: Run-Time Check Failure #3 - The variable 'value' is
being used without being def

Inside method Item_func_unsigned::val_int, the variable value 
can be returned without being initialized when the CAST argument
is of type DECIMAL and has a NULL value. This gives a run-time 
error when building debug binaries using Visual C++ 2005.

Solution: Initialize value to 0


mysql-test/t/cast.test:
  bug#28250: There is no need for an extra test case, but we
  recognize that this one catches the bug.
sql/item_func.cc:
  bug#28250: initialization of value.
2007-05-23 14:43:06 +02:00
unknown
a53b80b3f3 Bug#27636 mysqlbinlog-cp932 and ctype_cp932 tests fails if LC_* variables set to *_*.UTF-8
As MySQL character set tests can print results in many character sets
(latin1, utf8-8, sjis, cp932 and others) - its output can be incompatible
with the current locale settings, which makes PERL confuse.

Fix: reset LC_ALL and LC_CTYPE to "C", which is compatible with
any character set.


mysql-test/mysql-test-run.pl:
  Ignore current locale settings, because "mysqltest" output
  can be not compatible with the locale.
2007-05-23 17:32:40 +05:00
unknown
06570d97d9 Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b28509/b28509.5.0
2007-05-23 16:31:22 +05:00
unknown
f9d7642e7b 5.0 version of fix for:
Bug #23667 "CREATE TABLE LIKE is not isolated from alteration
             by other connections"
 Bug #18950 "CREATE TABLE LIKE does not obtain LOCK_open"
As well as:
 Bug #25578 "CREATE TABLE LIKE does not require any privileges
             on source table".

The first and the second bugs resulted in various errors and wrong
binary log order when one tried to execute concurrently CREATE TABLE LIKE
statement and DDL statements on source table or DML/DDL statements on its
target table.

The problem was caused by incomplete protection/table-locking against
concurrent statements implemented in mysql_create_like_table() routine.
We solve it by simply implementing such protection in proper way (see
comment for sql_table.cc for details).

The third bug allowed user who didn't have any privileges on table create
its copy and therefore circumvent privilege check for SHOW CREATE TABLE.

This patch solves this problem by adding privilege check, which was missing.

Finally it also removes some duplicated code from mysql_create_like_table().

Note that, altough tests covering concurrency-related aspects of CREATE TABLE
LIKE behaviour will only be introduced in 5.1, they were run manually for
this patch as well.


mysql-test/r/grant2.result:
  Added test for bug#25578 "CREATE TABLE LIKE does not require any privileges
  on source table".
mysql-test/t/grant2.test:
  Added test for bug#25578 "CREATE TABLE LIKE does not require any privileges
  on source table".
sql/handler.h:
  Introduced new flag for HA_CREATE_INFO::options in order to be able to
  distinguish CREATE TABLE ... LIKE from other types of CREATE TABLE.
sql/mysql_priv.h:
  mysql_create_like_table() now takes source table name not as a
  Table_ident object but as regular table list element.
sql/sql_parse.cc:
  CREATE TABLE ... LIKE implementation now uses statement's table list
  for storing information about the source table. We also use flag
  in LEX::create_info.options for distinguishing it from other types
  of CREATE TABLE.
  Finally CREATE TABLE ... LIKE now requires the same privileges on
  the source tables as SHOW CREATE TABLE. Moved this privilege check
  to check_show_create_table_access() function.
sql/sql_table.cc:
  mysql_create_like_table():
   - Provided proper protection from concurrent statements.
     This is achieved by keeping name-lock on the source table and holding
     LOCK_open mutex during whole operation. This gives protection against
     concurrent DDL on source table. Also holding this mutex makes copying
     of .frm file, call to ha_create_table() and binlogging atomic against
     concurrent DML and DDL operations on target table.
   - Get rid of duplicated code related to source database/table name
     handling. All these operations are already done in
     st_select_lex::add_table_to_list(), so we achieve the same effect
     by including source table into the statement's table list.
sql/sql_yacc.yy:
  Now we use special flag in LEX::create_info::options for distinguishing
  CREATE TABLE ... LIKE from other types of CREATE TABLE and store name
  of source table as regular element in statement's table list.
2007-05-23 15:22:13 +04:00
unknown
ce473a575d Merge shellback.(none):/home/msvensson/mysql/mysql-4.1-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Merge 4.1 -> 5.0
2007-05-23 12:20:11 +02:00
unknown
0930f20889 Merge bk-internal:/home/bk/mysql-4.1-maint
into  shellback.(none):/home/msvensson/mysql/mysql-4.1-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2007-05-23 12:15:25 +02:00