Commit graph

53373 commits

Author SHA1 Message Date
unknown
cd14c3c91e Disable cast.test due to Bug#35594. 2008-03-27 13:42:42 +03:00
unknown
4d001035f3 Merge adventure.(none):/home/thek/Development/cpp/bug33275/my51-bug33275
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


sql/sql_acl.cc:
  Auto merged
2008-03-26 14:20:12 +01:00
unknown
266fc6121b Corrected result-file merge error. 2008-03-26 14:03:01 +01:00
unknown
27c0540bd8 Dummy change to force PushBuild. 2008-03-26 13:15:03 +03:00
unknown
c49632cf96 Dummy change to force PushBuild. 2008-03-26 13:14:30 +03:00
unknown
6df9a37d14 Merge adventure.(none):/home/thek/Development/cpp/bug33275/my50-bug33275
into  adventure.(none):/home/thek/Development/cpp/bug33275/my51-bug33275


sql/sql_acl.cc:
  Auto merged
mysql-test/r/grant.result:
  Manual merge
mysql-test/t/grant.test:
  Manual merge
2008-03-26 11:07:10 +01:00
unknown
ca57d04083 Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-03-25 23:09:05 +03:00
unknown
2daa016827 Eliminating compiler warnings.
sql/set_var.h:
  Changing order of initializer list for sys_var class constructor to
  eliminate compiler warning.
mysql-test/suite/binlog/combinations:
  New BitKeeper file ``mysql-test/suite/binlog/combinations''
2008-03-25 15:20:42 +01:00
unknown
a928353868 Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged


sql/sql_delete.cc:
  Auto merged
2008-03-25 14:54:48 +03:00
unknown
6cd3a1503b Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged


sql/sql_delete.cc:
  Auto merged
2008-03-25 14:54:08 +03:00
unknown
4816e7b7fb Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt-merged


sql/sql_delete.cc:
  Auto merged
2008-03-25 14:53:23 +03:00
unknown
a3126bfc2e Bug#33275 Server crash when creating temporary table mysql.user
When creating a temporary table that uses the same name as the mysql
privs table the server would crash on FLUSH PRIVILEGES.

This patches corrects the problem by setting a flag to ignore any
temporary table when trying to reload the privileges.


mysql-test/r/grant.result:
  Test for checking shadowing of privilege tables
mysql-test/t/grant.test:
  Test for checking shadowing of privilege tables
sql/sql_acl.cc:
  Set flag for ignoring temporary tables when trying to reload privileges.
2008-03-25 12:52:55 +01:00
unknown
33dde6ebfa Patch for bug 28386 enabled table logging for all tests in
mysql_client_test causing a severe slowdown and increase
in memory usage, especially for test cases with long queries.

The solution is to enable the general log only in tests that
actually need the general log and disable it during the
execution of all other tests.


tests/mysql_client_test.c:
  Selectively enable and disable the general log.
2008-03-24 22:39:48 -03:00
unknown
28cd75fec4 Fix for Bug#34274: Invalid handling of 'DEFAULT 0'
for YEAR data type.

The problem was that for some unknown reason 0 was not allowed
as a default value for YEAR data type. That was coded before BK.
However the Manual does not say a word about such a limitation.
Also, it looks inconsistent with other data types.

The fix is to allow 0 as a default value.


mysql-test/r/create.result:
  Update result file.
mysql-test/t/create.test:
  Add a test case for Bug#34274: Invalid handling of 'DEFAULT 0'
  for YEAR data type.
sql/unireg.cc:
  Allow 0 as a default value for YEAR data type.
