Commit graph

30753 commits

Author SHA1 Message Date
unknown
4a25f40090 BUG#16803 "ln -s /dev/null .mysql_history" doesn't work!
- Add a check to see if the .mysql_history file a symlink to /dev/null 
   and in such case, skip reading and writing to it. 
     


client/mysql.cc:
  Add check to detect if the "mysql_history" file is a symlink to /dev/null.
  In that case, don't create histfile variable.
  That will make read_history and write_history to be skipped.
2006-05-09 11:01:50 +02:00
unknown
c7e2527c9a Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


sql/item_func.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2006-05-09 10:44:19 +02:00
unknown
0d3825a67e Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysqltest.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2006-05-09 08:26:25 +02:00
unknown
c06972bf2a Bug #1039: tmpdir and datadir not available via @@ system variable syntax
Bug #19606: ssl variables are not displayed in show variables
Bug #19616: log_queries_not_using_indexes  is not listed in show variables

  Make basedir, datadir, tmpdir, log_queries_not_using_indexes, ssl_ca,
  ssl_capath, ssl_cert, ssl_cipher, and ssl_key all available both from
  SHOW VARIABLES and as @@variables.

  As a side-effect of this change, log_queries_not_using_indexes can
  be changed at runtime (but only globally, not per-connection).


include/sslopt-longopts.h:
  Put options in alphabetical order
include/sslopt-vars.h:
  Allow define of SSL_VARS_NOT_STATIC to prevent variables from not being
  made static.
mysql-test/r/variables.result:
  Add new results
mysql-test/t/variables.test:
  Add new regression tests
sql/mysql_priv.h:
  Add extern for opt_log_queries_not_using_indexes
sql/mysqld.cc:
  Handle opt_log_queries_not_using_indexes as extern, and define
  SSL_VARS_NO_STATIC so they can be accessed outside of mysqld.cc
sql/set_var.cc:
  Handle basedir, datadir, tmpdir, log_queries_not_using_indexes, and
  various ssl settings so that they are accessible as server variables
  and listed in SHOW VARIABLES.
sql/set_var.h:
  Add new sys_var_constr_str_ptr class, for when we have a system variable
  that is only set via the command-line that is a pointer to a string.
2006-05-08 16:38:45 -07:00
unknown
42f20d7538 2006-05-09 00:11:54 +02:00
unknown
db122e949b Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-release
into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new


configure.in:
  Auto merged
2006-05-09 00:02:33 +02:00
unknown
bc32493732 Remove valgrind and compiler warnings
Add function 'vio_end' that will cleanup resources allocated by vio and the components it uses.


include/violite.h:
  Import patch warnings.patch
libmysql/libmysql.c:
  Import patch warnings.patch
sql/mysqld.cc:
  Import patch warnings.patch
vio/test-ssl.c:
  Import patch warnings.patch
vio/test-sslclient.c:
  Import patch warnings.patch
vio/test-sslserver.c:
  Import patch warnings.patch
vio/vio.c:
  Import patch warnings.patch
vio/viosslfactories.c:
  Import patch warnings.patch
2006-05-08 17:14:06 +02:00
unknown
c593d1f1ca Merge neptunus.(none):/home/msvensson/mysql/my50-maint-bug18474
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-05-08 16:44:37 +02:00
unknown
fa91c7bc60 Merge 192.168.0.20:mysql/my50-maint-yassl
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


extra/yassl/src/ssl.cpp:
  Auto merged
extra/yassl/taocrypt/src/make.bat:
  Auto merged
extra/yassl/testsuite/test.hpp:
  Auto merged
2006-05-08 16:38:24 +02:00
unknown
f272d3272a ndb - bug#14509, part 1: move autoincr pre-fetch from Ndb to local dict cache
mysql-test/r/ndb_alter_table.result:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
mysql-test/t/ndb_alter_table.test:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/include/ndbapi/Ndb.hpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/src/ndbapi/DictCache.cpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/src/ndbapi/DictCache.hpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/src/ndbapi/Ndb.cpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
ndb/src/ndbapi/Ndbinit.cpp:
  bug#14509, part 1
  move cached autoincr range from Ndb object to local dict cache (Ndb_local_table_info)
  remove private methods get/read/setTupleId by table name or table id
