1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-19 22:42:44 +03:00
Commit Graph

29385 Commits

Author SHA1 Message Date
Vasil Dimov
3074ff5233 Fix the failing innodb.innodb_bug54679 test
A change in the default values of some config parameters
caused this test to fail, adjust the test and make it more
robust so it does not fail for the same reason in the future.
2010-07-23 10:37:44 +03:00
Jon Olav Hauglid
e814e9ac1e Bug #54905 Connection with WRITE lock cannot ALTER table due to
concurrent SHOW CREATE

The problem was that a SHOW CREATE TABLE statement issued inside
a transaction did not release its metadata locks at the end of the
statement execution. This happened even if SHOW CREATE TABLE is an
information statement. 

The consequence was that SHOW CREATE TABLE was able to block other
connections from accessing the table (e.g. using ALTER TABLE).

This patch fixes the problem by explicitly releasing any metadata
locks taken by SHOW CREATE TABLE after the statement completes.

Test case added to show_check.test.
2010-07-22 11:10:35 +02:00
Georgi Kodinov
98357570b4 merge 2010-07-21 18:54:11 +03:00
Georgi Kodinov
335a623c41 merge 2010-07-21 18:51:36 +03:00
Georgi Kodinov
7330233b96 merge 2010-07-21 18:20:29 +03:00
Georgi Kodinov
047d47241c Addendum #4 to bug #53095
SHOW DATABASES LIKE ... was not converting to lowercase on comparison as the
documentation is suggesting. 
Fixed it to behave similarly to SHOW TABLES LIKE ... and updated the failing
on MacOSX lowercase_table2 test case.
2010-07-21 18:05:57 +03:00
Vasil Dimov
8152cd0ac8 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
(resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
configure.cmake)
2010-07-21 17:22:29 +03:00
Matthias Leich
6a029cc54c Bug#53102 perfschema.pfs_upgrade fails on sol10 sparc64 max in parallel mode
The reason for the bug above is unclear but
- Modify pfs_upgrade so that it's result is easier to analyze in case something fails
- Fix several minor weaknesses which could cause that a successing test (either an
  already existing or a to be developed one) fails because of imperfect cleanup,
  too slow disconnected sessions etc.
should either fix the bug or reduce it's probability or at least
make the analysis of failures easier.
2010-07-20 21:15:29 +02:00
Davi Arnaut
17b9155f00 Bug#54453: Failing assertion: trx->active_trans when renaming a
table with active trx

Essentially, the problem is that InnoDB does a implicit commit
when a cursor (table handler) is unlocked/closed, creating
a dissonance between the transaction state within the server
layer and the storage engine layer. Theoretically, a statement
transaction can encompass several table instances in a similar
manner to a multiple statement transaction, hence it does not
make sense to limit a statement transaction to the lifetime of
the table instances (cursors) used within it.

Since this particular instance of the problem is only triggerable
on 5.1 and is masked on 5.5 due 2PC being skipped (assertion is in
the prepare phase of a 2PC), the solution (which is less risky) is
to explicitly end the transaction before the cached table is unlock
on rename table.

The patch is to be null merged into trunk.
2010-07-20 14:36:15 -03:00
Sven Sandberg
cf5e69c904 BUG#55322: SHOW BINLOG EVENTS increases @@SESSION.MAX_ALLOWED_PACKET
Problem: when SHOW BINLOG EVENTS was issued, it increased the value of
@@session.max_allowed_packet. This allowed a non-root user to increase
the amount of memory used by her thread arbitrarily. Thus, it removes
the bound on the amount of system resources used by a client, so it
presents a security risk (DoS attack).

Fix: it is correct to increase the value of @@session.max_allowed_packet
while executing SHOW BINLOG EVENTS (see BUG 30435). However, the
increase should only be temporary. Thus, the fix is to restore the value
when SHOW BINLOG EVENTS ends.
The value of @@session.max_allowed_packet is also increased in
mysql_binlog_send (i.e., the binlog dump thread). It is not clear if this
can cause any trouble, since normally the client that issues
COM_BINLOG_DUMP will not issue any other commands that would be affected
by the increased value of @@session.max_allowed_packet. However, we
restore the value just in case.
2010-07-20 17:27:13 +02:00
Alexander Nozdrin
9d0ef81e27 Auto-merge from mysql-trunk-merge. 2010-07-20 12:09:51 +04:00
Davi Arnaut
ce2403e6ee Merge into mysql-trunk-merge.. 2010-07-19 16:03:59 -03:00
Davi Arnaut
13f856f57b Merge of mysql-5.1 into mysql-5.1-bugteam. 2010-07-19 15:34:28 -03:00
Evgeny Potemkin
589027b2f5 Bug#49771: Incorrect MIN/MAX for date/time values.
This bug is a design flaw of the fix for the bug#33546. It assumed that an
item can be used only in one comparison context, but actually it isn't the
case. Item_cache_datetime is used to store result for MIX/MAX aggregate
functions. Because Arg_comparator always compares datetime values as INTs when
possible the Item_cache_datetime most time caches only INT value. But
since all datetime values has STRING result type MIN/MAX functions are asked
for a STRING value when the result is being sent to a client. The
Item_cache_datetime was designed to avoid conversions and get INT/STRING
values from an underlying item, but at the moment the values is asked
underlying item doesn't hold it anymore thus wrong result is returned.
Beside that MIN/MAX aggregate functions was wrongly initializing cached result
and this led to a wrong result.