2008-03-22 11:32:24 +03:00
unknown
9965de17ba Fix result files (Bug#21854).
mysql-test/r/information_schema_db.result:
  Update result file.
mysql-test/r/sp-security.result:
  Update result file.
mysql-test/r/trigger_notembedded.result:
  Update result file.
mysql-test/r/view_grant.result:
  Update result file.
2008-03-22 11:01:31 +03:00
unknown
d05f6b9fb8 A patch for Bug#21854: Problems with CREATE TRIGGER without
DEFINER clause in --skip-grant-tables mode.

Update error message.


mysql-test/r/information_schema_db.result:
  Update result file.
mysql-test/r/sp-security.result:
  Update result file.
mysql-test/r/trigger_notembedded.result:
  Update result file.
mysql-test/r/view_grant.result:
  Update result file.
sql/share/errmsg.txt:
  Update error message.
2008-03-21 18:34:12 +03:00
unknown
8eb0166801 Fix tree. 2008-03-21 10:52:00 +03:00
unknown
1975532945 A test case for Bug#29958: Weird message on DROP DATABASE
if mysql.proc does not exist.


mysql-test/r/drop.result:
  Update result file.
mysql-test/t/drop.test:
  Add a test case for Bug#29958: Weird message on DROP DATABASE
  if mysql.proc does not exist.
2008-03-20 11:36:35 +03:00
unknown
23d4ab3bf8 Merge mysql.com:/Users/davi/mysql/mysql-5.0-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime


include/my_pthread.h:
  Auto merged
2008-03-19 15:52:22 -03:00
unknown
edce44eea0 Bug#30960 processlist state '*** DEAD ***' on recent 5.0.48 windows builds
The problem is that unimplemented WIN32 version of pthread_kill
is returning ESRCH no matter the arguments, causing calls to
mysqld_list_processes to set the procinfo to dead because
pthread_kill returns non zero. The dead procinfo would show
up on a second invocation of show processlist.


include/my_pthread.h:
  When unimplemented, pthread_kill must return zero for
  any process id other then zero.
2008-03-19 15:01:03 -03:00
unknown
550de36cc5 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


sql/sql_acl.cc:
  Auto merged
2008-03-18 13:31:10 +01:00
unknown
ef82f20662 Merge adventure.(none):/home/thek/Development/cpp/bug25175/my51-bug25175
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2008-03-18 13:29:14 +01:00
unknown
66ca07650f Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged


libmysql/libmysql.c:
  Auto merged
sql-common/client.c:
  Auto merged
tests/mysql_client_test.c:
  Manually merged.
2008-03-18 14:13:33 +03:00
unknown
f77686df0d Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt-merged


libmysql/libmysql.c:
  Auto merged
sql-common/client.c:
  Auto merged
tests/mysql_client_test.c:
  Manually merged.
2008-03-18 13:53:51 +03:00
unknown
07db330a55 Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged


libmysql/libmysql.c:
  Auto merged
sql-common/client.c:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
2008-03-18 13:51:17 +03:00
unknown
001829914b Bug#25175 Too much memory used by MySQL grant system
Each time the server reloads privileges containing table grants, the 
system will allocate too much memory than needed because of badly
chosen growth prediction in the underlying dynamic arrays.

This patch introduces a new signature to the hash container initializer
which enables a much more pessimistic approach in favour for more
efficient memory useage.

This patch was supplied by Google Inc.


include/hash.h:
  * New signature for _hash_init.
  * Defined new function hash_init2 which takes growth_size argument.
mysys/hash.c:
  * New signature for _hash_init.
sql/sql_acl.cc:
  * Changed hash_init signature so that it takes a 'growth_size' smaller
  than the default. Each time a GRANT_TABLE is allocated a pre-allocated
  dynamic array is instantiated. A large growth size can result in too
  many unused hash-entries per table-entry and thus be a waste of free
  memory.
2008-03-18 10:45:36 +01:00
unknown
809522598a Post-merge fixes for Bug 35103
libmysql/libmysql.c:
  Manual merge
sql/sql_class.cc:
  Don't send anything back to the client if disabled.
sql/sql_prepare.cc:
  Don't send any packet back for statement close.
tests/mysql_client_test.c:
  Manual merge
2008-03-17 16:39:09 -03:00
unknown
ce34828e07 Merge buzz.(none):/home/davi/mysql-5.0-runtime
into  buzz.(none):/home/davi/mysql-5.1-runtime


sql-common/client.c:
  Auto merged
sql/sql_prepare.cc:
  Manual merge
tests/mysql_client_test.c:
  Manual merge
libmysql/libmysql.c:
  Manual merge
2008-03-17 16:13:59 -03:00
unknown
23d567aa7c Post-merge fix for Bug 35103.
sql/sql_prepare.cc:
  Don't send unexpected error to the client.
2008-03-17 11:16:37 -03:00
unknown
c1e69a77a6 Avoid races in connect.test.
The problem was in a test case for Bug33507:
  - when the number of active connections reaches the limit,
    the server accepts only root connections. That's achieved by
    accepting a connection, negotiating with the client and
    checking user credentials. If it is not SUPER, the connection
    is dropped.
  - when the server accepts connection, it increases the counter;
  - when the server drops connection, it decreases the counter;
  - the race was in between of decreasing the counter and accepting
    new connection:
    - max_user_connections = 2;
    - 2 oridinary user connections accepted;
    - extra user connection is establishing;
    - server checked user credentials, and sent 'Too many connections'
      error;
    - the client receives the error and establishes extra SUPER user
      connection;
    - the server however didn't decrease the counter (the extra
      user connection still is "alive" in the server) -- so, the new
      SUPER-user connection, will be dropped, because it exceeds
      (max_user_connections + 1).