2006-05-08 15:19:17 +02:00
unknown
1a97d50ba8 Bug#19263: variables.test doesn't clean up after itself
save global server variables before fiddling with them and restore them later


BitKeeper/deleted/.del-variables-master.opt~8a6cb6459b54545:
  Delete: mysql-test/t/variables-master.opt
mysql-test/r/variables.result:
  save and restore globals
mysql-test/t/variables.test:
  save and restore globals
2006-05-08 14:59:29 +02:00
unknown
82a3779449 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0


support-files/mysql.spec.sh:
  Auto merged
ndb/src/mgmsrv/Services.cpp:
  merge
2006-05-08 07:56:26 +02:00
unknown
2dce78e8f6 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1
into  perch.ndb.mysql.com:/home/jonas/src/mysql-4.1


support-files/mysql.spec.sh:
  Auto merged
2006-05-08 07:48:08 +02:00
unknown
dd934da915 Bug#10418: LOAD_FILE does not behave like in manual if file does not exist
load_file() string-function should return NULL rather than throw an error if
the file doesn't exist, as per the manual.


mysql-test/t/outfile.test:
  expect NULL rather than error if file given to load_file() doesn't exist
mysql-test/t/func_str.test:
  show that load_file() will return NULL rather than throw an error
  if file doesn't exist
mysql-test/r/outfile.result:
  expect NULL rather than error if file given to load_file() doesn't exist
mysql-test/r/func_str.result:
  expect NULL rather than error if file given to load_file() doesn't exist
sql/item_strfunc.cc:
  load_file() should return NULL as per the docs if file not found,
  rather than throw an error
2006-05-08 04:37:58 +02:00
unknown
47302570e6 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into  rurik.mysql.com:/home/igor/mysql-5.0


mysql-test/r/rpl_user_variables.result:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/t/rpl_user_variables.test:
  Manual merge
2006-05-07 16:24:03 -07:00
unknown
5aa69d34a7 Post-merge fixes. 2006-05-07 16:14:43 -07:00
unknown
30a7094f96 Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0


mysql-test/r/having.result:
  Auto merged
mysql-test/t/having.test:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
mysql-test/r/rpl_user_variables.result:
  Manual merge
mysql-test/t/rpl_user_variables.test:
  Manual merge
sql/sql_lex.cc:
  Manual merge
sql/sql_prepare.cc:
  Manual merge
sql/sql_select.cc:
  Manual merge
2006-05-07 14:06:12 -07:00
unknown
e4e67d587e Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into  rurik.mysql.com:/home/igor/mysql-4.1
2006-05-07 11:25:33 -07:00
unknown
c438e4903c Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.0-bug19136


sql/sql_select.cc:
  Auto merged
2006-05-07 20:03:08 +03:00
unknown
a910a0bf69 Bug#19136: Crashing log-bin and uninitialized user variables in a derived table
recalculating results


mysql-test/r/rpl_user_variables.result:
  fixing results
2006-05-07 19:54:57 +03:00
unknown
5b09d7a5e1 BUG#16798: Merge into 5.0: s/used_tables()/!const_item()/, added comment about its effects. 2006-05-07 19:01:49 +04:00
unknown
7139089aa5 Refactoring: Factor out common code from find_best() and best_access_path(): make
find_best() call best_access_path().
2006-05-07 18:07:08 +04:00
unknown
048469eb79 Merge mysql.com:/usr_rh9/home/elkin.rh9/4.1
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.0-bug19136


sql/item_func.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/rpl_user_variables.result:
  manual merge use local
mysql-test/t/rpl_user_variables.test:
  manual merge use version 5.0's "show binlog events from 98"
2006-05-07 16:02:55 +03:00
unknown
ce6a2d32b3 Merge mysql.com:/usr_rh9/home/elkin.rh9/MySQL/BARE/4.1
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/FIXES/4.1-bug19136_unass_user_var


sql/item_func.cc:
  Auto merged
