Commit graph

50758 commits

Author SHA1 Message Date
anozdrin/alik@station.
5f33524d24 Fix for a BUG#31898: 16M memory allocations for user variables
in stored procedure.

The problem was that MySQL used unnecessarily large amounts of
memory if user variables were used as an argument to CONCAT or
CONCAT_WS -- 16M per each user variable used.

Technically, it happened because MySQL used the following
allocation strategy for string functions to avoid multiple
realloc() calls: in the virtual operation fix_length_and_dec()
the attribute max_length was calculated as a sum of max_length
values for each argument.

Although this approach worked well for small (or fixed) data types,
there could be a problem if there as a user variable among
the arguments of a string function -- max_length of the function
would be 16M (as the max_length of a user variable is 16M).

Both CONCAT() and CONCAT_WS() functions suffer from this problem.

The fix is to do not use meta-data for allocating memory.
The following strategy is proposed instead: allocate the exact
length of the result string at the first record, double the amount
of memory allocated when it is required.

No test case for this bug because there is no way to test memory
consumption in a robust way with our test suite.
2007-11-12 14:44:17 +03:00
gkodinov/kgeorge@magare.gmz
948701b40a Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  magare.gmz:/home/kgeorge/mysql/autopush/B31974-5.1-runtime
2007-11-06 15:41:12 +02:00
gkodinov/kgeorge@magare.gmz
b028dad9ce Bug #31974: additional commit (test case updates)
loose index scan enabled for subqueries
2007-11-06 15:29:55 +02:00
malff@lambda.hsd1.co.comcast.net.
5aeaeb4fc9 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-runtime
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
2007-11-05 16:34:10 -07:00
malff@lambda.hsd1.co.comcast.net.
f0f63f8ff9 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
2007-11-05 10:20:20 -07:00
malff@lambda.hsd1.co.comcast.net.
00f1af47e4 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
2007-11-05 09:50:09 -07:00
tomas@whalegate.ndb.mysql.com
532ad32da5 workaround for case insensitive filesystems 2007-11-05 13:33:20 +01:00
gkodinov/kgeorge@magare.gmz
8f6a0a4c3c Bug #31974: Wrong EXPLAIN output
The fix for bug 31148 is not correct. It does not
have a relation to the problem described in this bug.
And removing the fix will not make the bug to re-appear.
Fixed the bug #31974 by removing the fix for bug 31148
and adding a test case.
2007-11-05 13:19:56 +02:00
tomas@whalegate.ndb.mysql.com
3c4e580bb4 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-11-02 23:40:19 +01:00
tomas@whalegate.ndb.mysql.com
e981c427d8 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
2007-11-02 23:33:25 +01:00
tomas@whalegate.ndb.mysql.com
ca0cbdd8ee Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
2007-11-02 23:31:23 +01:00
kostja@bodhi.(none)
b955005245 Cleanup the test case for Bug#32030 "DELETE does not return an error and
deletes rows if error evaluating WHERE"
2007-11-02 14:47:18 +03:00
kostja@bodhi.(none)
a0f55d11f6 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc-2
2007-11-02 02:40:23 +03:00
kostja@bodhi.(none)
2ce9194411 A fix for Bug#32030 "DELETE does not return an error and deletes rows if
error evaluating WHERE"

DELETE with a subquery in WHERE clause would sometimes ignore subquery
evaluation error and proceed with deletion.

The fix is to check for an error after evaluation of the WHERE clause
in DELETE.