The fix is to implement "safe connect", which makes several attempts
to connect and use it in the test script.


mysql-test/r/connect.result:
  Update test file.
mysql-test/t/connect.test:
  Avoid races in connect.test.
mysql-test/include/connect2.inc:
  Auxiliary routine to establish a connection reliably.
2008-03-17 14:26:00 +03:00
unknown
30d644f859 A patch for Bug#35329: connect does not set mysql_errno variable.
The problem was that 'connect' command didn't set mysql_errno
variable, thus the script was unable to determine whether connection
was opened or not.

The fix is to set this variable.

Test cases will be added in the scope of Bug33507
into connect.test file.


client/mysqltest.c:
  Set 'mysql_errno' variable.
2008-03-17 13:39:56 +03:00
unknown
063b504772 Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures
The problem was that the COM_STMT_SEND_LONG_DATA was sending a response
packet if the prepared statement wasn't found in the server (due to
reconnection). The commands COM_STMT_SEND_LONG_DATA and COM_STMT_CLOSE
should not send any packets, even error packets should not be sent since
they are not expected by the client API.

The solution is to clear generated during the execution of the aforementioned
commands and to skip resend of prepared statement commands. Another fix is
that if the connection breaks during the send of prepared statement command,
the command is not sent again since the prepared statement is no longer in the
server.


libmysql/libmysql.c:
  The mysql handle might be reset after a reconnection.
  Pass the now used stmt argument to cli_advanced_command.
sql-common/client.c:
  Don't resend command if the connection broke and it's a prepared
  statement command. If the session is broken, prepared statements
  on the server are gone, set the error accordanly.
sql/sql_prepare.cc:
  Clear any error set during the execution of the request
  command.
tests/mysql_client_test.c:
  Fix memory leak by freeing result associated with statement.
  Remove test case for Bug 29948 because it's not reliable in
  5.0 (fixed in 5.1) due to KILL queries sending two packets for
  a thread that kills itself.
2008-03-14 17:40:12 -03:00
unknown
92a09cf98b Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl


sql/slave.cc:
  Auto merged
sql/sql_repl.h:
  Auto merged
2008-03-14 18:38:54 +01:00
unknown
774d21cf3b Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl


mysql-test/include/commit.inc:
  Auto merged
mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/r/commit_1innodb.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
  Auto merged
mysql-test/t/variables.test:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/rpl_rli.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2008-03-14 18:32:01 +01:00
unknown
4097ee7ffa Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
2008-03-14 18:24:02 +01:00
unknown
0b7d39fd5f Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl


mysql-test/suite/binlog/r/binlog_unsafe.result:
  Auto merged
mysql-test/suite/binlog/t/binlog_unsafe.test:
  Auto merged