The Item::has_compatible_context helper function is added. It checks whether
this and given items has the same comparison context or can be compared as
DATETIME values by Arg_comparator. The equality propagation optimization is
adjusted to take into account that items which being compared as DATETIME
can have different comparison contexts.
The Item_cache_datetime now converts cached INT value to a correct STRING
DATETIME value by means of number_to_datetime & my_TIME_to_str functions.
The Arg_comparator::set_cmp_context_for_datetime helper function is added. 
It sets comparison context of items being compared as DATETIMEs to INT if
items will be compared as longlong.
The Item_sum_hybrid::setup function now correctly initializes its result
value.
In order to avoid unnecessary conversions Item_sum_hybrid now states that it
can provide correct longlong value if the item being aggregated can do it
too.
2010-07-19 21:11:47 +04:00
Jon Olav Hauglid
d4885416b7 manual merge from mysql-5.1-bugteam 2010-07-19 11:21:24 +02:00
Jon Olav Hauglid
4b2378a148 Bug #54734 assert in Diagnostics_area::set_ok_status
This assert checks that the server does not try to send OK to the
client if there has been some error during processing. This is done
to make sure that the error is in fact sent to the client.

The problem was that view errors during processing of WHERE conditions
in UPDATE statements where not detected by the update code. It therefore
tried to send OK to the client, triggering the assert.
The bug was only noticeable in debug builds.

This patch fixes the problem by making sure that the update code
checks for errors during condition processing and acts accordingly.
2010-07-19 11:03:52 +02:00
Jon Olav Hauglid
52b1e11ee1 merge from mysql-trunk-bugfixing 2010-07-19 10:27:53 +02:00
Andrei Elkin
c225cde943 merging for bug#54935 to trunk-bugfixing 2010-07-17 14:07:36 +03:00
Davi Arnaut
4d532f6ea6 Merge of mysql-trunk-merge into mysql-trunk-bugfixing. 2010-07-16 17:02:40 -03:00
Andrei Elkin
2d91f05e88 bug#54935
applying bundle made for next-mr-bugfixing to trunk-bugfixing branch of the bug
2010-07-16 21:25:38 +03:00
Andrei Elkin
48d1c50ac1 bug#54935
applying bundle made for next-mr-bugfixing to trunk-bugfixing branch of the bug
2010-07-16 21:25:00 +03:00
Georgi Kodinov
a95b184630 merge 2010-07-16 18:04:39 +03:00
Marc Alff
3fa071bbd6 Bug#53392 Tests: perfschema.query_cache fails
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:28:19 -06:00
Marc Alff
d32d8f8d58 Bug#53394 Tests: perfschema.myisam_file_io fails
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 08:21:07 -06:00
Georgi Kodinov
d4931e4beb Addendum to bug #53814 : test results updates 2010-07-16 16:56:33 +03:00
Marc Alff
ae127ed601 Bug#54782 Performance schema per thread accounting and thread cache
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-16 07:50:50 -06:00
Bjorn Munch
17ed4f6880 Bug #54835 MTR version 1 cannot start server - bootstrap reports unknown InnoDB engine
Remove --loose-skip-innodb from startup options
This is a simple backport of change done in WL #5349
Same as shown as "temporary fix", cherry picked to -mtr branch
2010-07-16 10:21:06 +02:00
Marc Alff
a809475699 Bug#52586 Misleading error message on attempt to access a P_S table using a wrong name
Backport from mysql-next-mr (5.6) to mysql-trunk (5.5)
2010-07-15 18:50:39 -06:00
Davi Arnaut
66dd2f49b6 Bug#53613: mysql_upgrade incorrectly revokes ...
Post-merge fix: adjust line numbers in pfs_upgrade test case
result given that mysql_system_tables_fix.sql was modified.
2010-07-15 18:57:47 -03:00
Georgi Kodinov
aaf5f8d5c4 merge 2010-07-15 18:46:41 +03:00
Davi Arnaut
649390ac81 Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
Davi Arnaut
f54a118249 WL#5486: Remove code for unsupported platforms
Remove Netware specific code.
2010-07-15 08:13:30 -03:00
Marc Alff
adf29ed689 local merge 2010-07-14 09:57:50 -06:00
Georgi Kodinov
a1414d519f merge 2010-07-14 15:05:20 +03:00
Georgi Kodinov
b4766fc36a Bug #51876: crash/memory underrun when loading data with ucs2
and reverse() function
      