Addressed review comments.
2007-11-02 02:36:12 +03:00
davi@endora.local
a9da8219f0 Merge endora.local:/Users/davi/mysql/bugs/30882-5.1
into  endora.local:/Users/davi/mysql/mysql-5.1-runtime
2007-11-01 20:48:14 -02:00
davi@endora.local
333b91f8e6 Merge endora.local:/Users/davi/mysql/bugs/31850-5.1
into  endora.local:/Users/davi/mysql/mysql-5.1-runtime
2007-11-01 20:44:09 -02:00
davi@endora.local
cc007acb78 Bug#30882 Dropping a temporary table inside a stored function may cause a server crash
If a stored function that contains a drop temporary table statement
is invoked by a create temporary table of the same name may cause
a server crash. The problem is that when dropping a table no check
is done to ensure that table is not being used by some outer query
(or outer statement), potentially leaving the outer query with a
reference to a stale (freed) table.

The solution is when dropping a temporary table, always check if
the table is being used by some outer statement as a temporary
table can be dropped inside stored procedures.

The check is performed by looking at the TABLE::query_id value for
temporary tables. To simplify this check and to solve a bug related
to handling of temporary tables in prelocked mode, this patch changes
the way in which this member is used to track the fact that table is
used/unused. Now we ensure that TABLE::query_id is zero for unused
temporary tables (which means that all temporary tables which were
used by a statement should be marked as free for reuse after it's
execution has been completed).
2007-11-01 18:52:56 -02:00
davi@endora.local
968af72150 Bug#31850 Test crashes in "embedded" server
The mysql_change_user command fails to properly update the database pointer
when no database is selected, leading to "use after free" errors. The same
happens on the user privilege pointer in the thread security context.

The solution is to properly reset and update the database name. Also update
the user_priv pointer so that it doesn't point to freed memory.
2007-11-01 17:29:20 -02:00
tomas@whalegate.ndb.mysql.com
a76f0e3d12 disable test 2007-11-01 17:24:21 +01:00
kostja@bodhi.(none)
8f90f66d43 Cleanup execute_ddl_log_recovery() to not generate an error if
there is nothing to recover.

Discovered while working on Bug#12713
2007-11-01 18:33:51 +03:00
kostja@bodhi.(none)
96e4dd07c1 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-net_end
2007-11-01 18:10:45 +03:00
kostja@bodhi.(none)
7e119ec0d1 Use Internal_error_handler mechanism to silence ER_TOO_MANY_FIELDS
error in mysql_create_frm instead of
direct access to my_error() members.

This is a pre-requisite for the patch for Bug#12713.
2007-11-01 18:06:46 +03:00
malff@lambda.hsd1.co.comcast.net.
f0bfbe0ee1 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
2007-11-01 08:33:54 -06:00
kostja@bodhi.(none)
6bd9f5c1cb Use thd->is_error() instead of direct access to thd->net.report_error
in evaluate_join_record().

A minor cleanup required for the fix for Bug#12713.
2007-11-01 17:08:02 +03:00
kostja@bodhi.(none)
f60b890967 Fix a compilation warning. 2007-11-01 17:00:24 +03:00
malff@lambda.hsd1.co.comcast.net.
83e6066e50 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
2007-11-01 06:41:50 -06:00
malff@lambda.hsd1.co.comcast.net.
5bcb976bc2 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
2007-11-01 06:35:22 -06:00
kostja@bodhi.(none)
5fa9440ade Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc-2
2007-11-01 14:24:32 +03:00
tomas@whalegate.ndb.mysql.com
91b070b082 disable tests 2007-11-01 12:02:41 +01:00
tomas@whalegate.ndb.mysql.com
883abae508 Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-11-01 11:37:32 +01:00
tomas@whalegate.ndb.mysql.com
5f592bfc7d Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-11-01 11:33:04 +01:00
tomas@whalegate.ndb.mysql.com
d8eb4cdcb5 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  whalegate.ndb.mysql.com:/home/tomas/cge-5.1
2007-11-01 10:19:26 +01:00
knielsen@loke.(none)
5ef088a7af Merge 10.102.0.1:/usr/local/mysql/mysql-5.0-ndb
into  loke.(none):/home/knielsen/devel/mysql-5.1-new-ndb
2007-11-01 08:30:18 +01:00
knielsen@ymer.(none)
084849d917 Bug #31848: Test failure: Cluster has problems on insert with auto-increment
Fix uninitialized variable causing failures for some interpreted update
operations on gcc 4.2.1.
2007-11-01 07:59:55 +01:00
kostja@bodhi.(none)
8423c7ef22 Another attempt to fix the Windows compilation failre. 2007-11-01 00:55:25 +03:00
jmiller/ndbdev@mysql.com/ndb15.mysql.com
480ee022ad Adding dbutil to ndb test lib 2007-10-31 22:37:10 +01:00
kostja@bodhi.(none)
26326ed0b7 A fix for Bug#32007 select udf_function() doesn't return an error if error
during udf initialization. The bug is spotted while working on Bug 12713.