2008-03-14 18:18:14 +01:00
unknown
4597814717 Post-merge fixes.
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Removing SHOW MASTER STATUS that does not seem to make sense.
mysql-test/extra/rpl_tests/rpl_log.test:
  Correcting test case to sync slave with master.
mysql-test/suite/binlog/r/binlog_unsafe.result:
  Result change.
mysql-test/suite/binlog/t/binlog_unsafe.test:
  Removing unsafe variable from list of safe variables.
mysql-test/suite/rpl/r/rpl_loaddata.result:
  Result change.
mysql-test/suite/rpl/r/rpl_skip_error.result:
  Result change.
mysql-test/suite/rpl/t/rpl_skip_error.test:
  Correcting bad manual+automatic merge. Test is now only relevant for statement-
  based replication.
sql/rpl_rli.cc:
  Correcting automerge undoing previous change of return value.
  Relay_log_info::wait_for_pos() should return -2 when not initialized to work
  correctly.
2008-03-14 17:52:57 +01:00
unknown
2ebee313b5 A fix for Bug#35289: Too many connections -- wrong SQL state
in some case.

ER_CON_COUNT_ERROR is defined with SQL state 08004. However, this SQL state is not always
returned.

This error can be thrown in two cases:

  1. when an ordinary user (a user w/o SUPER privilege) is connecting,
    and the number of active user connections is equal or greater than
    max_connections.

  2. when a user is connecting and the number of active user connections is
    already (max_connections + 1) -- that means that no more connections will
    be accepted regardless of the user credentials.

In the 1-st case, SQL state is correct.

The bug happens in the 2-nd case -- on UNIX the client gets 00000 SQL state, which is
absolutely wrong (00000 means "not error SQL state); on Windows
the client accidentally gets HY000 (which means "unknown SQL state).

The cause of the problem is that the server rejects extra connection
prior to read a packet with client capabilities. Thus, the server
does not know if the client supports SQL states or not (if the client
supports 4.1 protocol or not). So, the server supposes the worst and
does not send SQL state at all.

The difference in behavior on UNIX and Windows occurs because on Windows
CLI_MYSQL_REAL_CONNECT() invokes create_shared_memory(), which returns
an error (in default configuration, where shared memory is not configured).
Then, the client does not reset this error, so when the connection is
rejected, SQL state is HY000 (from the error from create_shared_memory()).

The bug appeared after test case for Bug#33507 -- before that, this behavior
just had not been tested.

The fix is to 1) reset the error after create_shared_memory();
2) set SQL state to 'unknown error' if it was not received from
the server.

A separate test case is not required, since the behavior is already
tested in connect.test.

Note for doc-team: the manual should be updated to say that under
some circumstances, 'Too many connections' has HY000 SQL state.


mysql-test/r/connect.result:
  Update result file.
sql-common/client.c:
  1. Reset an error from create_shared_memory();
  2. Set SQL state to 'unknown error' if it was not received from
     the server.
2008-03-14 15:58:27 +03:00
unknown
64cba9bad9 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-03-13 14:56:25 -03:00
unknown
416ab8532e Bug#34891 sp_notembedded.test fails sporadically
The problem is that since MyISAM's concurrent_insert is on by
default some concurrent SELECT statements might not see changes
made by INSERT statements in other connections, even if the
INSERT statement has returned.

The solution is to disable concurrent_insert so that INSERT
statements returns after the data is actually visible to other
statements.


mysql-test/r/flush_read_lock_kill.result:
  Restore old value of @@global.concurrent_insert
mysql-test/r/kill.result:
  Restore old value of @@global.concurrent_insert
mysql-test/r/sp_notembedded.result:
  Update test case result
mysql-test/t/flush_read_lock_kill.test:
  Restore old value of @@global.concurrent_insert so it
  doesn't affect other tests.
mysql-test/t/kill.test:
  Restore old value of @@global.concurrent_insert so it
  doesn't affect other tests.