3 problems fixed : 
1. The reported problem : caused by incorrect parsing of 
the file as ucs data resulting in wrong length of the parsed
string. Fixed by truncating the invalid trailing bytes 
(non-complete multibyte characters) when reading from the file
2. LOAD DATA when reading from a proper UCS2 file wasn't 
recognizing the new line characters. Fixed by first looking 
if a byte is a new line (or any other special) character before
reading it as a part of a multibyte character.
3. When using user variables to hold the column data in LOAD
DATA the character set of the user variable was set incorrectly
to the database charset. Fixed by setting it to the charset
specified by LOAD DATA (if any).
2010-07-14 14:54:51 +03:00
Bjorn Munch
730e331242 merge from trunk 2010-07-14 11:28:54 +02:00
Jimmy Yang
5b775faf58 Fix Bug #55095 innodb_file_format_check: no warning for illegal value
rb://397 approved by Sunny Bains
2010-07-13 02:58:39 -07:00
Jon Olav Hauglid
a5d72c498c merge from mysql-trunk-bugfixing 2010-07-13 10:39:24 +02:00
Davi Arnaut
465e4025f7 Revert and fix confusion between tests analyse and analyze. Following the
naming scheme for tests related to functions, rename analyse.test to
func_analyse.test (test for the ANALYSE() procedure). Avoids confusion
with the ANALYZE statement (tested in analyze.test).
2010-07-12 10:38:38 -03:00
Davi Arnaut
db22b43bb4 Following the naming scheme for tests related to functions, rename
analyse.test to func_analyse.test. Avoids confusion with the ANALYZE
statement.
2010-07-12 09:50:07 -03:00
Georgi Kodinov
07e1cdc179 Addendum #3 to bug #53095 : fixed the wrong mysql-trunk tests. 2010-07-09 15:55:13 +03:00
Georgi Kodinov
7d9cb31e69 merge 2010-07-09 15:40:38 +03:00
Georgi Kodinov
5e4fe83272 Addendum #2 to bug #53095 : fixed a bad testcase result. 2010-07-09 15:17:47 +03:00
Sergey Glukhov
80935b8659 5.1-bugteam->trunk-merge merge 2010-07-09 14:46:46 +04:00
Sergey Glukhov
3c39a56208 Bug#54416 MAX from JOIN with HAVING returning NULL with 5.1 and Empty set
The problem there is that HAVING condition evaluates const
parts of condition despite the condition has references
on aggregate functions. Table t1 became const tables
after make_join_statistics and table1.pk = 1, HAVING is
transformed into MAX(1) < 7 and taken away from HAVING.
The fix is to skip evaluation of HAVING conts parts if
HAVING condition has references on aggregate functions.
2010-07-09 14:39:47 +04:00
Alexander Barkov
63777287b8 Bug#54668 User variable assignments get wrong type
Problem: Item_str_ascii_func::val_str() did not set
charset of the returned value properly.
  
  mysql-test/include/ctype_numconv.inc
  mysql-test/r/ctype_binary.result
  mysql-test/r/ctype_cp1251.result
  mysql-test/r/ctype_latin1.result
  mysql-test/r/ctype_ucs.result
  - Adding tests
  
  sql/item_strfunc.cc
  - Adding initialization of charset
2010-07-09 09:39:41 +04:00
Davi Arnaut
a10ae35328 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.
2010-07-08 18:20:08 -03:00
Olav Sandstaa
b7166f33d0 Backporting of jorgen.loland@sun.com-20100618093212-lifp1psig3hbj6jj
from mysql-next-mr-opt-backporting.

Bug#54515: Crash in opt_range.cc::get_best_group_min_max on 
           SELECT from VIEW with GROUP BY
      
When handling the grouping items in get_best_group_min_max, the
items need to be of type Item_field. In this bug, an ASSERT 
triggered because the item used for grouping was an 
Item_direct_view_ref (i.e., the group column is from a view). 
The fix is to get the real_item since Item_ref* pointing to 
Item_field is ok.
2010-07-08 15:19:05 +02:00
Mattias Jonsson
0b273845de Bug#46086: crash when dropping a partitioned table
and the original engine is disabled

Missing check that engine is available.
2010-07-08 14:36:55 +02:00
Guilhem Bichot
65bdafda29 backport of guilhem@mysql.com-20100628140739-i9vy8ugxp1v5aspb
from next-mr-bugfixing:
BUG#54682 "set sql_select_limit=0 does not work"; let SQL_SELECT_LIMIT=0
work like it does in 5.1.
2010-07-08 14:36:10 +02:00