If a user-defined function was used in a SELECT statement, and an
error would occur during UDF initialization, this error would not terminate
execution of the SELECT, but rather would be converted to a warning.

The fix is to use a stack buffer to store the message from udf_init instead
of private my_error() buffer.
2007-11-01 00:31:57 +03:00
kostja@bodhi.(none)
c0bb7f8682 Remove net_printf_error(). Do not talk to network directly in
check_user()/check_connection()/check_for_max_user_connections().

This is a pre-requisite patch for the fix for Bug#12713 "Error in a stored 
function called from a SELECT doesn't cause ROLLBACK of statem"

Implement review comments.
2007-11-01 00:10:58 +03:00
kostja@bodhi.(none)
21fffd89cf Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc
2007-10-31 23:51:01 +03:00
kostja@bodhi.(none)
c26aef8fc6 Try to fix a Windows compilation warning. 2007-10-31 23:48:41 +03:00
davi@endora.
7ec50bd483 Merge endora.local:/Users/davi/mysql/bugs/31669-5.1
into  endora.local:/Users/davi/mysql/mysql-5.1-runtime
2007-10-31 13:57:54 -02:00
davi@endora.local/endora
8620673f93 Post merge fix for bug 31669. 2007-10-31 13:54:53 -02:00
kostja@bodhi.(none)
3154b2bee4 Cleanup: rename select_send::status to select_send::is_result_set_started.
Add select_send::cleanup.
Fix a compilation warning.
Issues spotted while working on the fix for Bug#12713.
2007-10-31 18:33:13 +03:00
kostja@bodhi.(none)
fdcf20d733 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime-inc
2007-10-31 17:30:46 +03:00
kostja@bodhi.(none)
96f8d086f8 Cleanup: use helper functions to set an error in MYSQL or MYSQL_STMT.
No functionality added or changed.
This is a pre-requisite for the fix for Bug#12713 Error in a stored 
function called from a SELECT doesn't cause ROLLBACK of statem

Address post-review comments.
2007-10-31 17:16:53 +03:00
anozdrin/alik@station.
3284c99694 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  station.:/mnt/raid/alik/MySQL/devel/5.1-rt-bug31649
2007-10-31 15:54:02 +03:00
thek@adventure.(none)
95a74f6717 Merge adventure.(none):/home/thek/Development/cpp/bug31347/my50-bug31347
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-10-31 13:41:49 +01:00
thek@adventure.(none)
19f1330e69 Merge adventure.(none):/home/thek/Development/cpp/bug31347/my51-bug31347
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2007-10-31 13:22:19 +01:00
thek@adventure.(none)
5b603aa47a Merge adventure.(none):/home/thek/Development/cpp/bug31347/my50-bug31347
into  adventure.(none):/home/thek/Development/cpp/bug31347/my51-bug31347
2007-10-31 13:12:45 +01:00
thek@adventure.(none)
8549a8ea8f Bug#31347 Increase in memory usage after many DROP USER statements
Dropping users causes huge increase in memory usage because field values were
allocated on the server memory root for temporary usage but never deallocated.

This patch changes the target memory root to be that of the thread handler
instead since this root is cleared between each statement.
2007-10-31 12:25:18 +01:00