2006-05-07 11:43:27 +03:00
unknown
375749b8af Fixed bug #14927.
A query with a group by and having clauses could return a wrong
result set if the having condition contained a constant conjunct 
evaluated to FALSE.
It happened because the pushdown condition for table with
grouping columns lost its constant conjuncts.
Pushdown conditions are always built by the function make_cond_for_table
that ignores constant conjuncts. This is apparently not correct when
constant false conjuncts are present.



mysql-test/r/having.result:
  Added a test case for bug #14927.
mysql-test/t/having.test:
  Added a test case for bug #14927.
sql/sql_lex.cc:
  Fixed bug #14927.
  Initialized fields for having conditions in  st_select_lex::init_query().
sql/sql_lex.h:
  Fixed bug #14927.
  Added a field to restore having condititions for execution in SP and PS.
sql/sql_prepare.cc:
  Fixed bug #14927.
  Added code to restore havinf conditions for execution in SP and PS.
sql/sql_select.cc:
  Fixed bug #14927.
  Performed evaluation of constant expressions in having clauses.
  If the having condition contains a constant conjunct that is always false
  an empty result set is returned after the optimization phase.
  In this case the corresponding EXPLAIN command now returns 
  "Impossible HAVING" in the last column.
2006-05-06 23:48:13 -07:00
unknown
c23774128a Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-bug16798-merge
2006-05-06 22:24:39 +04:00
unknown
427bcfb440 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug16798
2006-05-06 22:15:27 +04:00
unknown
c27793a3da Merge mysql.com:/home/tomash/src/mysql_ab/tmp_merge
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-merge


mysql-test/r/func_misc.result:
  Auto merged
mysql-test/t/func_misc.test:
  Auto merged
2006-05-06 19:45:24 +04:00
unknown
253c61336b Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-05-06 18:45:07 +04:00
unknown
322ed9ccf4 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug10405
2006-05-06 16:42:59 +02:00
unknown
f36a42f7db Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
2006-05-06 18:40:56 +04:00
unknown
a60bd69777 Fix race condition in the test for bug#16501.
mysql-test/r/func_misc.result:
  Update the result.
2006-05-06 18:24:41 +04:00
unknown
02f77d9f71 Merge mysql.com:/home/mydev/mysql-4.1
into  mysql.com:/home/mydev/mysql-4.1-bug10405
2006-05-06 15:27:23 +02:00
unknown
f9112ce6ba Merge mysql.com:/home/mydev/mysql-5.0
into  mysql.com:/home/mydev/mysql-5.0-bug10405
2006-05-06 13:35:48 +02:00
unknown
f4d209b015 Partial fix for BUG#14106: IM: im_life_cycle and im_utils
tests fail on FreeBSD.

The patch contains of the following:
  - make Instance Manager, running in the daemon mode, dump
    the pid of angel-process in the special file;
  - default value of angel-pid-file-name is 'mysqlmanager.angel.pid';
  - if ordinary (IM) pid-file-name is specified in the configuration,
    angel-pid-file-name is updated according to the following
    rule: extension of the basename of pid-file-name is replaced by
    '.angel.pid.
    For example:
    - pid-file-name: /tmp/im.pid
      => angel-pid-file-name: /tmp/im.angel.pid
    - pid-file-name: /tmp/im.txt
      => angel-pid-file-name: /tmp/im.angel.pid
    - pid-file-name: /tmp/5.0/im
      => angel-pid-file-name: /tmp/5.0/im.angel.pid
  - add support for configuration option to customize angel
    pid file name;
  - fix test suite to use angel pid to kill Instance Manager
    by all means if something went wrong.

Background
----------

The problem is that on some OSes (FreeBSD for one) Instance
Manager does not get SIGTERM, so can not shutdown gracefully.
Test suite wasn't able to cope with it, so this leads to the
mess in test results.

The problem should be split into two:
  - fix signal handling;
  - fix test suite.

This patch fixes test suite so that it will be able to kill
uncooperative Instance Manager. In order to achieve this,
test suite needs to know PID of IM Angel process.


mysql-test/lib/mtr_process.pl:
  Added a function to send a signal to a process.
