summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/MySQLEULA.txt2
-rw-r--r--README2
-rw-r--r--acinclude.m45
-rw-r--r--configure.in5
-rw-r--r--mysql-test/README54
-rw-r--r--mysql-test/README.gcov16
-rw-r--r--mysql-test/mysql-test-run.sh27
-rw-r--r--mysql-test/r/func_op.result11
-rw-r--r--mysql-test/r/update.result4
-rw-r--r--mysql-test/t/func_op.test12
-rw-r--r--mysql-test/t/update.test8
-rw-r--r--netware/mysql_install_db.c2
-rw-r--r--scripts/make_binary_distribution.sh2
-rw-r--r--scripts/mysql_install_db.sh3
-rw-r--r--sql/item_func.cc5
-rw-r--r--sql/sql_base.cc1
16 files changed, 123 insertions, 36 deletions
diff --git a/Docs/MySQLEULA.txt b/Docs/MySQLEULA.txt
index 71e630ec81f..f50c50298b1 100644
--- a/Docs/MySQLEULA.txt
+++ b/Docs/MySQLEULA.txt
@@ -63,7 +63,7 @@ Licensee.
4. Price and payment.
No later than thirty (30) days after submission of the Order Form, Licensee
shall remit one non-refundable license fee per Licensed Copy as posted on
-http://order.mysql.com on the date Licensee submitted the Order Form (the
+http://shop.mysql.com on the date Licensee submitted the Order Form (the
"License Fee"). All payments shall be made in Euros or U.S. dollars. Licensee
shall be responsible for paying all local, state, federal and international
sales, value added, excise and other taxes and duties payable in connection
diff --git a/README b/README
index 88cdaaf67d4..d37b37cd918 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@ License information can be found in these files:
For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
-- The current MySQL documentation: http:/dev.mysql.com/doc
+- The current MySQL documentation: http://dev.mysql.com/doc
Some manual sections of special interest:
diff --git a/acinclude.m4 b/acinclude.m4
index f36940670a6..ddc50d2972b 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -373,7 +373,8 @@ AC_CACHE_VAL(mysql_cv_termcap_lib,
[AC_CHECK_LIB(ncurses, tgetent, mysql_cv_termcap_lib=libncurses,
[AC_CHECK_LIB(curses, tgetent, mysql_cv_termcap_lib=libcurses,
[AC_CHECK_LIB(termcap, tgetent, mysql_cv_termcap_lib=libtermcap,
- mysql_cv_termcap_lib=NOT_FOUND)])])])
+ [AC_CHECK_LIB(tinfo, tgetent, mysql_cv_termcap_lib=libtinfo,
+ mysql_cv_termcap_lib=NOT_FOUND)])])])])
AC_MSG_CHECKING(for termcap functions library)
if test "$mysql_cv_termcap_lib" = "NOT_FOUND"; then
AC_MSG_ERROR([No curses/termcap library found])
@@ -381,6 +382,8 @@ elif test "$mysql_cv_termcap_lib" = "libtermcap"; then
TERMCAP_LIB=-ltermcap
elif test "$mysql_cv_termcap_lib" = "libncurses"; then
TERMCAP_LIB=-lncurses
+elif test "$mysql_cv_termcap_lib" = "libtinfo"; then
+TERMCAP_LIB=-ltinfo
else
TERMCAP_LIB=-lcurses
fi
diff --git a/configure.in b/configure.in
index df4b0fbd5af..0445f7a05e9 100644
--- a/configure.in
+++ b/configure.in
@@ -830,6 +830,9 @@ AC_SUBST(WRAPLIBS)
if test "$IS_LINUX" = "true"; then
AC_MSG_CHECKING([for atomic operations])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
atom_ops=
AC_TRY_RUN([
#include <asm/atomic.h>
@@ -859,6 +862,8 @@ int main()
if test -z "$atom_ops"; then atom_ops="no"; fi
AC_MSG_RESULT($atom_ops)
+ AC_LANG_RESTORE
+
AC_ARG_WITH(pstack,
[ --with-pstack Use the pstack backtrace library],
[ USE_PSTACK=$withval ],
diff --git a/mysql-test/README b/mysql-test/README
index 6ad97adbd2b..77b398ebf39 100644
--- a/mysql-test/README
+++ b/mysql-test/README
@@ -1,33 +1,51 @@
-This directory contains a test suite for mysql daemon. To run
+This directory contains a test suite for the MySQL daemon. To run
the currently existing test cases, simply execute ./mysql-test-run in
this directory. It will fire up the newly built mysqld and test it.
-Note that you do not have to have to do make install, and you could
-actually have a co-existing MySQL installation - the tests will not
+
+Note that you do not have to have to do "make install", and you could
+actually have a co-existing MySQL installation. The tests will not
conflict with it.
All tests must pass. If one or more of them fail on your system, please
-read the following manual section of how to report the problem:
+read the following manual section for instructions on how to report the
+problem:
+
+http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html
+
+If you want to use an already running MySQL server for specific tests,
+use the --extern option to mysql-test-run. Please note that in this mode,
+the test suite expects you to provide the names of the tests to run.
+For example, here is the command to run the "alias" and "analyze" tests
+with an external server:
+
+mysql-test-run --extern alias analyze
+
+To match your setup, you might also need to provide --socket, --user, and
+other relevant options.
-http://dev.mysql.com/doc/mysql/en/MySQL_test_suite.html
+With no test cases named on the command line, mysql-test-run falls back
+to the normal "non-extern" behavior. The reason for this is that some
+tests cannot run with an external server.
-You can create your own test cases. To create a test case:
+You can create your own test cases. To create a test case, create a new
+file in the t subdirectory using a text editor. The file should have a .test
+extension. For example:
- cd t
- vi test_case_name.test
+ xemacs t/test_case_name.test
- in the file, put a set of SQL commands that will create some tables,
- load test data, run some queries to manipulate it.
+ In the file, put a set of SQL statements that create some tables,
+ load test data, and run some queries to manipulate it.
- We would appreciate if the test tables were called t1, t2, t3 ... (to not
+ We would appreciate it if you name your test tables t1, t2, t3 ... (to not
conflict too much with existing tables).
Your test should begin by dropping the tables you are going to create and
- end by dropping them again. This will ensure that one can run the test
- over and over again.
+ end by dropping them again. This ensures that you can run the test over
+ and over again.
If you are using mysqltest commands (like result file names) in your
- test case you should do create the result file as follows:
+ test case, you should create the result file as follows:
mysql-test-run --record test_case_name
@@ -35,8 +53,8 @@ You can create your own test cases. To create a test case:
mysqltest --record < t/test_case_name.test
- If you only have a simple test cases consistent of SQL commands and comments
- you can create the test case one of the following ways:
+ If you only have a simple test cases consisting of SQL statements and
+ comments, you can create the test case in one of the following ways:
mysql-test-run --record test_case_name
@@ -45,11 +63,11 @@ You can create your own test cases. To create a test case:
mysqltest --record --record-file=r/test_case_name.result < t/test_case_name.test
When this is done, take a look at r/test_case_name.result
- - If the result is wrong, you have found a bug; In this case you should
+ - If the result is incorrect, you have found a bug. In this case, you should
edit the test result to the correct results so that we can verify
that the bug is corrected in future releases.
To submit your test case, put your .test file and .result file(s) into
a tar.gz archive, add a README that explains the problem, ftp the
-archive to ftp://support.mysql.com/pub/mysql/secret/ and send a mail
+archive to ftp://support.mysql.com/pub/mysql/secret/ and send a mail
to bugs@lists.mysql.com
diff --git a/mysql-test/README.gcov b/mysql-test/README.gcov
index 83ddd6df2e1..6d2852e8ca0 100644
--- a/mysql-test/README.gcov
+++ b/mysql-test/README.gcov
@@ -1,11 +1,13 @@
To be able to see the level of coverage with the current test suite,
do the following:
- - make sure gcov is installed
- - compile with BUILD/compile-pentium-gcov ( if your machine is not pentium, hack
-this script, or just live with the pentium-specific stuff)
- - ./mysql-test-run -gcov
- - to see the level of coverage for a given source file:
+ - Make sure gcov is installed
+ - Compile the MySQL distribution with BUILD/compile-pentium-gcov (if your
+ machine does not have a pentium CPU, hack this script, or just live with
+ the pentium-specific stuff)
+ - In the mysql-test directory, run this command: ./mysql-test-run -gcov
+ - To see the level of coverage for a given source file:
grep source_file_name /tmp/gcov.out
- - to see which lines are not yet covered, look at source_file_name.gcov in the source tree. Then think hard about a test case that will cover those
-lines, and write one!
+ - To see which lines are not yet covered, look at source_file_name.gcov in
+ the source tree. Then think hard about a test case that will cover those
+ lines, and write one!
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 296bbecc843..f1f146e18a9 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -207,8 +207,13 @@ MYSQL_MANAGER_USER=root
# an environment variable can be used to control all ports. A small
# number is to be used, 0 - 16 or similar.
#
+# Note the MASTER_MYPORT has to be set the same in all 4.x and 5.x
+# versions of this script, else a 4.0 test run might conflict with a
+# 5.1 test run, even if different MTR_BUILD_THREAD is used. This means
+# all port numbers might not be used in this version of the script.
+#
if [ -n "$MTR_BUILD_THREAD" ] ; then
- MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 5 + 10000`
+ MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 10 + 10000`
MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2`
SLAVE_MYPORT=`expr $MASTER_MYPORT + 3`
@@ -225,6 +230,9 @@ FAILED_CASES=
EXTRA_MASTER_OPT=""
EXTRA_MYSQL_TEST_OPT=""
USE_RUNNING_SERVER=1
+# backport from 5.1, disabled - this substitution is not done in 4.0
+# USE_NDBCLUSTER=@USE_NDBCLUSTER@
+# USE_NDBCLUSTER_ONLY=0
DO_GCOV=""
DO_GDB=""
MANUAL_GDB=""
@@ -242,6 +250,8 @@ START_WAIT_TIMEOUT=10
STOP_WAIT_TIMEOUT=10
MYSQL_TEST_SSL_OPTS=""
+$ECHO "Logging: $0 $*" # To ensure we see all arguments in the output, for the test analysis tool
+
while test $# -gt 0; do
case "$1" in
--user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;;
@@ -254,6 +264,14 @@ while test $# -gt 0; do
SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;;
--local) USE_RUNNING_SERVER="" ;;
--extern) USE_RUNNING_SERVER="1" ;;
+ --with-ndbcluster)
+# USE_NDBCLUSTER="--ndbcluster" ;;
+ $ECHO "Option '--with-ndbcluster' is ignored in this version" ;;
+ --with-ndbcluster-only)
+# USE_NDBCLUSTER="--ndbcluster"
+# USE_NDBCLUSTER_SLAVE="--ndbcluster"
+# USE_NDBCLUSTER_ONLY=1 ;;
+ $ECHO "Option '--with-ndbcluster-only' is ignored in this version" ;;
--tmpdir=*) MYSQL_TMP_DIR=`$ECHO "$1" | $SED -e "s;--tmpdir=;;"` ;;
--local-master)
MASTER_MYPORT=3306;
@@ -405,6 +423,13 @@ while test $# -gt 0; do
--fast)
FAST_START=1
;;
+ --comment=*)
+ TMP=`$ECHO "$1" | $SED -e "s;--comment=;;"`
+ echo
+ echo '############################################'
+ echo "# $TMP"
+ echo '############################################'
+ ;;
-- ) shift; break ;;
--* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
* ) break ;;
diff --git a/mysql-test/r/func_op.result b/mysql-test/r/func_op.result
index d009a66353e..486c55870c2 100644
--- a/mysql-test/r/func_op.result
+++ b/mysql-test/r/func_op.result
@@ -25,3 +25,14 @@ select -1 >> 0, -1 << 0;
select -1 >> 1, -1 << 1;
-1 >> 1 -1 << 1
9223372036854775807 18446744073709551614
+drop table if exists t1,t2;
+create table t1(a int);
+create table t2(a int, b int);
+insert into t1 values (1), (2), (3);
+insert into t2 values (1, 7), (3, 7);
+select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a;
+a a b bit_count(t2.b)
+1 1 7 3
+2 NULL NULL NULL
+3 3 7 3
+drop table t1, t2;
diff --git a/mysql-test/r/update.result b/mysql-test/r/update.result
index 9ca92fe75df..46cf2d161ef 100644
--- a/mysql-test/r/update.result
+++ b/mysql-test/r/update.result
@@ -216,3 +216,7 @@ select * from t1;
a b
0 2
drop table t1;
+create table t1(f1 int, `*f2` int);
+insert into t1 values (1,1);
+update t1 set `*f2`=1;
+drop table t1;
diff --git a/mysql-test/t/func_op.test b/mysql-test/t/func_op.test
index a312d6ac8c0..ab96caaff82 100644
--- a/mysql-test/t/func_op.test
+++ b/mysql-test/t/func_op.test
@@ -14,3 +14,15 @@ select 1 | -1, 1 ^ -1, 1 & -1;
select 0 | -1, 0 ^ -1, 0 & -1;
select -1 >> 0, -1 << 0;
select -1 >> 1, -1 << 1;
+
+#
+# Bug 13044: wrong bit_count() results
+#
+
+drop table if exists t1,t2;
+create table t1(a int);
+create table t2(a int, b int);
+insert into t1 values (1), (2), (3);
+insert into t2 values (1, 7), (3, 7);
+select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a;
+drop table t1, t2;
diff --git a/mysql-test/t/update.test b/mysql-test/t/update.test
index 6c7b450f763..fcd17dc75f0 100644
--- a/mysql-test/t/update.test
+++ b/mysql-test/t/update.test
@@ -174,3 +174,11 @@ insert into t1 values (0, '1');
update t1 set b = b + 1 where a = 0;
select * from t1;
drop table t1;
+
+#
+# Bug #16510 Updating field named like '*name' caused server crash
+#
+create table t1(f1 int, `*f2` int);
+insert into t1 values (1,1);
+update t1 set `*f2`=1;
+drop table t1;
diff --git a/netware/mysql_install_db.c b/netware/mysql_install_db.c
index 355e18b819a..65ee7873e5c 100644
--- a/netware/mysql_install_db.c
+++ b/netware/mysql_install_db.c
@@ -423,7 +423,7 @@ int main(int argc, char **argv)
printf("\nThe latest information about MySQL is available on the web at\n");
printf("\thttp://www.mysql.com\n");
- printf("\nSupport MySQL by buying support at https://order.mysql.com\n\n");
+ printf("\nSupport MySQL by buying support at http://shop.mysql.com\n\n");
return 0;
}
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index 0236d8b8bfe..f372762c05d 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -279,7 +279,7 @@ then
gcclib=`@CC@ --print-libgcc-file`
if test $? -ne 0
then
- print "Warning: Couldn't find libgcc.a!"
+ echo "Warning: Couldn't find libgcc.a!"
else
$CP $gcclib libmygcc.a
fi
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 0b3742638f5..6aaeefaec17 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -1,3 +1,4 @@
+
#!/bin/sh
# Copyright (C) 2002-2004 MySQL AB
# For a more info consult the file COPYRIGHT distributed with this file.
@@ -397,7 +398,7 @@ then
echo
echo "The latest information about MySQL is available on the web at"
echo "http://www.mysql.com"
- echo "Support MySQL by buying support/licenses at https://order.mysql.com"
+ echo "Support MySQL by buying support/licenses at http://shop.mysql.com"
echo
exit 0
else
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 855e86b2382..e83d1f35db8 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1138,11 +1138,8 @@ longlong Item_func_find_in_set::val_int()
longlong Item_func_bit_count::val_int()
{
ulonglong value= (ulonglong) args[0]->val_int();
- if (args[0]->null_value)
- {
- null_value=1; /* purecov: inspected */
+ if ((null_value= args[0]->null_value))
return 0; /* purecov: inspected */
- }
return (longlong) my_count_bits(value);
}
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 4f52904a61e..42a2e692d21 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -1983,6 +1983,7 @@ int setup_fields(THD *thd, TABLE_LIST *tables, List<Item> &fields,
*/
if (item->type() == Item::FIELD_ITEM &&
((Item_field*) item)->field_name[0] == '*' &&
+ ((Item_field*) item)->field_name[1] == 0 &&
!((Item_field*) item)->field)
{
uint elem=fields.elements;