mysql-test/t/sp_notembedded.test:
  Disable and restore concurrent_insert value at the end of the
  test case. The test case for Bug 29936 requires that the inserted
  rows need to be visible before a SELECT statement is queued in
  another connection.
  
  Remove sleep at the start of the test, it's not necessary to log
  the result of the processlist command, showing the warnings has
  the same end result.
2008-03-13 14:54:29 -03:00
unknown
1f3c062bc6 Merge quad.:/mnt/raid/alik/MySQL/devel/5.1-rt
into  quad.:/mnt/raid/alik/MySQL/devel/bug-35074/5.1-rt-bug35074
2008-03-13 20:45:18 +03:00
unknown
269ebe5421 Merge kaamos.(none):/data/src/opt/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt


tests/mysql_client_test.c:
  Null merge.
2008-03-13 12:19:56 +03:00
unknown
f20fe94b55 Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures
Disable test case for bug 29948, which is causing sporadically
failures in other tests inside mysql_client_test.


tests/mysql_client_test.c:
  Disable test case.
2008-03-13 12:14:14 +03:00
unknown
c167501bfb Fix for Bug#35074: max_used_connections is not correct.
The problem was that number of threads was used to calculate
max_used_connections.

The fix is to use number of active connections.


mysql-test/r/connect.result:
  Update result file.
mysql-test/t/connect.test:
  - Add a test case for Bug#35074: max_used_connections is not correct;
  - Make a test case for Bug#33507 more stable.
sql/mysqld.cc:
  Use number of connections insetad of threads
  to calculate max_used_connections.
2008-03-13 12:02:12 +03:00
unknown
054341a6d0 Fix manual merge. 2008-03-12 23:07:10 +03:00
unknown
b279be388e Fix for Bug#33507: Event scheduler creates more threads
than max_connections -- which results in user lockout.

The problem was that the variable thread_count that contains
the number of active threads was interpreted as a number of
active connections.

The fix is to introduce a new counter for active connections.


mysql-test/r/connect.result:
  A test case for Bug#33507: Event scheduler creates more threads
  than max_connections -- which results in user lockout.
mysql-test/t/connect.test:
  A test case for Bug#33507: Event scheduler creates more threads
  than max_connections -- which results in user lockout.
sql/mysql_priv.h:
  1. Polishing: login_connection() and end_connection() need not
     to be public.
  
  2. Introduce connection_count -- a variable to contain the number
     of active connections. It is protected by LOCK_connection_count.
sql/mysqld.cc:
  Use connection_count to count active connections.
sql/sql_connect.cc:
  1. Use connection_count to count active connections.
  2. Make login_connection(), end_connection() private for the module
  as they had to be.
2008-03-12 17:44:40 +03:00
unknown
3155a88d6c Fixed test failures caused by insufficient cleanups in the tests for
bug12713.
2008-03-12 16:52:29 +03:00
unknown
d80e7ce4e5 Fix manual merge. 2008-03-12 16:50:24 +03:00
unknown
d958f2984f Merge quad.:/mnt/raid/alik/MySQL/devel/5.0-rt
into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged


sql/sql_delete.cc:
  Manually merged.
2008-03-12 16:29:00 +03:00
unknown
326c4e9058 A fix for Bug#34643: TRUNCATE crash if trigger and foreign key.
In cases when TRUNCATE was executed by invoking mysql_delete() rather
than by table recreation (for example, when TRUNCATE was issued on
InnoDB table with is referenced by foreign key) triggers were invoked.
In debug builds this also led to crash because of an assertion, which
assumes that some preliminary actions take place before trigger 
invocation, which doesn't happen in case of TRUNCATE.

The fix is not to execute triggers in mysql_delete() when this
function is used by TRUNCATE.


mysql-test/r/trigger-trans.result:
  Update result file.
mysql-test/t/trigger-trans.test:
  A test case for Bug#34643: TRUNCATE crash if trigger and foreign key.
sql/sql_delete.cc:
  Do not process triggers in TRUNCATE.
2008-03-12 16:13:33 +03:00