mysql-test/mysql-test-run.pl:
  Changed procedure of stopping Instance Manager.
  1. Try to stop IM normally (by sending SIGTERM);
  2. If one of IM-related processes is still alive,
  kill them all by SIGKILL and complain in the log.
server-tools/instance-manager/manager.cc:
  Made create_pid_file() available for the whole project.
server-tools/instance-manager/manager.h:
  Made create_pid_file() available for the whole project.
server-tools/instance-manager/mysqlmanager.cc:
  Dump PID of angel process into file.
server-tools/instance-manager/options.cc:
  Added an option to allow to customize angel pid file name.
server-tools/instance-manager/options.h:
  Added an option to allow to customize angel pid file name.
2006-05-06 13:57:56 +04:00
unknown
59ff52747d Fix for bug #17260 "Multiple invocations of triggers or stored functions
hog memory".

During each invocation of stored function or trigger some objects which
lifetime is one function call (e.g. sp_rcontext) were allocated on
arena/memroot of calling statement. This led to consumption of fixed amount
of memory for each function/trigger invocation and so statements which
involve lot of them were hogging memory. This in its return led to OOM
crashes or freezes.

This fix introduces new memroot and arena for objects which lifetime is
whole duration of function call. So all memory consumed by such objects
is freed at the end of function call.


sql/sp_head.cc:
  sp_head::execute_function():
    Introduced new memroot and arena for objects which lifetime is whole
    duration of function call (e.g. sp_rcontext, sp_cursor). We can't
    use caller's arena/memroot for those objects because in this case 
    some fixed amount of memory will be consumed for each function/trigger
    invocation and so statements which involve lot of them will hog memory.
    Got rid of param_values array to avoid excessive juggling with arenas.
2006-05-06 13:51:35 +04:00
unknown
447d5a0fac Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug16798
2006-05-06 13:48:20 +04:00
unknown
3f54cb9cc6 Merge mysql.com:/home/psergey/mysql-4.1-bug16798
into mysql.com:/home/psergey/mysql-5.0-bug16798-merge


sql/sql_select.cc:
  Auto merged
2006-05-06 13:19:09 +04:00
unknown
c13144722a BUG#16798: Inapplicable ref_or_null query plan and bad query result on random occasions
The bug was as follows: When merge_key_fields() encounters "t.key=X OR t.key=Y" it will 
try to join them into ref_or_null access via "t.key=X OR NULL". In order to make this 
inference it checks if Y<=>NULL, ignoring the fact that value of Y may be not yet known.

The fix is that the check if Y<=>NULL is made only if value of Y is known (i.e. it is a
constant).
TODO: When merging to 5.0, replace used_tables() with const_item() everywhere in merge_key_fields().


mysql-test/r/innodb_mysql.result:
  Testcase for BUG16798
mysql-test/t/innodb_mysql.test:
  Testcase for BUG16798
sql/sql_select.cc:
  BUG#16798: Inapplicable ref_or_null query plan and bad query result on random occasions 
  In merge_key_fields() don't call val->is_null() if the value of val is not known.
2006-05-06 13:15:00 +04:00
unknown
8052fafd31 Reapply fix for bug#16372 (Server crashes when test 'conc_sys' is running)
after merge.

Concurrent read and update of privilege structures (like simultaneous
run of SHOW GRANTS and ADD USER) could result in server crash.

Ensure that proper locking of ACL structures is done.

No test case is provided because this bug can't be reproduced
deterministically.


sql/sql_acl.cc:
  Ensure that access to ACL data is protected by acl_cache->lock mutex.
  Use system_charset_info for host names consistently.
  Remove check_acl_user().  Use find_acl_user() instead.
sql/sql_acl.h:
  Remove check_acl_user() declaration.
sql/sql_parse.cc:
  Use is_acl_user() instead of check_acl_user().
2006-05-06 11:25:59 +04:00
unknown
77b7a71dd4 Merge mysql.com:/home/tomash/src/mysql_ab/tmp_merge
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-merge


mysql-test/r/func_misc.result:
  Manual merge of the fix for bug#16501.
