Commit graph

16711 commits

Author SHA1 Message Date
anozdrin/alik@quad.opbmk
1b8fb7733a A patch for Bug#21854: Problems with CREATE TRIGGER without
DEFINER clause in --skip-grant-tables mode.

Update error message.
2008-03-21 18:34:12 +03:00
anozdrin/alik@quad.
edd58be55d 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
anozdrin/alik@quad.opbmk
fa6ed3cf36 Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1
into  quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-03-18 13:51:17 +03:00
anozdrin/alik@quad.
393c54db50 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.
2008-03-17 14:26:00 +03:00
anozdrin/alik@quad.
d3575ce0e4 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.
2008-03-14 15:58:27 +03:00
davi@endora.local
9e9cd68f29 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
davi@mysql.com/endora.local
c964c0b2cf 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.
2008-03-13 14:54:29 -03:00
anozdrin/alik@quad.
5c1e58d4fa 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.
2008-03-13 12:02:12 +03:00
anozdrin/alik@quad.
18125abf93 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.
2008-03-12 17:44:40 +03:00
kaa@kaamos.(none)
06bf29cf0f Fixed test failures caused by insufficient cleanups in the tests for
bug12713.
2008-03-12 16:52:29 +03:00
anozdrin/alik@quad.
44d814f58c Merge quad.:/mnt/raid/alik/MySQL/devel/5.0-rt
into  quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
2008-03-12 16:29:00 +03:00
anozdrin/alik@quad.
2b09a99340 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.
2008-03-12 16:13:33 +03:00
kaa@kaamos.(none)
9c811ddec9 Post-merge fix. 2008-03-12 13:22:58 +03:00
kaa@kaamos.(none)
0a7052e4d3 Merge kaamos.(none):/data/src/mysql-5.1
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-03-12 11:19:46 +03:00
kaa@kaamos.(none)
7e365efa30 Merge kaamos.(none):/data/src/opt/mysql-5.0-opt
into  kaamos.(none):/data/src/opt/mysql-5.1-opt
2008-03-11 15:47:16 +03:00
thek@adventure.(none)
31ff514ea2 Merge adventure.(none):/home/thek/Development/cpp/bug25132/my50-bug25132
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2008-03-10 16:46:38 +01:00
tnurnberg@white.intern.koehntopp.de
f5b93ab932 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/34749/51-34749
2008-03-10 07:39:04 +01:00
tnurnberg@white.intern.koehntopp.de
3a87bbfe42 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/misc/mysql/34749/50-34749
2008-03-10 07:11:12 +01:00
tnurnberg@white.intern.koehntopp.de
fd2bae9981 Merge mysql.com:/misc/mysql/34749/50-34749
into  mysql.com:/misc/mysql/34749/51-34749
2008-03-10 07:07:56 +01:00
gkodinov/kgeorge@magare.gmz
dbc3ef6c9f Merge magare.gmz:/home/kgeorge/mysql/work/B34909-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B34909-5.1-opt
2008-03-07 11:19:51 +02:00
gkodinov/kgeorge@magare.gmz
560ec24079 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B34909-5.0-opt
2008-03-07 11:17:31 +02:00
gkodinov/kgeorge@magare.gmz
11cd97ed6b Bug #34909: mysqldump returns a 0 status on error when using
--master-data

No error code was returned by mysqldump if it detects that binary
logging is not enabled on the server.
Fixed by returning error code.
2008-03-07 11:15:49 +02:00
thek@adventure.(none)
a13cba5abd Bug#25132 disabled query cache: Qcache_free_blocks = 1
The initial value of free memory blocks in 0. When the query cache is enabled 
a new memory block gets allocated and is assigned number 1. The free memory
block is later split each time query cache memory is allocated for new blocks.
This means that the free memory block counter won't be reduced to zero when
the number of allocated blocks are zero, but rather one. To avoid confusion
this patch changes this behavior so that the free memory block counter is
reset to zero when the query cache is disabled.
Note that when the query cache is enabled and resized the free memory block
counter was still calculated correctly.
2008-03-06 12:40:46 +01:00
sergefp@mysql.com
b779af5503 BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
- Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call
  to before the late NULLs filtering code.
