summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorAlexey Kopytov <Alexey.Kopytov@Sun.com>2010-09-22 23:33:18 +0400
committerAlexey Kopytov <Alexey.Kopytov@Sun.com>2010-09-22 23:33:18 +0400
commitfaf54ff95cfb4e32029cd1d30a1a643d79ce96ec (patch)
treeecfed3ad4c93790a5ce2ce97a44a165457c664d1 /mysql-test
parent0c74cc0d1097c51e9e54c6e0fb1550e4d3df84c7 (diff)
downloadmariadb-git-faf54ff95cfb4e32029cd1d30a1a643d79ce96ec.tar.gz
Bug #56709: Memory leaks at running the 5.1 test suite
Fixed a number of memory leaks discovered by valgrind. dbug/dbug.c: This is actually an addendum to the fix for bug #52629: - there is no point in limiting the fix to just global variables, session ones are also affected. - zero all fields when allocating a new 'state' structure so that FreeState() does not deal with unitialized data later. - add a check for a NULL pointer in DBUGCloseFile() mysql-test/r/partition_error.result: Added a test case for bug #56709. mysql-test/r/variables_debug.result: Added a test case for bug #56709. mysql-test/t/partition_error.test: Added a test case for bug #56709. mysql-test/t/variables_debug.test: Added a test case for bug #56709. sql/item_timefunc.cc: There is no point in declaring 'value' as a member of Item_extract and dynamically allocating memory for it in Item_extract::fix_length_and_dec(), since this string is only used as a temporary storage in Item_extract::val_int(). sql/item_timefunc.h: Removed 'value' from the Item_extract class definition. sql/sql_load.cc: - we may need to deallocate 'buffer' even when 'error' is non-zero in some cases, since 'error' is public, and there is external code modifying it. - assign NULL to buffer when deallocating it so that we don't do it twice in the destructor - there is no point in changing 'error' in the destructor.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/partition_error.result10
-rw-r--r--mysql-test/r/variables_debug.result13
-rw-r--r--mysql-test/t/partition_error.test14
-rw-r--r--mysql-test/t/variables_debug.test13
4 files changed, 50 insertions, 0 deletions
diff --git a/mysql-test/r/partition_error.result b/mysql-test/r/partition_error.result
index 16428fba4d9..ea74f476ceb 100644
--- a/mysql-test/r/partition_error.result
+++ b/mysql-test/r/partition_error.result
@@ -1008,4 +1008,14 @@ PARTITION p VALUES LESS THAN (1219089600),
PARTITION pmax VALUES LESS THAN MAXVALUE);
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
DROP TABLE old;
+#
+# Bug #56709: Memory leaks at running the 5.1 test suite
+#
+CREATE TABLE t1 (a TIMESTAMP NOT NULL PRIMARY KEY);
+ALTER TABLE t1
+PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
+PARTITION p VALUES LESS THAN (18),
+PARTITION pmax VALUES LESS THAN MAXVALUE);
+ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
+DROP TABLE t1;
End of 5.1 tests
diff --git a/mysql-test/r/variables_debug.result b/mysql-test/r/variables_debug.result
index d578fa957fc..41d77007b26 100644
--- a/mysql-test/r/variables_debug.result
+++ b/mysql-test/r/variables_debug.result
@@ -24,4 +24,17 @@ SELECT @@global.debug;
@@global.debug
SET GLOBAL debug=@old_debug;
+#
+# Bug #56709: Memory leaks at running the 5.1 test suite
+#
+SET @old_local_debug = @@debug;
+SET @@debug='d,foo';
+SELECT @@debug;
+@@debug
+d,foo
+SET @@debug='';
+SELECT @@debug;
+@@debug
+
+SET @@debug = @old_local_debug;
End of 5.1 tests
diff --git a/mysql-test/t/partition_error.test b/mysql-test/t/partition_error.test
index 434392c2e28..d3f10628254 100644
--- a/mysql-test/t/partition_error.test
+++ b/mysql-test/t/partition_error.test
@@ -1252,4 +1252,18 @@ PARTITION pmax VALUES LESS THAN MAXVALUE);
DROP TABLE old;
+--echo #
+--echo # Bug #56709: Memory leaks at running the 5.1 test suite
+--echo #
+
+CREATE TABLE t1 (a TIMESTAMP NOT NULL PRIMARY KEY);
+
+--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+ALTER TABLE t1
+PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
+PARTITION p VALUES LESS THAN (18),
+PARTITION pmax VALUES LESS THAN MAXVALUE);
+
+DROP TABLE t1;
+
--echo End of 5.1 tests
diff --git a/mysql-test/t/variables_debug.test b/mysql-test/t/variables_debug.test
index 12f5d2e6ca5..e6f1bbddc2a 100644
--- a/mysql-test/t/variables_debug.test
+++ b/mysql-test/t/variables_debug.test
@@ -25,4 +25,17 @@ SELECT @@global.debug;
SET GLOBAL debug=@old_debug;
+--echo #
+--echo # Bug #56709: Memory leaks at running the 5.1 test suite
+--echo #
+
+SET @old_local_debug = @@debug;
+
+SET @@debug='d,foo';
+SELECT @@debug;
+SET @@debug='';
+SELECT @@debug;
+
+SET @@debug = @old_local_debug;
+
--echo End of 5.1 tests