summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2011-05-11 13:59:17 +0300
committerMichael Widenius <monty@askmonty.org>2011-05-11 13:59:17 +0300
commit8d52c2cffe0ff75ea9a4313c776cc5441e70aef3 (patch)
tree3207cd9a232e3eea31aa0976436290d221fe3299
parent052d1bfb1a215d927e31bbe521a7e29d5da8a384 (diff)
downloadmariadb-git-8d52c2cffe0ff75ea9a4313c776cc5441e70aef3.tar.gz
Fixed compiler warnings and test cases problems found by buildbot
mysql-test/r/dyncol.result: Updated test results mysql-test/r/index_intersect.result: Updated results mysql-test/r/index_intersect_innodb.result: Updated results mysql-test/t/dyncol.test: Added replace_result for floating point results that are different on windows Added round() around a result to get same result on all platforms. mysql-test/t/index_intersect.test: Added replace_result to fix that index_merge may put key names in different order. mysys/ma_dyncol.c: Fixed compiler warnings on Solaris sql/key.cc: Fixed compiler warnings on Solaris sql/mysqld.cc: Fixed compiler warning on windows support-files/compiler_warnings.supp: Suppressed an unintersting warning on Solaris
-rw-r--r--mysql-test/r/dyncol.result6
-rw-r--r--mysql-test/r/index_intersect.result2
-rw-r--r--mysql-test/r/index_intersect_innodb.result2
-rw-r--r--mysql-test/t/dyncol.test8
-rw-r--r--mysql-test/t/index_intersect.test3
-rw-r--r--mysys/ma_dyncol.c2
-rw-r--r--sql/key.cc1
-rw-r--r--sql/mysqld.cc2
-rw-r--r--support-files/compiler_warnings.supp8
9 files changed, 25 insertions, 9 deletions
diff --git a/mysql-test/r/dyncol.result b/mysql-test/r/dyncol.result
index a8480599129..850c7519784 100644
--- a/mysql-test/r/dyncol.result
+++ b/mysql-test/r/dyncol.result
@@ -444,9 +444,9 @@ column_get(column_create(1, "8:46:06.23434" AS time), 1 as double)
select column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double);
column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double)
20110405084606.2
-select column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6));
-column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6))
-20110405084606.234375
+select round(column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6)),3);
+round(column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6)),3)
+20110405084606.234
select column_get(column_create(1, NULL AS double), 1 as double);
column_get(column_create(1, NULL AS double), 1 as double)
NULL
diff --git a/mysql-test/r/index_intersect.result b/mysql-test/r/index_intersect.result
index 713674430cf..bc053c49748 100644
--- a/mysql-test/r/index_intersect.result
+++ b/mysql-test/r/index_intersect.result
@@ -371,7 +371,7 @@ EXPLAIN
SELECT * FROM City
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE City range Population,Country,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
+1 SIMPLE City range Population,Name,Country Name # NULL # Using index condition; Using where; Rowid-ordered scan
SELECT * FROM City USE INDEX ()
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
ID Name Country Population
diff --git a/mysql-test/r/index_intersect_innodb.result b/mysql-test/r/index_intersect_innodb.result
index c2aa281c7f3..85184d79cce 100644
--- a/mysql-test/r/index_intersect_innodb.result
+++ b/mysql-test/r/index_intersect_innodb.result
@@ -372,7 +372,7 @@ EXPLAIN
SELECT * FROM City
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE City index_merge Population,Country,Name Population,Name,Country 4,35,3 NULL # Using sort_intersect(Population,Name,Country); Using where
+1 SIMPLE City index_merge Population,Name,Country Population,Name,Country # NULL # Using sort_intersect(Population,Name,Country); Using where
SELECT * FROM City USE INDEX ()
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
ID Name Country Population
diff --git a/mysql-test/t/dyncol.test b/mysql-test/t/dyncol.test
index b7c3697beaf..eb6403feba3 100644
--- a/mysql-test/t/dyncol.test
+++ b/mysql-test/t/dyncol.test
@@ -86,6 +86,7 @@ select column_get(column_create(1, -1212 AS int), 1 as unsigned int);
select column_get(column_create(1, 99999999999999999999999999999 AS decimal), 1 as unsigned int);
select column_get(column_create(1, 999.9999999999999999 AS decimal), 1 as unsigned int);
select column_get(column_create(1, -1 AS decimal), 1 as unsigned int);
+--replace_result 1e+029 1e+29
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as unsigned int);
select column_get(column_create(1, 999.9 AS double), 1 as unsigned int);
select column_get(column_create(1, -1 AS double), 1 as unsigned int);
@@ -115,6 +116,7 @@ select column_get(column_create(1, 99999999999999999999999999999 AS decimal), 1
select column_get(column_create(1, -99999999999999999999999999999 AS decimal), 1 as int);
select column_get(column_create(1, 999.9999999999999999 AS decimal), 1 as int);
select column_get(column_create(1, 999.9 AS double), 1 as int);
+--replace_result 1e+029 1e+29
select column_get(column_create(1, -99999999999999999999999999999 AS double), 1 as int);
select column_get(column_create(1, "-1212III" AS char), 1 as int);
select column_get(column_create(1, "1212III" AS char), 1 as int);
@@ -161,7 +163,8 @@ select column_get(column_create(1, -99999999999999999999999999999 AS decimal), 1
select column_get(column_create(1, "2011-04-05" AS date), 1 as double);
select column_get(column_create(1, "8:46:06.23434" AS time), 1 as double);
select column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double);
-select column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6));
+# The replace result is needed for windows.
+select round(column_get(column_create(1, "2011-04-05 8:46:06.23434" AS datetime), 1 as double(20,6)),3);
select column_get(column_create(1, NULL AS double), 1 as double);
-- echo # column get real truncation & warnings
@@ -241,6 +244,7 @@ select column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as d
select column_get(column_create(1, 9223372036854775807 AS int), 1 as datetime);
select column_get(column_create(1, -9223372036854775808 AS int), 1 as datetime);
select column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as datetime);
+--replace_result 1e+028 1e+28
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as datetime);
select column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as datetime);
select column_get(column_create(1, "2011-13-01 8:46:06.23434" AS CHAR), 1 as datetime);
@@ -286,6 +290,7 @@ select column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as d
select column_get(column_create(1, 9223372036854775807 AS int), 1 as date);
select column_get(column_create(1, -9223372036854775808 AS int), 1 as date);
select column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as date);
+--replace_result 1e+028 1e+28
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as date);
select column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as date);
select column_get(column_create(1, "2011-13-01 8:46:06.23434" AS CHAR), 1 as date);
@@ -330,6 +335,7 @@ select column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as t
select column_get(column_create(1, 9223372036854775807 AS int), 1 as time);
select column_get(column_create(1, -9223372036854775808 AS int), 1 as time);
select column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as time);
+--replace_result 1e+028 1e+28
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as time);
select column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as time);
select column_get(column_create(1, "2011-13-01 8:46:06.23434" AS CHAR), 1 as time);
diff --git a/mysql-test/t/index_intersect.test b/mysql-test/t/index_intersect.test
index 9ea2f5e3101..c2834e685eb 100644
--- a/mysql-test/t/index_intersect.test
+++ b/mysql-test/t/index_intersect.test
@@ -136,7 +136,8 @@ EXPLAIN
SELECT * FROM City
WHERE Name BETWEEN 'G' AND 'J' AND Population > 1000000 AND Country LIKE 'B%';
---replace_column 9 #
+--replace_column 7 # 9 #
+--replace_result Population,Country,Name Population,Name,Country
EXPLAIN
SELECT * FROM City
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
diff --git a/mysys/ma_dyncol.c b/mysys/ma_dyncol.c
index 71eacc6b319..6a8e4d689f3 100644
--- a/mysys/ma_dyncol.c
+++ b/mysys/ma_dyncol.c
@@ -905,6 +905,7 @@ static void type_and_offset_read(DYNAMIC_COLUMN_TYPE *type,
uchar *place, size_t offset_size)
{
ulong val;
+ LINT_INIT(val);
place+= COLUMN_NUMBER_SIZE; /* skip column number */
switch (offset_size) {
@@ -1611,6 +1612,7 @@ find_place(uint num, uchar *header, size_t entry_size,
{
uint mid, start, end, val;
int flag;
+ LINT_INIT(flag); /* 100 % safe */
start= 0;
end= column_count -1;
diff --git a/sql/key.cc b/sql/key.cc
index f7966140cdf..7f484bee32b 100644
--- a/sql/key.cc
+++ b/sql/key.cc
@@ -761,6 +761,7 @@ bool key_buf_cmp(KEY *key_info, uint used_key_parts,
LINT_INIT(cs);
LINT_INIT(length1);
LINT_INIT(length2);
+ LINT_INIT(pack_length);
key1+= key_part->length;
key2+= key_part->length;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 2e4ce2c6be6..057a724d8ed 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -4661,7 +4661,7 @@ int main(int argc, char **argv)
#ifndef DBUG_OFF
test_lc_time_sz();
- srand(time(NULL));
+ srand((uint) time(NULL));
#endif
/*
diff --git a/support-files/compiler_warnings.supp b/support-files/compiler_warnings.supp
index 3025fdf5f5d..dc843afeb30 100644
--- a/support-files/compiler_warnings.supp
+++ b/support-files/compiler_warnings.supp
@@ -67,7 +67,6 @@ vi\.c : unused parameter
common\.c : unused parameter
term\.c : .*
-
#
# Ignore some warnings in libevent, which is not maintained by us.
#
@@ -146,6 +145,7 @@ table_xt\.cc : variable.*might be clobbered by.*longjmp
#
# Yassl
+#
include/runtime.hpp: .*pure_error.*
.*/extra/yassl/.*taocrypt/.*: comparison with string literal
.*/extra/yassl/taocrypt/src/blowfish\.cpp: array subscript is above array bounds
@@ -159,6 +159,12 @@ mySTL/algorithm\.hpp: is used uninitialized in this function
.*/dbug/.*(groff|<standard input>) : .*
#
+# Warnings on OpenSolaris
+#
+.*/my_config\.h : _FILE_OFFSET_BITS
+/usr/include/sys/feature_tests.h : this is the location of the previous definition
+
+#
# Unexplanable (?) stuff
#
listener.cc : .*conversion from 'SOCKET' to 'int'.*