mysql-test/t/func_misc.test:
  Manual merge of the fix for bug#16501.
sql/item_func.cc:
  Manual merge of the fix for bug#16501.
sql/sql_acl.cc:
  For the fix of bug#16372, use local version, since the fix for 5.0 is
  different, and will go in separate ChangeSet.
2006-05-06 11:18:42 +04:00
unknown
5e5f38ac3f Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-real
2006-05-06 10:09:56 +04:00
unknown
9f606932f7 Fix race condition of concurrent RENAME and SHOW TABLES which caused
random test failures.


mysql-test/t/rename.test:
  Fix race condition and add cleanup code.
2006-05-06 09:41:24 +04:00
unknown
b1e20006b6 Bug#16997 Table rename that changes database does not rename indexes, recreate indexes in new database 2006-05-05 17:18:47 +02:00
unknown
0757e68d67 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  hundin.mysql.fi:/home/jani/mysql-5.0merge_4_1_2nd
2006-05-05 14:25:33 +03:00
unknown
5f3bc525e3 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0
into  hundin.mysql.fi:/home/jani/mysql-5.0merge_4_1_2nd
2006-05-05 12:46:15 +03:00
unknown
e9399dc286 Merge mysql.com:/space/pekka/ndb/version/my50
into  mysql.com:/space/pekka/ndb/version/my50-work
2006-05-05 11:18:30 +02:00
unknown
c3398d13de Import from yaSSL
extra/yassl/include/openssl/ssl.h:
  Import patch yassl.diff
extra/yassl/testsuite/test.hpp:
  Import patch yassl.diff
2006-05-05 10:35:12 +02:00
unknown
30c4210d70 Import from yaSSL
extra/yassl/examples/client/client.cpp:
  Import patch yassl.diff
extra/yassl/examples/echoclient/echoclient.cpp:
  Import patch yassl.diff
extra/yassl/examples/echoserver/echoserver.cpp:
  Import patch yassl.diff
extra/yassl/examples/server/server.cpp:
  Import patch yassl.diff
extra/yassl/include/openssl/ssl.h:
  Import patch yassl.diff
extra/yassl/include/yassl_types.hpp:
  Import patch yassl.diff
extra/yassl/src/make.bat:
  Import patch yassl.diff
extra/yassl/src/ssl.cpp:
  Import patch yassl.diff
extra/yassl/src/yassl_imp.cpp:
  Import patch yassl.diff
extra/yassl/src/yassl_int.cpp:
  Import patch yassl.diff
extra/yassl/taocrypt/benchmark/make.bat:
  Import patch yassl.diff
extra/yassl/taocrypt/src/make.bat:
  Import patch yassl.diff
extra/yassl/taocrypt/test/make.bat:
  Import patch yassl.diff
extra/yassl/testsuite/make.bat:
  Import patch yassl.diff
extra/yassl/testsuite/testsuite.cpp:
  Import patch yassl.diff
2006-05-05 10:33:04 +02:00
unknown
4ab4631b06 Bug#19136: Crashing log-bin and uninitialized user variables in a derived table
The reason of the bug is in that `get_var_with_binlog' performs missed
assingment of
the variables as side-effect. Doing that it eventually calls
`free_underlaid_joins' to pass as an argument `thd->lex->select_lex' of the lex
which belongs to the user query, not 
to one which is emulated i.e SET @var1:=NULL.


`get_var_with_binlog' is refined to supply a temporary lex to sql_set_variables's stack.


mysql-test/r/rpl_user_variables.result:
  results changed
mysql-test/t/rpl_user_variables.test:
  a problematic query to be binlogged is added
sql/item_func.cc:
  BUG#19136: Crashing log-bin and uninitialized user variables
  
  The reason of the bug is in that how `get_var_with_binlog' performs missed
  assingment of the variables: `free_underlaid_joins' gets as an argument `thd->lex->select_lex'
  which belongs to the user query, not to one which is emulated i.e SET @var1:=NULL.
  
  `get_var_with_binlog' is refined to supply a temporary lex to sql_set_variables's stack.
2006-05-05 11:21:21 +03:00