- Backport function comments from 6.0.
2008-03-03 20:35:44 +03:00
gluh@mysql.com/mgluh.(none)
b3397208eb fixed test case problem on win 2008-03-03 20:29:58 +04:00
gluh@mysql.com/mgluh.(none)
1411d27977 test case fix 2008-03-03 15:38:18 +04:00
gluh@mysql.com/mgluh.(none)
fc1ae07785 test case fix 2008-03-03 15:02:34 +04:00
gluh@mysql.com/eagle.(none)
2f5abfd3ef fixed problem with embedded server 2008-02-29 17:58:35 +04:00
gluh@eagle.(none)
1616c68bde Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2008-02-29 16:58:20 +04:00
gluh@mysql.com/eagle.(none)
4d582db8ea test fix 2008-02-29 16:56:41 +04:00
gluh@mysql.com/eagle.(none)
931bdedbc2 after merge fix 2008-02-29 15:04:00 +04:00
gluh@eagle.(none)
df5fbf5ae0 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
2008-02-29 14:05:38 +04:00
gluh@mysql.com/eagle.(none)
13bb7e0a22 Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(ver 4.1,5.0)
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of mysql data home directory in
DATA DIRECTORY & INDEX DIRECTORY is disallowed.
2008-02-29 13:55:00 +04:00
gluh@eagle.(none)
c59f1af6f5 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2008-02-29 13:00:45 +04:00
davi@buzz.(none)
2905909d89 Merge buzz.(none):/home/davi/mysql-5.0-runtime
into  buzz.(none):/home/davi/mysql-5.1-runtime
2008-02-28 20:22:50 -03:00
gshchepa/uchum@host.loc
cf484bb18c Merge host.loc:/home/uchum/work/PP/5.0-opt-34620
into  host.loc:/home/uchum/work/5.1-opt
2008-02-28 23:01:22 +04:00
gshchepa/uchum@host.loc
11a27f1215 Merge host.loc:/home/uchum/work/PP/5.0-opt-34620
into  host.loc:/home/uchum/work/5.0-opt
2008-02-28 22:57:22 +04:00
gshchepa/uchum@host.loc
c51106740d Fixed bug #34620: item_row.cc:50: Item_row::illegal_method_call(const char*):
Assertion `0' failed

If ROW item is a part of an expression that also has
aggregate function calls (COUNT/SUM/AVG...), a
"splitting" with an Item::split_sum_func2 function
is applied to that ROW item.
Current implementation of Item::split_sum_func2
replaces this Item_row with a newly created
Item_aggregate_ref reference to it.
Then the row cache tries to work with the
Item_aggregate_ref object as with the Item_row object:
row cache calls row-emulation methods such as cols and
element_index. Item_aggregate_ref (like it's parent
Item_ref) inherits dummy implementations of those
methods from the hierarchy root Item, and call to
them leads to failed assertions and wrong data
output.

Row-emulation virtual functions (cols, element_index, addr,
check_cols, null_inside and bring_value) of Item_ref have
been overloaded to forward calls to an underlying item
reference.
2008-02-28 22:53:31 +04:00
davi@mysql.com/endora.local
361262c7c0 Bug#33851 Passing UNSIGNED param to EXECUTE returns ERROR 1210
The problem is that passing anything other than a integer to a limit
clause in a prepared statement would fail. This limitation was introduced
to avoid replication problems (e.g: replicating the statement with a
string argument would cause a parse failure in the slave).

The solution is to convert arguments to the limit clause to a integer
value and use this converted value when persisting the query to the log.
2008-02-28 11:34:08 -03:00
gkodinov/kgeorge@magare.gmz
b8a47c9858 merge of bug 33266 to 5.1-opt 2008-02-28 16:29:14 +02:00
anozdrin/alik@quad.
55f0fba462 Disable test case due to Bug#34891: sp_notembedded.test fails
sporadically.
2008-02-28 17:28:33 +03:00
gkodinov/kgeorge@magare.gmz
9b58d7b1f8 Merge magare.gmz:/home/kgeorge/mysql/work/B34747-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B34747-5.1-opt
2008-02-28 15:45:54 +02:00
tnurnberg@mysql.com/white.intern.koehntopp.de
c6b4d7a7c4 Bug#34749: Server crash when using NAME_CONST() with an aggregate function
NAME_CONST('whatever', -1) * MAX(whatever) bombed since -1 was
not seen as constant, but as FUNCTION_UNARY_MINUS(constant)
while we are at the same time pretending it was a basic const
item. This confused the aggregate handlers in exciting ways.
We now make NAME_CONST() behave more consistently.
2008-02-28 14:23:22 +01:00
gluh@mysql.com/eagle.(none)
9d42a09675 Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(3rd version for 5.1)
added new function test_if_data_home_dir() which checks that
path does not contain mysql data home directory.
Using of 'mysql data home'/'any db name' in
DATA DIRECTORY & INDEX DIRECTORY is disallowed
2008-02-28 16:46:52 +04:00
anozdrin/alik@quad.
b100bb1ff1 Fix for Bug#34852: SHOW OPEN TABLES output is not repeatable
(show_check.test fails sporadically).

Fix test case for Bug#12183 to make it stable.
2008-02-28 15:35:25 +03:00
gkodinov/kgeorge@magare.gmz
0443189d89 Bug #34747: crash in debug assertion check after derived table
Was a double-free of the Unique member of Item_func_group_concat.
This was not causing a crash because the Unique is a descendent of
Sql_alloc.
Fixed to free the Unique only if it was allocated for the instance 
of Item_func_group_concat it was referenced from
2008-02-28 13:31:19 +02:00
davi@endora.local
4f98cd18b6 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mysql.com:/Users/davi/mysql/mysql-5.1-runtime
2008-02-27 18:11:15 -03:00
davi@mysql.com/endora.local
d58c9e089e Fix for team tree failure. Synchronously wait for the query state
to reach the desired value.
2008-02-27 18:08:29 -03:00
anozdrin/alik@quad.
476653102f Fix information_schema.test to be case-insensitive. 2008-02-27 22:53:54 +03:00
kostja@dipika.(none)
24d27e3b7c Update Bug#12713 test results to take into account fixed bugs (29157, 33846) 2008-02-27 18:38:17 +03:00