mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new mysql-test/r/ndb_lock.result: Auto merged mysql-test/t/ndb_lock.test: Auto merged sql/ha_ndbcluster.h: Auto merged storage/ndb/include/ndbapi/NdbTransaction.hpp: Auto merged storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged mysql-test/t/disabled.def: merge sql/ha_ndbcluster.cc: merge
This commit is contained in:
commit
df4afa6ed1
619 changed files with 6425 additions and 195329 deletions
|
@ -5,7 +5,7 @@ configure="./configure $base_configs $extra_configs"
|
|||
|
||||
commands="\
|
||||
$make -k distclean || true
|
||||
/bin/rm -rf */.deps/*.P config.cache storage/innobase/config.cache storage/bdb/build_unix/config.cache bdb/dist/autom4te.cache autom4te.cache innobase/autom4te.cache;
|
||||
/bin/rm -rf */.deps/*.P config.cache storage/innobase/config.cache autom4te.cache innobase/autom4te.cache;
|
||||
|
||||
path=`dirname $0`
|
||||
. \"$path/autorun.sh\""
|
||||
|
|
|
@ -38,7 +38,6 @@ EXTRA_DIST = FINISH.sh \
|
|||
compile-pentium-debug-max \
|
||||
compile-pentium-debug-max-no-embedded \
|
||||
compile-pentium-debug-max-no-ndb \
|
||||
compile-pentium-debug-no-bdb \
|
||||
compile-pentium-debug-openssl \
|
||||
compile-pentium-debug-yassl \
|
||||
compile-pentium-gcov \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/bin/rm -f */.deps/*.P */*.o
|
||||
make -k clean
|
||||
/bin/rm -f */.deps/*.P */*.o
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache storage/bdb/build_unix/config.cache mysql-*.tar.gz
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache mysql-*.tar.gz
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/bin/rm -f */.deps/*.P */*.o
|
||||
make -k clean
|
||||
/bin/rm -f */.deps/*.P */*.o
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache storage/bdb/build_unix/config.cache mysql-*.tar.gz
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache mysql-*.tar.gz
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
# package" that is used as the basis for all other binary builds.
|
||||
#
|
||||
test -f Makefile && make distclean
|
||||
(cd storage/bdb/dist && sh s_all)
|
||||
(cd storage/innobase && aclocal && autoheader && \
|
||||
libtoolize --automake --force --copy && \
|
||||
automake --force --add-missing --copy && autoconf)
|
||||
|
@ -52,7 +51,6 @@ fi
|
|||
--with-csv-storage-engine \
|
||||
--with-example-storage-engine \
|
||||
--with-federated-storage-engine \
|
||||
--with-berkeley-db \
|
||||
--with-innodb \
|
||||
--with-ssl \
|
||||
--enable-thread-safe-client \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
gmake -k clean || true
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache storage/bdb/build_unix/config.cache
|
||||
/bin/rm -f */.deps/*.P config.cache storage/innobase/config.cache
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$pentium_cflags $debug_cflags"
|
||||
extra_configs="$pentium_configs $debug_configs --without-berkeley-db $static_link"
|
||||
|
||||
. "$path/FINISH.sh"
|
|
@ -37,7 +37,7 @@ gmake -k clean || true
|
|||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
||||
|
||||
gmake -j 4
|
||||
|
||||
|
|
|
@ -49,10 +49,6 @@ IF(WITH_FEDERATED_STORAGE_ENGINE)
|
|||
ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
|
||||
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_berkeley_plugin")
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
|
||||
|
@ -131,9 +127,6 @@ ADD_SUBDIRECTORY(client)
|
|||
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/archive)
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/bdb)
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/blackhole)
|
||||
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
|
|
|
@ -39,11 +39,7 @@ BUILT_SOURCES = linked_client_sources linked_server_sources \
|
|||
@linked_libmysqld_targets@ \
|
||||
linked_include_sources @linked_netware_sources@
|
||||
|
||||
# The db.h file is a bit special, see note in "configure.in".
|
||||
# In the case we didn't compile with bdb, a dummy file is put
|
||||
# there, but will not be removed by the bdb make file becuase
|
||||
# it will never be called.
|
||||
CLEANFILES = $(BUILT_SOURCES) bdb/build_unix/db.h
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
DISTCLEANFILES = ac_available_languages_fragment
|
||||
|
||||
linked_include_sources:
|
||||
|
|
|
@ -338,7 +338,7 @@ static void end_timer(ulong start_time,char *buff);
|
|||
static void mysql_end_timer(ulong start_time,char *buff);
|
||||
static void nice_time(double sec,char *buff,bool part_second);
|
||||
static sig_handler mysql_end(int sig);
|
||||
static sig_handler handle_sigint(int sig);
|
||||
static sig_handler mysql_sigint(int sig);
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
|
@ -420,7 +420,8 @@ int main(int argc,char *argv[])
|
|||
if (opt_sigint_ignore)
|
||||
signal(SIGINT, SIG_IGN);
|
||||
else
|
||||
signal(SIGINT, handle_sigint); // Catch SIGINT to clean up
|
||||
signal(SIGINT, mysql_sigint); // Catch SIGINT to clean up
|
||||
|
||||
signal(SIGQUIT, mysql_end); // Catch SIGQUIT to clean up
|
||||
|
||||
/*
|
||||
|
@ -488,6 +489,28 @@ int main(int argc,char *argv[])
|
|||
#endif
|
||||
}
|
||||
|
||||
sig_handler mysql_sigint(int sig)
|
||||
{
|
||||
char kill_buffer[40];
|
||||
MYSQL *kill_mysql= NULL;
|
||||
|
||||
signal(SIGINT, mysql_sigint);
|
||||
|
||||
/* terminate if no query being executed, or we already tried interrupting */
|
||||
if (!executing_query || interrupted_query++)
|
||||
mysql_end(sig);
|
||||
|
||||
kill_mysql= mysql_init(kill_mysql);
|
||||
if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password,
|
||||
"", opt_mysql_port, opt_mysql_unix_port,0))
|
||||
mysql_end(sig);
|
||||
/* kill_buffer is always big enough because max length of %lu is 15 */
|
||||
sprintf(kill_buffer, "KILL /*!50000 QUERY */ %lu", mysql_thread_id(&mysql));
|
||||
mysql_real_query(kill_mysql, kill_buffer, strlen(kill_buffer));
|
||||
mysql_close(kill_mysql);
|
||||
tee_fprintf(stdout, "Query aborted by Ctrl+C\n");
|
||||
}
|
||||
|
||||
sig_handler mysql_end(int sig)
|
||||
{
|
||||
mysql_close(&mysql);
|
||||
|
@ -1035,6 +1058,8 @@ static int read_and_execute(bool interactive)
|
|||
if (opt_outfile && glob_buffer.is_empty())
|
||||
fflush(OUTFILE);
|
||||
|
||||
interrupted_query= 0;
|
||||
|
||||
#if defined( __WIN__) || defined(__NETWARE__)
|
||||
tee_fputs(prompt, stdout);
|
||||
#if defined(__NETWARE__)
|
||||
|
@ -2016,7 +2041,9 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
|||
}
|
||||
|
||||
timer=start_timer();
|
||||
|
||||
executing_query= 1;
|
||||
|
||||
error= mysql_real_query_for_lazy(buffer->ptr(),buffer->length());
|
||||
|
||||
#ifdef HAVE_READLINE
|
||||
|
@ -2032,6 +2059,7 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
|||
{
|
||||
executing_query= 0;
|
||||
buffer->length(0); // Remove query on error
|
||||
executing_query= 0;
|
||||
return error;
|
||||
}
|
||||
error=0;
|
||||
|
@ -2115,6 +2143,9 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
|||
fflush(stdout);
|
||||
mysql_free_result(result);
|
||||
} while (!(err= mysql_next_result(&mysql)));
|
||||
|
||||
executing_query= 0;
|
||||
|
||||
if (err >= 1)
|
||||
error= put_error(&mysql);
|
||||
|
||||
|
@ -3665,12 +3696,14 @@ static const char* construct_prompt()
|
|||
case 'U':
|
||||
if (!full_username)
|
||||
init_username();
|
||||
processed_prompt.append(full_username);
|
||||
processed_prompt.append(full_username ? full_username :
|
||||
(current_user ? current_user : "(unknown)"));
|
||||
break;
|
||||
case 'u':
|
||||
if (!full_username)
|
||||
init_username();
|
||||
processed_prompt.append(part_username);
|
||||
processed_prompt.append(part_username ? part_username :
|
||||
(current_user ? current_user : "(unknown)"));
|
||||
break;
|
||||
case PROMPT_CHAR:
|
||||
processed_prompt.append(PROMPT_CHAR);
|
||||
|
|
|
@ -17,6 +17,14 @@
|
|||
#include "client_priv.h"
|
||||
#include <my_dir.h>
|
||||
|
||||
#ifdef __WIN__
|
||||
const char *mysqlcheck_name= "mysqlcheck.exe";
|
||||
const char *mysql_name= "mysql.exe";
|
||||
#else
|
||||
const char *mysqlcheck_name= "mysqlcheck";
|
||||
const char *mysql_name= "mysql";
|
||||
#endif /*__WIN__*/
|
||||
|
||||
static my_bool opt_force= 0, opt_verbose= 0, tty_password= 0;
|
||||
static char *user= (char*) "root", *basedir= 0, *datadir= 0, *opt_password= 0;
|
||||
static my_bool upgrade_defaults_created= 0;
|
||||
|
@ -65,7 +73,7 @@ static struct my_option my_long_options[]=
|
|||
};
|
||||
static const char *load_default_groups[]=
|
||||
{
|
||||
"mysql_upgrade", "client", 0
|
||||
"mysql_upgrade", 0
|
||||
};
|
||||
|
||||
#include <help_end.h>
|
||||
|
@ -272,7 +280,7 @@ int main(int argc, char **argv)
|
|||
strmake(bindir_end, "/bin", sizeof(bindir) - (int) (bindir_end - bindir)-1);
|
||||
|
||||
if (!test_file_exists_res
|
||||
(bindir, "mysqlcheck", mysqlcheck_line, &mysqlcheck_end))
|
||||
(bindir, mysqlcheck_name, mysqlcheck_line, &mysqlcheck_end))
|
||||
{
|
||||
printf("Can't find program '%s'\n", mysqlcheck_line);
|
||||
puts("Please restart with --basedir=mysql-install-directory");
|
||||
|
@ -342,7 +350,8 @@ int main(int argc, char **argv)
|
|||
goto err_exit;
|
||||
|
||||
fix_priv_tables:
|
||||
if (!test_file_exists_res(bindir, "mysql", fix_priv_tables_cmd, &fix_cmd_end))
|
||||
if (!test_file_exists_res(bindir, mysql_name,
|
||||
fix_priv_tables_cmd, &fix_cmd_end))
|
||||
{
|
||||
puts("Could not find MySQL command-line client (mysql).");
|
||||
puts
|
||||
|
|
|
@ -1,263 +0,0 @@
|
|||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_BDB
|
||||
dnl Sets HAVE_BERKELEY_DB if inst library is found
|
||||
dnl Makes sure db version is correct.
|
||||
dnl Looks in $srcdir for Berkeley distribution if not told otherwise
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_DEFUN([MYSQL_SETUP_BERKELEY_DB], [
|
||||
AC_ARG_WITH([berkeley-db],
|
||||
AS_HELP_STRING([--with-berkeley-db[[[[[=DIR]]]]]],
|
||||
[Use BerkeleyDB located in DIR]),
|
||||
[bdb="$withval"],
|
||||
[bdb=yes])
|
||||
|
||||
AC_ARG_WITH([berkeley-db-includes],
|
||||
AS_HELP_STRING([--with-berkeley-db-includes=DIR],
|
||||
[Find Berkeley DB headers in DIR]),
|
||||
[bdb_includes="$withval"],
|
||||
[bdb_includes=default])
|
||||
|
||||
AC_ARG_WITH([berkeley-db-libs],
|
||||
AS_HELP_STRING([--with-berkeley-db-libs=DIR],
|
||||
[Find Berkeley DB libraries in DIR]),
|
||||
[bdb_libs="$withval"],
|
||||
[bdb_libs=default])
|
||||
|
||||
# echo " bdb $bdb $bdb_includes---$bdb_libs "
|
||||
case "$bdb" in
|
||||
yes )
|
||||
case "$bdb_includes---$bdb_libs" in
|
||||
default---default )
|
||||
mode=search-$bdb
|
||||
;;
|
||||
default---* | *---default | yes---* | *---yes )
|
||||
AC_MSG_ERROR([if either 'includes' or 'libs' is specified, both must be specified])
|
||||
;;
|
||||
* )
|
||||
mode=supplied-two
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
* )
|
||||
mode=supplied-one
|
||||
;;
|
||||
esac
|
||||
|
||||
case $mode in
|
||||
supplied-two )
|
||||
MYSQL_CHECK_INSTALLED_BDB([$bdb_includes], [$bdb_libs])
|
||||
case $bdb_dir_ok in
|
||||
installed ) mode=yes ;;
|
||||
* ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;;
|
||||
esac
|
||||
;;
|
||||
supplied-one )
|
||||
MYSQL_CHECK_BDB_DIR([$bdb])
|
||||
case $bdb_dir_ok in
|
||||
source ) mode=compile ;;
|
||||
installed ) mode=yes ;;
|
||||
* ) AC_MSG_ERROR([didn't find valid BerkeleyDB: $bdb_dir_ok]) ;;
|
||||
esac
|
||||
;;
|
||||
search-* )
|
||||
MYSQL_SEARCH_FOR_BDB
|
||||
case $bdb_dir_ok in
|
||||
source ) mode=compile ;;
|
||||
installed ) mode=yes ;;
|
||||
* ) AC_MSG_ERROR([no suitable BerkeleyDB found]) ;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com])
|
||||
;;
|
||||
esac
|
||||
|
||||
case $mode in
|
||||
yes )
|
||||
have_berkeley_db="yes"
|
||||
AC_MSG_RESULT([Using Berkeley DB in '$bdb_includes'])
|
||||
;;
|
||||
compile )
|
||||
have_berkeley_db="$bdb"
|
||||
AC_MSG_RESULT([Compiling Berekeley DB in '$have_berkeley_db'])
|
||||
;;
|
||||
* )
|
||||
AC_MSG_ERROR([impossible case condition '$mode': please report this to bugs@lists.mysql.com])
|
||||
;;
|
||||
esac
|
||||
|
||||
bdb_conf_flags="--disable-shared --build=$build_alias"
|
||||
if test $with_debug = "yes"
|
||||
then
|
||||
bdb_conf_flags="$bdb_conf_flags --enable-debug --enable-diagnostic"
|
||||
fi
|
||||
# NOTICE: if you're compiling BDB, it needs to be a SUBDIR
|
||||
# of $srcdir (i.e., you can 'cd $srcdir/$bdb'). It won't
|
||||
# work otherwise.
|
||||
if test -d "$bdb"; then :
|
||||
else
|
||||
# This should only happen when doing a VPATH build
|
||||
echo "NOTICE: I have to make the BDB directory: `pwd`:$bdb"
|
||||
mkdir "$bdb" || exit 1
|
||||
fi
|
||||
if test -d "$bdb"/build_unix; then :
|
||||
else
|
||||
# This should only happen when doing a VPATH build
|
||||
echo "NOTICE: I have to make the build_unix directory: `pwd`:$bdb/build_unix"
|
||||
mkdir "$bdb/build_unix" || exit 1
|
||||
fi
|
||||
rel_srcdir=
|
||||
case "$srcdir" in
|
||||
/* ) rel_srcdir="$srcdir" ;;
|
||||
* ) rel_srcdir="../../../$srcdir" ;;
|
||||
esac
|
||||
(cd $bdb/build_unix && \
|
||||
sh $rel_srcdir/$bdb/dist/configure $bdb_conf_flags) || \
|
||||
AC_MSG_ERROR([could not configure Berkeley DB])
|
||||
|
||||
AC_SUBST(bdb_includes)
|
||||
AC_SUBST(bdb_libs)
|
||||
AC_SUBST(bdb_libs_with_path)
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_CHECK_INSTALLED_BDB], [
|
||||
dnl echo ["MYSQL_CHECK_INSTALLED_BDB ($1) ($2)"]
|
||||
inc="$1"
|
||||
lib="$2"
|
||||
if test -f "$inc/db.h"
|
||||
then
|
||||
MYSQL_CHECK_BDB_VERSION([$inc/db.h],
|
||||
[.*#define[ ]*], [[ ][ ]*])
|
||||
|
||||
if test X"$bdb_version_ok" = Xyes; then
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="-L$lib $LDFLAGS"
|
||||
AC_CHECK_LIB(db,db_env_create, [
|
||||
bdb_dir_ok=installed
|
||||
MYSQL_TOP_BUILDDIR([inc])
|
||||
MYSQL_TOP_BUILDDIR([lib])
|
||||
bdb_includes="-I$inc"
|
||||
bdb_libs="-L$lib -ldb"
|
||||
bdb_libs_with_path="$lib/libdb.a"
|
||||
])
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
else
|
||||
bdb_dir_ok="$bdb_version_ok"
|
||||
fi
|
||||
else
|
||||
bdb_dir_ok="no db.h file in '$inc'"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_CHECK_BDB_DIR], [
|
||||
dnl ([$bdb])
|
||||
dnl echo ["MYSQL_CHECK_BDB_DIR ($1)"]
|
||||
dir="$1"
|
||||
|
||||
MYSQL_CHECK_INSTALLED_BDB([$dir/include], [$dir/lib])
|
||||
|
||||
if test X"$bdb_dir_ok" != Xinstalled; then
|
||||
# test to see if it's a source dir
|
||||
rel="$dir/dist/RELEASE"
|
||||
if test -f "$rel"; then
|
||||
MYSQL_CHECK_BDB_VERSION([$rel], [], [=])
|
||||
if test X"$bdb_version_ok" = Xyes; then
|
||||
bdb_dir_ok=source
|
||||
bdb="$dir"
|
||||
MYSQL_TOP_BUILDDIR([dir])
|
||||
bdb_includes="-I$dir/build_unix"
|
||||
bdb_libs="-L$dir/build_unix -ldb"
|
||||
bdb_libs_with_path="$dir/build_unix/libdb.a"
|
||||
else
|
||||
bdb_dir_ok="$bdb_version_ok"
|
||||
fi
|
||||
else
|
||||
bdb_dir_ok="'$dir' doesn't look like a BDB directory ($bdb_dir_ok)"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_SEARCH_FOR_BDB], [
|
||||
dnl echo ["MYSQL_SEARCH_FOR_BDB"]
|
||||
bdb_dir_ok="no BerkeleyDB found"
|
||||
|
||||
for test_dir in $srcdir/storage/bdb $srcdir/db-*.*.* /usr/local/BerkeleyDB*; do
|
||||
dnl echo "-----------> Looking at ($test_dir; `cd $test_dir && pwd`)"
|
||||
MYSQL_CHECK_BDB_DIR([$test_dir])
|
||||
if test X"$bdb_dir_ok" = Xsource || test X"$bdb_dir_ok" = Xinstalled; then
|
||||
dnl echo "-----------> Found it ($bdb), ($srcdir)"
|
||||
dnl This is needed so that 'make distcheck' works properly (VPATH build).
|
||||
dnl VPATH build won't work if bdb is not under the source tree; but in
|
||||
dnl that case, hopefully people will just make and install inside the
|
||||
dnl tree, or install BDB first, and then use the installed version.
|
||||
case "$bdb" in
|
||||
"$srcdir/"* ) bdb=`echo "$bdb" | sed -e "s,^$srcdir/,,"` ;;
|
||||
esac
|
||||
break
|
||||
fi
|
||||
done
|
||||
])
|
||||
|
||||
dnl MYSQL_CHECK_BDB_VERSION takes 3 arguments:
|
||||
dnl 1) the file to look in
|
||||
dnl 2) the search pattern before DB_VERSION_XXX
|
||||
dnl 3) the search pattern between DB_VERSION_XXX and the number
|
||||
dnl It assumes that the number is the last thing on the line
|
||||
AC_DEFUN([MYSQL_CHECK_BDB_VERSION], [
|
||||
db_major=`sed -e '/^[$2]DB_VERSION_MAJOR[$3]/ !d' -e 's///' [$1]`
|
||||
db_minor=`sed -e '/^[$2]DB_VERSION_MINOR[$3]/ !d' -e 's///' [$1]`
|
||||
db_patch=`sed -e '/^[$2]DB_VERSION_PATCH[$3]/ !d' -e 's///' [$1]`
|
||||
test -z "$db_major" && db_major=0
|
||||
test -z "$db_minor" && db_minor=0
|
||||
test -z "$db_patch" && db_patch=0
|
||||
|
||||
dnl # This is ugly, but about as good as it can get
|
||||
dnl # mysql_bdb=
|
||||
dnl # if test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 3
|
||||
dnl # then
|
||||
dnl # mysql_bdb=h
|
||||
dnl # elif test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 9
|
||||
dnl # then
|
||||
dnl # want_bdb_version="3.2.9a" # hopefully this will stay up-to-date
|
||||
dnl # mysql_bdb=a
|
||||
dnl # fi
|
||||
|
||||
dnl RAM:
|
||||
want_bdb_version="4.1.24"
|
||||
bdb_version_ok=yes
|
||||
|
||||
dnl # if test -n "$mysql_bdb" && \
|
||||
dnl # grep "DB_VERSION_STRING.*:.*$mysql_bdb: " [$1] > /dev/null
|
||||
dnl # then
|
||||
dnl # bdb_version_ok=yes
|
||||
dnl # else
|
||||
dnl # bdb_version_ok="invalid version $db_major.$db_minor.$db_patch"
|
||||
dnl # bdb_version_ok="$bdb_version_ok (must be version 3.2.3h or $want_bdb_version)"
|
||||
dnl # fi
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_TOP_BUILDDIR], [
|
||||
case "$[$1]" in
|
||||
/* ) ;; # don't do anything with an absolute path
|
||||
"$srcdir"/* )
|
||||
# If BDB is under the source directory, we need to look under the
|
||||
# build directory for bdb/build_unix.
|
||||
# NOTE: I'm being lazy, and assuming the user did not specify
|
||||
# something like --with-berkeley-db=bdb (it would be missing "./").
|
||||
[$1]="\$(top_builddir)/"`echo "$[$1]" | sed -e "s,^$srcdir/,,"`
|
||||
;;
|
||||
* )
|
||||
AC_MSG_ERROR([The BDB directory must be directly under the MySQL source directory, or be specified using the full path. ('$srcdir'; '$[$1]')])
|
||||
;;
|
||||
esac
|
||||
if test X"$[$1]" != "/"
|
||||
then
|
||||
[$1]=`echo $[$1] | sed -e 's,/$,,'`
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_BDB SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
|
@ -32,7 +32,6 @@ sinclude(config/ac-macros/check_cpu.m4)
|
|||
sinclude(config/ac-macros/character_sets.m4)
|
||||
sinclude(config/ac-macros/compiler_flag.m4)
|
||||
sinclude(config/ac-macros/plugins.m4)
|
||||
sinclude(config/ac-macros/ha_berkeley.m4)
|
||||
sinclude(config/ac-macros/ha_ndbcluster.m4)
|
||||
sinclude(config/ac-macros/large_file.m4)
|
||||
sinclude(config/ac-macros/misc.m4)
|
||||
|
@ -2142,12 +2141,6 @@ MYSQL_CHECK_SSL
|
|||
# functions tested above
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
MYSQL_STORAGE_ENGINE(berkeley, berkeley-db, [BerkeleyDB Storage Engine],
|
||||
[Transactional Tables using BerkeleyDB], [max,max-no-ndb])
|
||||
MYSQL_PLUGIN_DIRECTORY(berkeley,[storage/bdb])
|
||||
MYSQL_PLUGIN_STATIC(berkeley, [[\$(bdb_libs_with_path)]])
|
||||
MYSQL_PLUGIN_ACTIONS(berkeley, [MYSQL_SETUP_BERKELEY_DB])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(blackhole,,[Blackhole Storage Engine],
|
||||
[Basic Write-only Read-never tables], [max,max-no-ndb])
|
||||
MYSQL_PLUGIN_DIRECTORY(blackhole, [storage/blackhole])
|
||||
|
|
|
@ -48,6 +48,7 @@ int decimal_bin_size(int precision, int scale);
|
|||
int decimal_result_size(decimal_t *from1, decimal_t *from2, char op,
|
||||
int param);
|
||||
|
||||
int decimal_intg(decimal_t *from);
|
||||
int decimal_add(decimal_t *from1, decimal_t *from2, decimal_t *to);
|
||||
int decimal_sub(decimal_t *from1, decimal_t *from2, decimal_t *to);
|
||||
int decimal_cmp(decimal_t *from1, decimal_t *from2);
|
||||
|
|
|
@ -16,7 +16,6 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
|||
${CMAKE_SOURCE_DIR}/sql
|
||||
${CMAKE_SOURCE_DIR}/regex
|
||||
${CMAKE_SOURCE_DIR}/extra/yassl/include
|
||||
${CMAKE_SOURCE_DIR}/storage/bdb/build_win32
|
||||
${CMAKE_SOURCE_DIR}/zlib
|
||||
)
|
||||
|
||||
|
@ -84,9 +83,6 @@ ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
|||
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
ADD_DEPENDENCIES(mysqlserver innobase)
|
||||
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_DEPENDENCIES(mysqlserver bdb)
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
|
||||
ADD_LIBRARY(libmysqld MODULE cmake_dummy.c libmysqld.def)
|
||||
TARGET_LINK_LIBRARIES(libmysqld wsock32)
|
||||
|
|
|
@ -45,7 +45,7 @@ noinst_HEADERS = embedded_priv.h emb_qcache.h
|
|||
|
||||
sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
||||
ha_heap.cc ha_myisam.cc ha_myisammrg.cc \
|
||||
ha_innodb.cc ha_berkeley.cc ha_federated.cc ha_ndbcluster.cc \
|
||||
ha_innodb.cc ha_federated.cc ha_ndbcluster.cc \
|
||||
ha_ndbcluster_binlog.cc ha_partition.cc \
|
||||
handler.cc sql_handler.cc \
|
||||
hostname.cc init.cc password.c \
|
||||
|
@ -96,10 +96,6 @@ yassl_inc_libs= $(top_srcdir)/extra/yassl/src/.libs/libyassl.a \
|
|||
endif
|
||||
|
||||
# Storage engine specific compilation options
|
||||
|
||||
ha_berkeley.o: ha_berkeley.cc
|
||||
$(CXXCOMPILE) @bdb_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_ndbcluster.o:ha_ndbcluster.cc
|
||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
|
|
|
@ -524,11 +524,7 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
|||
|
||||
(void) thr_setconcurrency(concurrency); // 10 by default
|
||||
|
||||
if (
|
||||
#ifdef HAVE_BERKELEY_DB
|
||||
(have_berkeley_db == SHOW_OPTION_YES) ||
|
||||
#endif
|
||||
(flush_time && flush_time != ~(ulong) 0L))
|
||||
if (flush_time && flush_time != ~(ulong) 0L)
|
||||
{
|
||||
pthread_t hThread;
|
||||
if (pthread_create(&hThread,&connection_attrib,handle_manager,0))
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#
|
||||
|
||||
-- source include/not_embedded.inc
|
||||
-- source include/have_bdb.inc
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_debug.inc
|
||||
|
||||
|
@ -12,7 +11,7 @@ drop table if exists t1, t2;
|
|||
--enable_warnings
|
||||
reset master;
|
||||
|
||||
create table t1 (a int) engine=bdb;
|
||||
create table t1 (a int) engine=innodb;
|
||||
create table t2 (a int) engine=innodb;
|
||||
begin;
|
||||
insert t1 values (5);
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
-- require r/have_bdb.require
|
||||
disable_query_log;
|
||||
show variables like "have_bdb";
|
||||
enable_query_log;
|
|
@ -80,7 +80,7 @@ basedir=.
|
|||
EXTRA_ARG="--language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/"
|
||||
fi
|
||||
|
||||
mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb --skip-ndbcluster --skip-bdb --tmpdir=. $EXTRA_ARG"
|
||||
mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb --skip-ndbcluster --tmpdir=. $EXTRA_ARG"
|
||||
echo "running $mysqld_boot"
|
||||
|
||||
if $scriptdir/mysql_create_system_tables test $mdata $hostname | $mysqld_boot
|
||||
|
|
|
@ -83,7 +83,14 @@ sub mtr_path_exists (@) {
|
|||
sub mtr_script_exists (@) {
|
||||
foreach my $path ( @_ )
|
||||
{
|
||||
return $path if -x $path;
|
||||
if($::glob_win32)
|
||||
{
|
||||
return $path if -f $path;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $path if -x $path;
|
||||
}
|
||||
}
|
||||
if ( @_ == 1 )
|
||||
{
|
||||
|
|
|
@ -1299,8 +1299,8 @@ sub executable_setup () {
|
|||
$path_ndb_tools_dir= "$glob_basedir/bin";
|
||||
$exe_ndb_mgm= "$glob_basedir/bin/ndb_mgm";
|
||||
$exe_ndb_waiter= "$glob_basedir/bin/ndb_waiter";
|
||||
$exe_ndbd= "$glob_basedir/libexec/ndbd";
|
||||
$exe_ndb_mgmd= "$glob_basedir/libexec/ndb_mgmd";
|
||||
$exe_ndbd= "$glob_basedir/bin/ndbd";
|
||||
$exe_ndb_mgmd= "$glob_basedir/bin/ndb_mgmd";
|
||||
}
|
||||
|
||||
$exe_master_mysqld= $exe_master_mysqld || $exe_mysqld;
|
||||
|
@ -1320,30 +1320,34 @@ sub executable_setup () {
|
|||
|
||||
sub environment_setup () {
|
||||
|
||||
my $extra_ld_library_paths;
|
||||
umask(022);
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# We might not use a standard installation directory, like /usr/lib.
|
||||
# Set LD_LIBRARY_PATH to make sure we find our installed libraries.
|
||||
# Setup LD_LIBRARY_PATH so the libraries from this distro/clone
|
||||
# are used in favor of the system installed ones
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
unless ( $opt_source_dist )
|
||||
if ( $opt_source_dist )
|
||||
{
|
||||
$ENV{'LD_LIBRARY_PATH'}=
|
||||
"$glob_basedir/lib" .
|
||||
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
|
||||
$ENV{'DYLD_LIBRARY_PATH'}=
|
||||
"$glob_basedir/lib" .
|
||||
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
|
||||
$extra_ld_library_paths= "$glob_basedir/libmysql/.libs/";
|
||||
}
|
||||
else
|
||||
{
|
||||
$extra_ld_library_paths= "$glob_basedir/lib";
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Add the path where mysqld will find udf_example.so
|
||||
# --------------------------------------------------------------------------
|
||||
$ENV{'LD_LIBRARY_PATH'}=
|
||||
($lib_udf_example ? dirname($lib_udf_example) : "") .
|
||||
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
|
||||
$extra_ld_library_paths .= ":" .
|
||||
($lib_udf_example ? dirname($lib_udf_example) : "");
|
||||
|
||||
$ENV{'LD_LIBRARY_PATH'}=
|
||||
"$extra_ld_library_paths" .
|
||||
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
|
||||
$ENV{'DYLD_LIBRARY_PATH'}=
|
||||
"$extra_ld_library_paths" .
|
||||
($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : "");
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Also command lines in .opt files may contain env vars
|
||||
|
@ -2122,7 +2126,6 @@ sub install_db ($$) {
|
|||
mtr_add_arg($args, "--datadir=%s", $data_dir);
|
||||
mtr_add_arg($args, "--skip-innodb");
|
||||
mtr_add_arg($args, "--skip-ndbcluster");
|
||||
mtr_add_arg($args, "--skip-bdb");
|
||||
mtr_add_arg($args, "--tmpdir=.");
|
||||
|
||||
if ( ! $opt_netware )
|
||||
|
@ -2215,7 +2218,6 @@ basedir = $path_my_basedir
|
|||
server_id = $server_id
|
||||
skip-stack-trace
|
||||
skip-innodb
|
||||
skip-bdb
|
||||
skip-ndbcluster
|
||||
EOF
|
||||
;
|
||||
|
@ -2629,7 +2631,6 @@ sub mysqld_arguments ($$$$$) {
|
|||
if ( $opt_valgrind_mysqld )
|
||||
{
|
||||
mtr_add_arg($args, "%s--skip-safemalloc", $prefix);
|
||||
mtr_add_arg($args, "%s--skip-bdb", $prefix);
|
||||
}
|
||||
|
||||
my $pidfile;
|
||||
|
|
|
@ -536,8 +536,8 @@ while test $# -gt 0; do
|
|||
--valgrind | --valgrind-all)
|
||||
find_valgrind;
|
||||
VALGRIND=$FIND_VALGRIND
|
||||
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-safemalloc --skip-bdb"
|
||||
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc --skip-bdb"
|
||||
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-safemalloc"
|
||||
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc"
|
||||
SLEEP_TIME_AFTER_RESTART=10
|
||||
SLEEP_TIME_FOR_DELETE=60
|
||||
USE_RUNNING_SERVER=0
|
||||
|
|
|
@ -6,26 +6,26 @@ Table Op Msg_type Msg_text
|
|||
test.t4 backup error Failed copying .frm file (errno: X)
|
||||
test.t4 backup status Operation failed
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
Error 1 Can't create/write to file 'MYSQLTEST_VARDIR/bogus/t4.frm' (Errcode: X)
|
||||
backup table t4 to '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t4 backup status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
backup table t4 to '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t4 backup error Failed copying .frm file (errno: X)
|
||||
test.t4 backup status Operation failed
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
Error 1 Can't create/write to file 'MYSQLTEST_VARDIR/tmp/t4.frm' (Errcode: X)
|
||||
drop table t4;
|
||||
restore table t4 from '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t4 restore status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
0
|
||||
|
@ -35,19 +35,19 @@ backup table t1 to '../tmp';
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 backup status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
drop table t1;
|
||||
restore table t1 from '../bogus';
|
||||
Table Op Msg_type Msg_text
|
||||
t1 restore error Failed copying .frm file
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X)
|
||||
restore table t1 from '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 restore status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
select n from t1;
|
||||
n
|
||||
23
|
||||
|
@ -62,7 +62,7 @@ Table Op Msg_type Msg_text
|
|||
test.t2 backup status OK
|
||||
test.t3 backup status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
drop table t1,t2,t3;
|
||||
restore table t1,t2,t3 from '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
|
@ -70,7 +70,7 @@ test.t1 restore status OK
|
|||
test.t2 restore status OK
|
||||
test.t3 restore status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
select n from t1;
|
||||
n
|
||||
23
|
||||
|
@ -91,7 +91,7 @@ restore table t1 from '../tmp';
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 restore status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
rename table t1 to t5;
|
||||
lock tables t5 write;
|
||||
backup table t5 to '../tmp';
|
||||
|
@ -99,7 +99,7 @@ unlock tables;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t5 backup status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
drop table t5;
|
||||
DROP TABLE IF EXISTS `t+1`;
|
||||
CREATE TABLE `t+1` (c1 INT);
|
||||
|
@ -108,13 +108,13 @@ BACKUP TABLE `t+1` TO '../tmp';
|
|||
Table Op Msg_type Msg_text
|
||||
test.t+1 backup status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'BACKUP TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
DROP TABLE `t+1`;
|
||||
RESTORE TABLE `t+1` FROM '../tmp';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t+1 restore status OK
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead.
|
||||
Warning 1541 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||
SELECT * FROM `t+1`;
|
||||
c1
|
||||
1
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
drop table if exists t1;
|
||||
create table t1(objid BIGINT not null, tablename varchar(64), oid BIGINT not null, test BIGINT, PRIMARY KEY (objid), UNIQUE(tablename)) engine=BDB;
|
||||
insert into t1 values(1, 't1',4,9);
|
||||
insert into t1 values(2, 'metatable',1,9);
|
||||
insert into t1 values(3, 'metaindex',1,9 );
|
||||
select * from t1;
|
||||
objid tablename oid test
|
||||
1 t1 4 9
|
||||
2 metatable 1 9
|
||||
3 metaindex 1 9
|
||||
alter table t1 drop column test;
|
|
@ -1,6 +0,0 @@
|
|||
select * from t1;
|
||||
objid tablename oid
|
||||
1 t1 4
|
||||
2 metatable 1
|
||||
3 metaindex 1
|
||||
drop table t1;
|
|
@ -1,39 +0,0 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1 (
|
||||
ChargeID int(10) unsigned NOT NULL auto_increment,
|
||||
ServiceID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ChargeDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
ChargeAmount decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
FedTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
ProvTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
ChargeStatus enum('New','Auth','Unauth','Sale','Denied','Refund')
|
||||
DEFAULT 'New' NOT NULL,
|
||||
ChargeAuthorizationMessage text,
|
||||
ChargeComment text,
|
||||
ChargeTimeStamp varchar(20),
|
||||
PRIMARY KEY (ChargeID),
|
||||
KEY ServiceID (ServiceID),
|
||||
KEY ChargeDate (ChargeDate)
|
||||
) engine=BDB;
|
||||
BEGIN;
|
||||
INSERT INTO t1
|
||||
VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now');
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
UPDATE t1 SET ChargeAuthorizationMessage = 'blablabla' WHERE
|
||||
ChargeID = 1;
|
||||
COMMIT;
|
||||
INSERT INTO t1
|
||||
VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now');
|
||||
select * from t1;
|
||||
ChargeID ServiceID ChargeDate ChargeAmount FedTaxes ProvTaxes ChargeStatus ChargeAuthorizationMessage ChargeComment ChargeTimeStamp
|
||||
1 1 2001-03-01 1.00 1.00 1.00 New blablabla NULL now
|
||||
2 1 2001-03-01 1.00 1.00 1.00 New NULL NULL now
|
||||
drop table t1;
|
||||
create table t1 (a int) engine=bdb;
|
||||
set autocommit=0;
|
||||
insert into t1 values(1);
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
drop table t1;
|
|
@ -1,31 +0,0 @@
|
|||
drop table if exists t1,t2;
|
||||
create table t1 (id integer, x integer) engine=BDB;
|
||||
create table t2 (id integer, x integer) engine=BDB;
|
||||
insert into t1 values(0, 0);
|
||||
insert into t2 values(0, 0);
|
||||
set autocommit=0;
|
||||
update t1 set x = 1 where id = 0;
|
||||
set autocommit=0;
|
||||
update t2 set x = 1 where id = 0;
|
||||
select x from t1 where id = 0;
|
||||
select x from t2 where id = 0;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
commit;
|
||||
x
|
||||
1
|
||||
commit;
|
||||
select * from t1;
|
||||
id x
|
||||
0 1
|
||||
select * from t2;
|
||||
id x
|
||||
0 1
|
||||
commit;
|
||||
select * from t1;
|
||||
id x
|
||||
0 1
|
||||
select * from t2;
|
||||
id x
|
||||
0 1
|
||||
commit;
|
||||
drop table t1,t2;
|
File diff suppressed because it is too large
Load diff
|
@ -1,99 +0,0 @@
|
|||
drop table if exists t1, t2, t3;
|
||||
flush status;
|
||||
set autocommit=0;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
set autocommit=1;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
begin;
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
create table t2 (a int not null) engine=bdb;
|
||||
create table t3 (a int not null) engine=bdb;
|
||||
insert into t1 values (1),(2);
|
||||
insert into t2 values (1),(2);
|
||||
insert into t3 values (1),(2);
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
select * from t2;
|
||||
a
|
||||
1
|
||||
2
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
2
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 3
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 0
|
||||
begin;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
select * from t2;
|
||||
a
|
||||
1
|
||||
2
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
2
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 3
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 0
|
||||
insert into t1 values (3);
|
||||
insert into t2 values (3);
|
||||
insert into t1 values (4);
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
select * from t2;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
2
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 3
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 0
|
||||
commit;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
drop table if exists t1, t2, t3;
|
|
@ -1,462 +0,0 @@
|
|||
SET storage_engine=bdb;
|
||||
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
||||
CREATE TABLE gis_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POINT);
|
||||
CREATE TABLE gis_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g LINESTRING);
|
||||
CREATE TABLE gis_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POLYGON);
|
||||
CREATE TABLE gis_multi_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOINT);
|
||||
CREATE TABLE gis_multi_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTILINESTRING);
|
||||
CREATE TABLE gis_multi_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOLYGON);
|
||||
CREATE TABLE gis_geometrycollection (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRYCOLLECTION);
|
||||
CREATE TABLE gis_geometry (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRY);
|
||||
SHOW CREATE TABLE gis_point;
|
||||
Table Create Table
|
||||
gis_point CREATE TABLE `gis_point` (
|
||||
`fid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`g` point DEFAULT NULL,
|
||||
PRIMARY KEY (`fid`)
|
||||
) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1
|
||||
SHOW FIELDS FROM gis_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g point YES NULL
|
||||
SHOW FIELDS FROM gis_line;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g linestring YES NULL
|
||||
SHOW FIELDS FROM gis_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g polygon YES NULL
|
||||
SHOW FIELDS FROM gis_multi_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g multipoint YES NULL
|
||||
SHOW FIELDS FROM gis_multi_line;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g multilinestring YES NULL
|
||||
SHOW FIELDS FROM gis_multi_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g multipolygon YES NULL
|
||||
SHOW FIELDS FROM gis_geometrycollection;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g geometrycollection YES NULL
|
||||
SHOW FIELDS FROM gis_geometry;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL auto_increment
|
||||
g geometry YES NULL
|
||||
INSERT INTO gis_point VALUES
|
||||
(101, PointFromText('POINT(10 10)')),
|
||||
(102, PointFromText('POINT(20 10)')),
|
||||
(103, PointFromText('POINT(20 20)')),
|
||||
(104, PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
|
||||
INSERT INTO gis_line VALUES
|
||||
(105, LineFromText('LINESTRING(0 0,0 10,10 0)')),
|
||||
(106, LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
|
||||
(107, LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
|
||||
INSERT INTO gis_polygon VALUES
|
||||
(108, PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
|
||||
(109, PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
|
||||
(110, PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
|
||||
INSERT INTO gis_multi_point VALUES
|
||||
(111, MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
|
||||
(112, MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
|
||||
(113, MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
|
||||
INSERT INTO gis_multi_line VALUES
|
||||
(114, MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
|
||||
(115, MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
|
||||
(116, MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
|
||||
INSERT INTO gis_multi_polygon VALUES
|
||||
(117, MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
|
||||
(118, MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
|
||||
(119, MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
|
||||
INSERT INTO gis_geometrycollection VALUES
|
||||
(120, GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
|
||||
(121, GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
|
||||
INSERT into gis_geometry SELECT * FROM gis_point;
|
||||
INSERT into gis_geometry SELECT * FROM gis_line;
|
||||
INSERT into gis_geometry SELECT * FROM gis_polygon;
|
||||
INSERT into gis_geometry SELECT * FROM gis_multi_point;
|
||||
INSERT into gis_geometry SELECT * FROM gis_multi_line;
|
||||
INSERT into gis_geometry SELECT * FROM gis_multi_polygon;
|
||||
INSERT into gis_geometry SELECT * FROM gis_geometrycollection;
|
||||
SELECT fid, AsText(g) FROM gis_point ORDER by fid;
|
||||
fid AsText(g)
|
||||
101 POINT(10 10)
|
||||
102 POINT(20 10)
|
||||
103 POINT(20 20)
|
||||
104 POINT(10 20)
|
||||
SELECT fid, AsText(g) FROM gis_line ORDER by fid;
|
||||
fid AsText(g)
|
||||
105 LINESTRING(0 0,0 10,10 0)
|
||||
106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
|
||||
107 LINESTRING(10 10,40 10)
|
||||
SELECT fid, AsText(g) FROM gis_polygon ORDER by fid;
|
||||
fid AsText(g)
|
||||
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
|
||||
110 POLYGON((0 0,30 0,30 30,0 0))
|
||||
SELECT fid, AsText(g) FROM gis_multi_point ORDER by fid;
|
||||
fid AsText(g)
|
||||
111 MULTIPOINT(0 0,10 10,10 20,20 20)
|
||||
112 MULTIPOINT(1 1,11 11,11 21,21 21)
|
||||
113 MULTIPOINT(3 6,4 10)
|
||||
SELECT fid, AsText(g) FROM gis_multi_line ORDER by fid;
|
||||
fid AsText(g)
|
||||
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
115 MULTILINESTRING((10 48,10 21,10 0))
|
||||
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
|
||||
SELECT fid, AsText(g) FROM gis_multi_polygon ORDER by fid;
|
||||
fid AsText(g)
|
||||
117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
|
||||
SELECT fid, AsText(g) FROM gis_geometrycollection ORDER by fid;
|
||||
fid AsText(g)
|
||||
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
|
||||
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
|
||||
SELECT fid, AsText(g) FROM gis_geometry ORDER by fid;
|
||||
fid AsText(g)
|
||||
101 POINT(10 10)
|
||||
102 POINT(20 10)
|
||||
103 POINT(20 20)
|
||||
104 POINT(10 20)
|
||||
105 LINESTRING(0 0,0 10,10 0)
|
||||
106 LINESTRING(10 10,20 10,20 20,10 20,10 10)
|
||||
107 LINESTRING(10 10,40 10)
|
||||
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
|
||||
110 POLYGON((0 0,30 0,30 30,0 0))
|
||||
111 MULTIPOINT(0 0,10 10,10 20,20 20)
|
||||
112 MULTIPOINT(1 1,11 11,11 21,21 21)
|
||||
113 MULTIPOINT(3 6,4 10)
|
||||
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
115 MULTILINESTRING((10 48,10 21,10 0))
|
||||
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
|
||||
117 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
118 MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
119 MULTIPOLYGON(((0 3,3 3,3 0,0 3)))
|
||||
120 GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))
|
||||
121 GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))
|
||||
SELECT fid, Dimension(g) FROM gis_geometry ORDER by fid;
|
||||
fid Dimension(g)
|
||||
101 0
|
||||
102 0
|
||||
103 0
|
||||
104 0
|
||||
105 1
|
||||
106 1
|
||||
107 1
|
||||
108 2
|
||||
109 2
|
||||
110 2
|
||||
111 0
|
||||
112 0
|
||||
113 0
|
||||
114 1
|
||||
115 1
|
||||
116 1
|
||||
117 2
|
||||
118 2
|
||||
119 2
|
||||
120 1
|
||||
121 1
|
||||
SELECT fid, GeometryType(g) FROM gis_geometry ORDER by fid;
|
||||
fid GeometryType(g)
|
||||
101 POINT
|
||||
102 POINT
|
||||
103 POINT
|
||||
104 POINT
|
||||
105 LINESTRING
|
||||
106 LINESTRING
|
||||
107 LINESTRING
|
||||
108 POLYGON
|
||||
109 POLYGON
|
||||
110 POLYGON
|
||||
111 MULTIPOINT
|
||||
112 MULTIPOINT
|
||||
113 MULTIPOINT
|
||||
114 MULTILINESTRING
|
||||
115 MULTILINESTRING
|
||||
116 MULTILINESTRING
|
||||
117 MULTIPOLYGON
|
||||
118 MULTIPOLYGON
|
||||
119 MULTIPOLYGON
|
||||
120 GEOMETRYCOLLECTION
|
||||
121 GEOMETRYCOLLECTION
|
||||
SELECT fid, IsEmpty(g) FROM gis_geometry ORDER by fid;
|
||||
fid IsEmpty(g)
|
||||
101 0
|
||||
102 0
|
||||
103 0
|
||||
104 0
|
||||
105 0
|
||||
106 0
|
||||
107 0
|
||||
108 0
|
||||
109 0
|
||||
110 0
|
||||
111 0
|
||||
112 0
|
||||
113 0
|
||||
114 0
|
||||
115 0
|
||||
116 0
|
||||
117 0
|
||||
118 0
|
||||
119 0
|
||||
120 0
|
||||
121 0
|
||||
SELECT fid, AsText(Envelope(g)) FROM gis_geometry ORDER by fid;
|
||||
fid AsText(Envelope(g))
|
||||
101 POLYGON((10 10,10 10,10 10,10 10,10 10))
|
||||
102 POLYGON((20 10,20 10,20 10,20 10,20 10))
|
||||
103 POLYGON((20 20,20 20,20 20,20 20,20 20))
|
||||
104 POLYGON((10 20,10 20,10 20,10 20,10 20))
|
||||
105 POLYGON((0 0,10 0,10 10,0 10,0 0))
|
||||
106 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
107 POLYGON((10 10,40 10,40 10,10 10,10 10))
|
||||
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
109 POLYGON((0 0,50 0,50 50,0 50,0 0))
|
||||
110 POLYGON((0 0,30 0,30 30,0 30,0 0))
|
||||
111 POLYGON((0 0,20 0,20 20,0 20,0 0))
|
||||
112 POLYGON((1 1,21 1,21 21,1 21,1 1))
|
||||
113 POLYGON((3 6,4 6,4 10,3 10,3 6))
|
||||
114 POLYGON((10 0,16 0,16 48,10 48,10 0))
|
||||
115 POLYGON((10 0,10 0,10 48,10 48,10 0))
|
||||
116 POLYGON((1 2,21 2,21 8,1 8,1 2))
|
||||
117 POLYGON((28 0,84 0,84 42,28 42,28 0))
|
||||
118 POLYGON((28 0,84 0,84 42,28 42,28 0))
|
||||
119 POLYGON((0 0,3 0,3 3,0 3,0 0))
|
||||
120 POLYGON((0 0,10 0,10 10,0 10,0 0))
|
||||
121 POLYGON((3 6,44 6,44 9,3 9,3 6))
|
||||
explain extended select Dimension(g), GeometryType(g), IsEmpty(g), AsText(Envelope(g)) from gis_geometry;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 21 100.00
|
||||
Warnings:
|
||||
Note 1003 select dimension(`test`.`gis_geometry`.`g`) AS `Dimension(g)`,geometrytype(`test`.`gis_geometry`.`g`) AS `GeometryType(g)`,isempty(`test`.`gis_geometry`.`g`) AS `IsEmpty(g)`,astext(envelope(`test`.`gis_geometry`.`g`)) AS `AsText(Envelope(g))` from `test`.`gis_geometry`
|
||||
SELECT fid, X(g) FROM gis_point ORDER by fid;
|
||||
fid X(g)
|
||||
101 10
|
||||
102 20
|
||||
103 20
|
||||
104 10
|
||||
SELECT fid, Y(g) FROM gis_point ORDER by fid;
|
||||
fid Y(g)
|
||||
101 10
|
||||
102 10
|
||||
103 20
|
||||
104 20
|
||||
explain extended select X(g),Y(g) FROM gis_point;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 100.00
|
||||
Warnings:
|
||||
Note 1003 select x(`test`.`gis_point`.`g`) AS `X(g)`,y(`test`.`gis_point`.`g`) AS `Y(g)` from `test`.`gis_point`
|
||||
SELECT fid, AsText(StartPoint(g)) FROM gis_line ORDER by fid;
|
||||
fid AsText(StartPoint(g))
|
||||
105 POINT(0 0)
|
||||
106 POINT(10 10)
|
||||
107 POINT(10 10)
|
||||
SELECT fid, AsText(EndPoint(g)) FROM gis_line ORDER by fid;
|
||||
fid AsText(EndPoint(g))
|
||||
105 POINT(10 0)
|
||||
106 POINT(10 10)
|
||||
107 POINT(40 10)
|
||||
SELECT fid, GLength(g) FROM gis_line ORDER by fid;
|
||||
fid GLength(g)
|
||||
105 24.142135623731
|
||||
106 40
|
||||
107 30
|
||||
SELECT fid, NumPoints(g) FROM gis_line ORDER by fid;
|
||||
fid NumPoints(g)
|
||||
105 3
|
||||
106 5
|
||||
107 2
|
||||
SELECT fid, AsText(PointN(g, 2)) FROM gis_line ORDER by fid;
|
||||
fid AsText(PointN(g, 2))
|
||||
105 POINT(0 10)
|
||||
106 POINT(20 10)
|
||||
107 POINT(40 10)
|
||||
SELECT fid, IsClosed(g) FROM gis_line ORDER by fid;
|
||||
fid IsClosed(g)
|
||||
105 0
|
||||
106 1
|
||||
107 0
|
||||
explain extended select AsText(StartPoint(g)),AsText(EndPoint(g)),GLength(g),NumPoints(g),AsText(PointN(g, 2)),IsClosed(g) FROM gis_line;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_line ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select astext(startpoint(`test`.`gis_line`.`g`)) AS `AsText(StartPoint(g))`,astext(endpoint(`test`.`gis_line`.`g`)) AS `AsText(EndPoint(g))`,glength(`test`.`gis_line`.`g`) AS `GLength(g)`,numpoints(`test`.`gis_line`.`g`) AS `NumPoints(g)`,astext(pointn(`test`.`gis_line`.`g`,2)) AS `AsText(PointN(g, 2))`,isclosed(`test`.`gis_line`.`g`) AS `IsClosed(g)` from `test`.`gis_line`
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_polygon ORDER by fid;
|
||||
fid AsText(Centroid(g))
|
||||
108 POINT(15 15)
|
||||
109 POINT(25.416666666667 25.416666666667)
|
||||
110 POINT(20 10)
|
||||
SELECT fid, Area(g) FROM gis_polygon ORDER by fid;
|
||||
fid Area(g)
|
||||
108 100
|
||||
109 2400
|
||||
110 450
|
||||
SELECT fid, AsText(ExteriorRing(g)) FROM gis_polygon ORDER by fid;
|
||||
fid AsText(ExteriorRing(g))
|
||||
108 LINESTRING(10 10,20 10,20 20,10 20,10 10)
|
||||
109 LINESTRING(0 0,50 0,50 50,0 50,0 0)
|
||||
110 LINESTRING(0 0,30 0,30 30,0 0)
|
||||
SELECT fid, NumInteriorRings(g) FROM gis_polygon ORDER by fid;
|
||||
fid NumInteriorRings(g)
|
||||
108 0
|
||||
109 1
|
||||
110 0
|
||||
SELECT fid, AsText(InteriorRingN(g, 1)) FROM gis_polygon ORDER by fid;
|
||||
fid AsText(InteriorRingN(g, 1))
|
||||
108 NULL
|
||||
109 LINESTRING(10 10,20 10,20 20,10 20,10 10)
|
||||
110 NULL
|
||||
explain extended select AsText(Centroid(g)),Area(g),AsText(ExteriorRing(g)),NumInteriorRings(g),AsText(InteriorRingN(g, 1)) FROM gis_polygon;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select astext(centroid(`test`.`gis_polygon`.`g`)) AS `AsText(Centroid(g))`,area(`test`.`gis_polygon`.`g`) AS `Area(g)`,astext(exteriorring(`test`.`gis_polygon`.`g`)) AS `AsText(ExteriorRing(g))`,numinteriorrings(`test`.`gis_polygon`.`g`) AS `NumInteriorRings(g)`,astext(interiorringn(`test`.`gis_polygon`.`g`,1)) AS `AsText(InteriorRingN(g, 1))` from `test`.`gis_polygon`
|
||||
SELECT fid, IsClosed(g) FROM gis_multi_line ORDER by fid;
|
||||
fid IsClosed(g)
|
||||
114 0
|
||||
115 0
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.588527753042 17.426536064114)
|
||||
118 POINT(55.588527753042 17.426536064114)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
|
||||
fid Area(g)
|
||||
117 1684.5
|
||||
118 1684.5
|
||||
119 4.5
|
||||
SELECT fid, NumGeometries(g) from gis_multi_point ORDER by fid;
|
||||
fid NumGeometries(g)
|
||||
111 4
|
||||
112 4
|
||||
113 2
|
||||
SELECT fid, NumGeometries(g) from gis_multi_line ORDER by fid;
|
||||
fid NumGeometries(g)
|
||||
114 2
|
||||
115 1
|
||||
116 2
|
||||
SELECT fid, NumGeometries(g) from gis_multi_polygon ORDER by fid;
|
||||
fid NumGeometries(g)
|
||||
117 2
|
||||
118 2
|
||||
119 1
|
||||
SELECT fid, NumGeometries(g) from gis_geometrycollection ORDER by fid;
|
||||
fid NumGeometries(g)
|
||||
120 2
|
||||
121 2
|
||||
explain extended SELECT fid, NumGeometries(g) from gis_multi_point;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,numgeometries(`test`.`gis_multi_point`.`g`) AS `NumGeometries(g)` from `test`.`gis_multi_point`
|
||||
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point ORDER by fid;
|
||||
fid AsText(GeometryN(g, 2))
|
||||
111 POINT(10 10)
|
||||
112 POINT(11 11)
|
||||
113 POINT(4 10)
|
||||
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_line ORDER by fid;
|
||||
fid AsText(GeometryN(g, 2))
|
||||
114 LINESTRING(16 0,16 23,16 48)
|
||||
115 NULL
|
||||
116 LINESTRING(2 5,5 8,21 7)
|
||||
SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_polygon ORDER by fid;
|
||||
fid AsText(GeometryN(g, 2))
|
||||
117 POLYGON((59 18,67 18,67 13,59 13,59 18))
|
||||
118 POLYGON((59 18,67 18,67 13,59 13,59 18))
|
||||
119 NULL
|
||||
SELECT fid, AsText(GeometryN(g, 2)) from gis_geometrycollection ORDER by fid;
|
||||
fid AsText(GeometryN(g, 2))
|
||||
120 LINESTRING(0 0,10 10)
|
||||
121 LINESTRING(3 6,7 9)
|
||||
SELECT fid, AsText(GeometryN(g, 1)) from gis_geometrycollection ORDER by fid;
|
||||
fid AsText(GeometryN(g, 1))
|
||||
120 POINT(0 0)
|
||||
121 POINT(44 6)
|
||||
explain extended SELECT fid, AsText(GeometryN(g, 2)) from gis_multi_point;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,astext(geometryn(`test`.`gis_multi_point`.`g`,2)) AS `AsText(GeometryN(g, 2))` from `test`.`gis_multi_point`
|
||||
SELECT g1.fid as first, g2.fid as second,
|
||||
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
|
||||
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||
first second w c o e d t i r
|
||||
120 120 1 1 0 1 0 0 1 0
|
||||
120 121 0 0 0 0 0 0 1 0
|
||||
121 120 0 0 1 0 0 0 1 0
|
||||
121 121 1 1 0 1 0 0 1 0
|
||||
explain extended SELECT g1.fid as first, g2.fid as second,
|
||||
Within(g1.g, g2.g) as w, Contains(g1.g, g2.g) as c, Overlaps(g1.g, g2.g) as o,
|
||||
Equals(g1.g, g2.g) as e, Disjoint(g1.g, g2.g) as d, Touches(g1.g, g2.g) as t,
|
||||
Intersects(g1.g, g2.g) as i, Crosses(g1.g, g2.g) as r
|
||||
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
|
||||
1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
||||
DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
||||
CREATE TABLE t1 (
|
||||
a INTEGER PRIMARY KEY AUTO_INCREMENT,
|
||||
gp point,
|
||||
ln linestring,
|
||||
pg polygon,
|
||||
mp multipoint,
|
||||
mln multilinestring,
|
||||
mpg multipolygon,
|
||||
gc geometrycollection,
|
||||
gm geometry
|
||||
);
|
||||
SHOW FIELDS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO PRI NULL auto_increment
|
||||
gp point YES NULL
|
||||
ln linestring YES NULL
|
||||
pg polygon YES NULL
|
||||
mp multipoint YES NULL
|
||||
mln multilinestring YES NULL
|
||||
mpg multipolygon YES NULL
|
||||
gc geometrycollection YES NULL
|
||||
gm geometry YES NULL
|
||||
ALTER TABLE t1 ADD fid INT;
|
||||
SHOW FIELDS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO PRI NULL auto_increment
|
||||
gp point YES NULL
|
||||
ln linestring YES NULL
|
||||
pg polygon YES NULL
|
||||
mp multipoint YES NULL
|
||||
mln multilinestring YES NULL
|
||||
mpg multipolygon YES NULL
|
||||
gc geometrycollection YES NULL
|
||||
gm geometry YES NULL
|
||||
fid int(11) YES NULL
|
||||
DROP TABLE t1;
|
||||
create table t1 (pk integer primary key auto_increment, a geometry not null);
|
||||
insert into t1 (a) values (GeomFromText('Point(1 2)'));
|
||||
insert into t1 (a) values ('Garbage');
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
insert IGNORE into t1 (a) values ('Garbage');
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
drop table t1;
|
||||
create table t1 (pk integer primary key auto_increment, fl geometry);
|
||||
insert into t1 (fl) values (1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
insert into t1 (fl) values (1.11);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
insert into t1 (fl) values ("qwerty");
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
insert into t1 (fl) values (pointfromtext('point(1,1)'));
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
drop table t1;
|
|
@ -1,6 +1,6 @@
|
|||
drop table if exists t1, t2;
|
||||
reset master;
|
||||
create table t1 (a int) engine=bdb;
|
||||
create table t1 (a int) engine=innodb;
|
||||
create table t2 (a int) engine=innodb;
|
||||
begin;
|
||||
insert t1 values (5);
|
||||
|
@ -10,12 +10,12 @@ insert t2 values (5);
|
|||
commit;
|
||||
show binlog events from 102;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=bdb
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=innodb
|
||||
master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
|
||||
master-bin.000001 # Query 1 # use `test`; BEGIN
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query 1 # use `test`; COMMIT
|
||||
master-bin.000001 # Xid 1 # COMMIT /* xid= */
|
||||
master-bin.000001 # Query 1 # use `test`; BEGIN
|
||||
master-bin.000001 # Table_map 1 # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
|
|
|
@ -12,7 +12,7 @@ master-bin.000001 367 Xid 1 394 COMMIT /* XID */
|
|||
drop table t1;
|
||||
drop table if exists t1, t2;
|
||||
reset master;
|
||||
create table t1 (a int) engine=bdb;
|
||||
create table t1 (a int) engine=innodb;
|
||||
create table t2 (a int) engine=innodb;
|
||||
begin;
|
||||
insert t1 values (5);
|
||||
|
@ -22,11 +22,11 @@ insert t2 values (5);
|
|||
commit;
|
||||
show binlog events from 102;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=bdb
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=innodb
|
||||
master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
|
||||
master-bin.000001 # Query 1 # use `test`; BEGIN
|
||||
master-bin.000001 # Query 1 # use `test`; insert t1 values (5)
|
||||
master-bin.000001 # Query 1 # use `test`; COMMIT
|
||||
master-bin.000001 # Xid 1 # COMMIT /* xid= */
|
||||
master-bin.000001 # Query 1 # use `test`; BEGIN
|
||||
master-bin.000001 # Query 1 # use `test`; insert t2 values (5)
|
||||
master-bin.000001 # Xid 1 # COMMIT /* xid= */
|
||||
|
|
|
@ -103,7 +103,7 @@ Warnings:
|
|||
Warning 1292 Truncated incorrect DOUBLE value: 'a'
|
||||
select 10.0+cast('a' as decimal);
|
||||
10.0+cast('a' as decimal)
|
||||
10.00
|
||||
10.0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: 'a'
|
||||
select 10E+0+'a';
|
||||
|
@ -368,7 +368,9 @@ create table t1(s1 time);
|
|||
insert into t1 values ('11:11:11');
|
||||
select cast(s1 as decimal(7,2)) from t1;
|
||||
cast(s1 as decimal(7,2))
|
||||
111111.00
|
||||
99999.99
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(s1 as decimal(7,2))' at row 1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (v varchar(10), tt tinytext, t text,
|
||||
mt mediumtext, lt longtext);
|
||||
|
@ -376,7 +378,7 @@ INSERT INTO t1 VALUES ('1.01', '2.02', '3.03', '4.04', '5.05');
|
|||
SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
|
||||
CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
|
||||
CAST(v AS DECIMAL) CAST(tt AS DECIMAL) CAST(t AS DECIMAL) CAST(mt AS DECIMAL) CAST(lt AS DECIMAL)
|
||||
1.01 2.02 3.03 4.04 5.05
|
||||
1 2 3 4 5
|
||||
DROP TABLE t1;
|
||||
select cast(NULL as decimal(6)) as t1;
|
||||
t1
|
||||
|
|
|
@ -43,3 +43,11 @@ id str
|
|||
6 aaaaaa
|
||||
7 aaaaaaa
|
||||
drop table t1;
|
||||
set names cp1250;
|
||||
create table t1 (a varchar(15) collate cp1250_czech_cs NOT NULL, primary key(a));
|
||||
insert into t1 values("abcdefghá");
|
||||
insert into t1 values("ááèè");
|
||||
select a from t1 where a like "abcdefghá";
|
||||
a
|
||||
abcdefghá
|
||||
drop table t1;
|
||||
|
|
|
@ -479,7 +479,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
c char(10) character set utf8,
|
||||
unique key a (c(1))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
|
||||
insert into t1 values ('aa');
|
||||
ERROR 23000: Duplicate entry 'aa' for key 'a'
|
||||
|
@ -637,7 +637,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
c char(10) character set utf8 collate utf8_bin,
|
||||
unique key a (c(1))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
|
||||
insert into t1 values ('aa');
|
||||
ERROR 23000: Duplicate entry 'aa' for key 'a'
|
||||
|
@ -707,7 +707,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
str varchar(255) character set utf8 not null,
|
||||
key str (str(2))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
INSERT INTO t1 VALUES ('str');
|
||||
INSERT INTO t1 VALUES ('str2');
|
||||
select * from t1 where str='str';
|
||||
|
@ -796,7 +796,7 @@ insert into t1 values(1,'foo'),(2,'foobar');
|
|||
select * from t1 where b like 'foob%';
|
||||
a b
|
||||
2 foobar
|
||||
alter table t1 engine=bdb;
|
||||
alter table t1 engine=innodb;
|
||||
select * from t1 where b like 'foob%';
|
||||
a b
|
||||
2 foobar
|
||||
|
@ -1066,6 +1066,18 @@ LENGTH(bug)
|
|||
100
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (item varchar(255)) default character set utf8;
|
||||
INSERT INTO t1 VALUES (N'\\');
|
||||
INSERT INTO t1 VALUES (_utf8'\\');
|
||||
INSERT INTO t1 VALUES (N'Cote d\'Ivoire');
|
||||
INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire');
|
||||
SELECT item FROM t1 ORDER BY item;
|
||||
item
|
||||
Cote d'Ivoire
|
||||
Cote d'Ivoire
|
||||
\
|
||||
\
|
||||
DROP TABLE t1;
|
||||
SET NAMES utf8;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
Warnings:
|
||||
|
@ -1281,6 +1293,22 @@ id tid val
|
|||
42749 72 VOLNÝ ADSL
|
||||
44205 72 VOLNÝ ADSL
|
||||
DROP TABLE t1;
|
||||
create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '')
|
||||
default charset=utf8 collate=utf8_unicode_ci;
|
||||
insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65'));
|
||||
explain select distinct a from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary
|
||||
select distinct a from t1;
|
||||
a
|
||||
e
|
||||
explain select a from t1 group by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
|
||||
select a from t1 group by a;
|
||||
a
|
||||
e
|
||||
drop table t1;
|
||||
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
|
||||
SELECT id FROM t1;
|
||||
|
|
|
@ -1788,7 +1788,33 @@ length(a)
|
|||
5000
|
||||
drop table t1;
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
DROP TABLE IF EXISTS federated.test;
|
||||
CREATE TABLE federated.test (
|
||||
`i` int(11) NOT NULL,
|
||||
`j` int(11) NOT NULL,
|
||||
`c` varchar(30) default NULL,
|
||||
PRIMARY KEY (`i`,`j`),
|
||||
UNIQUE KEY `i` (`i`,`c`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
DROP TABLE IF EXISTS federated.test1;
|
||||
DROP TABLE IF EXISTS federated.test2;
|
||||
create table federated.test1 (
|
||||
i int not null,
|
||||
j int not null,
|
||||
c varchar(30),
|
||||
primary key (i,j),
|
||||
unique key (i, c))
|
||||
engine = federated
|
||||
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/test';
|
||||
create table federated.test2 (
|
||||
i int default null,
|
||||
j int not null,
|
||||
c varchar(30),
|
||||
key (i))
|
||||
engine = federated
|
||||
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/test';
|
||||
drop table federated.test1, federated.test2;
|
||||
drop table federated.test;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
|
|
@ -16,7 +16,7 @@ CREATE TABLE federated.t1 (
|
|||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
DEFAULT CHARSET=latin1 ENGINE=InnoDB;
|
||||
DEFAULT CHARSET=latin1 ENGINE=innodb;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
|
|
|
@ -891,6 +891,26 @@ t1 CREATE TABLE `t1` (
|
|||
`from_unixtime(1) + 0` double(23,6) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
|
||||
H
|
||||
120
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H);
|
||||
H
|
||||
120
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H);
|
||||
H
|
||||
05
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H);
|
||||
H
|
||||
5
|
||||
End of 4.1 tests
|
||||
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
|
||||
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
|
||||
|
|
|
@ -574,11 +574,11 @@ INSERT INTO t1 VALUES(GeomFromText('POINT(367894677 368542487)'));
|
|||
INSERT INTO t1 VALUES(GeomFromText('POINT(580848489 219587743)'));
|
||||
INSERT INTO t1 VALUES(GeomFromText('POINT(11247614 782797569)'));
|
||||
drop table t1;
|
||||
create table t1 select POINT(1,3);
|
||||
create table t1 select GeomFromWKB(POINT(1,3));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`POINT(1,3)` longblob NOT NULL
|
||||
`GeomFromWKB(POINT(1,3))` geometry NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
CREATE TABLE `t1` (`object_id` bigint(20) unsigned NOT NULL default '0', `geo`
|
||||
|
@ -706,3 +706,8 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is
|
|||
def asbinary(g) 252 8192 0 Y 128 0 63
|
||||
asbinary(g)
|
||||
drop table t1;
|
||||
create table t1 select GeomFromText('point(1 1)');
|
||||
desc t1;
|
||||
Field Type Null Key Default Extra
|
||||
GeomFromText('point(1 1)') geometry NO
|
||||
drop table t1;
|
||||
|
|
|
@ -528,7 +528,7 @@ Db char(64) NO PRI
|
|||
User char(16) NO PRI
|
||||
Table_name char(64) NO PRI
|
||||
Grantor char(77) NO MUL
|
||||
Timestamp timestamp YES CURRENT_TIMESTAMP
|
||||
Timestamp timestamp NO CURRENT_TIMESTAMP
|
||||
Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') NO
|
||||
Column_priv set('Select','Insert','Update','References') NO
|
||||
use test;
|
||||
|
@ -870,3 +870,81 @@ insert into mysql.user select * from t2;
|
|||
flush privileges;
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
CREATE DATABASE mysqltest3;
|
||||
use mysqltest3;
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE DATABASE mysqltest2;
|
||||
use mysqltest2;
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_gy AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_ny AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
|
||||
GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE VIEW mysqltest2.v_yn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
|
||||
SHOW CREATE TABLE mysqltest2.v_yn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
|
||||
SHOW CREATE TABLE mysqltest2.v_ny;
|
||||
View Create View
|
||||
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
|
||||
SHOW CREATE VIEW mysqltest2.v_ny;
|
||||
View Create View
|
||||
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
|
||||
SHOW CREATE TABLE mysqltest3.t_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
|
||||
SHOW CREATE VIEW mysqltest3.t_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
|
||||
SHOW CREATE VIEW mysqltest3.v_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest3.v_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||
View Create View
|
||||
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
|
||||
SHOW CREATE TABLE mysqltest2.v_yy;
|
||||
View Create View
|
||||
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
View Create View
|
||||
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
View Create View
|
||||
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
DROP VIEW mysqltest2.v_nn;
|
||||
DROP VIEW mysqltest2.v_yn;
|
||||
DROP VIEW mysqltest2.v_ny;
|
||||
DROP VIEW mysqltest2.v_yy;
|
||||
DROP TABLE mysqltest2.t_nn;
|
||||
DROP DATABASE mysqltest2;
|
||||
DROP VIEW mysqltest3.v_nn;
|
||||
DROP TABLE mysqltest3.t_nn;
|
||||
DROP DATABASE mysqltest3;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||
DROP USER 'mysqltest_1'@'localhost';
|
||||
create user mysqltest1_thisisreallytoolong;
|
||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest1_thisisreallytoolong'@'%'
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
Variable_name Value
|
||||
have_bdb YES
|
|
@ -69,3 +69,6 @@ START INSTANCE mysqld1,mysqld2,mysqld3;
|
|||
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
|
||||
STOP INSTANCE mysqld1,mysqld2,mysqld3;
|
||||
ERROR 42000: You have an error in your command syntax. Check the manual that corresponds to your MySQL Instance Manager version for the right syntax to use
|
||||
STOP INSTANCE mysqld2;
|
||||
ERROR HY000: Cannot stop instance. Perhaps the instance is not started, or was started manually, so IM cannot find the pidfile.
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -43,7 +43,6 @@ character-sets-dir option_value
|
|||
basedir option_value
|
||||
skip-stack-trace option_value
|
||||
skip-innodb option_value
|
||||
skip-bdb option_value
|
||||
skip-ndbcluster option_value
|
||||
nonguarded option_value
|
||||
log-output option_value
|
||||
|
@ -64,7 +63,6 @@ character-sets-dir option_value
|
|||
basedir option_value
|
||||
skip-stack-trace option_value
|
||||
skip-innodb option_value
|
||||
skip-bdb option_value
|
||||
skip-ndbcluster option_value
|
||||
nonguarded option_value
|
||||
log-output option_value
|
||||
|
|
|
@ -22,7 +22,6 @@ basedir VALUE
|
|||
server_id VALUE
|
||||
skip-stack-trace VALUE
|
||||
skip-innodb VALUE
|
||||
skip-bdb VALUE
|
||||
skip-ndbcluster VALUE
|
||||
log-output VALUE
|
||||
SHOW INSTANCE OPTIONS mysqld2;
|
||||
|
@ -41,7 +40,6 @@ basedir VALUE
|
|||
server_id VALUE
|
||||
skip-stack-trace VALUE
|
||||
skip-innodb VALUE
|
||||
skip-bdb VALUE
|
||||
skip-ndbcluster VALUE
|
||||
nonguarded VALUE
|
||||
log-output VALUE
|
||||
|
|
|
@ -1,136 +0,0 @@
|
|||
drop table if exists t1;
|
||||
create table t1 (
|
||||
pk int primary key,
|
||||
key1 int,
|
||||
key2 int,
|
||||
filler char(200),
|
||||
filler2 char(200),
|
||||
index(key1),
|
||||
index(key2)
|
||||
) engine=bdb;
|
||||
select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
|
||||
pk key1 key2 filler filler2
|
||||
2 2 2 filler-data filler-data-2
|
||||
3 3 3 filler-data filler-data-2
|
||||
9 9 9 filler-data filler-data-2
|
||||
10 10 10 filler-data filler-data-2
|
||||
4 4 4 filler-data filler-data-2
|
||||
5 5 5 filler-data filler-data-2
|
||||
6 6 6 filler-data filler-data-2
|
||||
7 7 7 filler-data filler-data-2
|
||||
8 8 8 filler-data filler-data-2
|
||||
set @maxv=1000;
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or key1=18 or key1=60;
|
||||
pk key1 key2 filler filler2
|
||||
18 18 18 filler-data filler-data-2
|
||||
60 60 60 filler-data filler-data-2
|
||||
1 1 1 filler-data filler-data-2
|
||||
2 2 2 filler-data filler-data-2
|
||||
3 3 3 filler-data filler-data-2
|
||||
4 4 4 filler-data filler-data-2
|
||||
11 11 11 filler-data filler-data-2
|
||||
12 12 12 filler-data filler-data-2
|
||||
13 13 13 filler-data filler-data-2
|
||||
14 14 14 filler-data filler-data-2
|
||||
50 50 50 filler-data filler-data-2
|
||||
51 51 51 filler-data filler-data-2
|
||||
52 52 52 filler-data filler-data-2
|
||||
53 53 53 filler-data filler-data-2
|
||||
54 54 54 filler-data filler-data-2
|
||||
991 991 991 filler-data filler-data-2
|
||||
992 992 992 filler-data filler-data-2
|
||||
993 993 993 filler-data filler-data-2
|
||||
994 994 994 filler-data filler-data-2
|
||||
995 995 995 filler-data filler-data-2
|
||||
996 996 996 filler-data filler-data-2
|
||||
997 997 997 filler-data filler-data-2
|
||||
998 998 998 filler-data filler-data-2
|
||||
999 999 999 filler-data filler-data-2
|
||||
1000 1000 1000 filler-data filler-data-2
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or key1 < 3 or key1 > @maxv-11;
|
||||
pk key1 key2 filler filler2
|
||||
990 990 990 filler-data filler-data-2
|
||||
1 1 1 filler-data filler-data-2
|
||||
2 2 2 filler-data filler-data-2
|
||||
3 3 3 filler-data filler-data-2
|
||||
4 4 4 filler-data filler-data-2
|
||||
11 11 11 filler-data filler-data-2
|
||||
12 12 12 filler-data filler-data-2
|
||||
13 13 13 filler-data filler-data-2
|
||||
14 14 14 filler-data filler-data-2
|
||||
50 50 50 filler-data filler-data-2
|
||||
51 51 51 filler-data filler-data-2
|
||||
52 52 52 filler-data filler-data-2
|
||||
53 53 53 filler-data filler-data-2
|
||||
54 54 54 filler-data filler-data-2
|
||||
991 991 991 filler-data filler-data-2
|
||||
992 992 992 filler-data filler-data-2
|
||||
993 993 993 filler-data filler-data-2
|
||||
994 994 994 filler-data filler-data-2
|
||||
995 995 995 filler-data filler-data-2
|
||||
996 996 996 filler-data filler-data-2
|
||||
997 997 997 filler-data filler-data-2
|
||||
998 998 998 filler-data filler-data-2
|
||||
999 999 999 filler-data filler-data-2
|
||||
1000 1000 1000 filler-data filler-data-2
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or
|
||||
(key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
|
||||
pk key1 key2 filler filler2
|
||||
1 1 1 filler-data filler-data-2
|
||||
2 2 2 filler-data filler-data-2
|
||||
3 3 3 filler-data filler-data-2
|
||||
4 4 4 filler-data filler-data-2
|
||||
11 11 11 filler-data filler-data-2
|
||||
12 12 12 filler-data filler-data-2
|
||||
13 13 13 filler-data filler-data-2
|
||||
14 14 14 filler-data filler-data-2
|
||||
50 50 50 filler-data filler-data-2
|
||||
51 51 51 filler-data filler-data-2
|
||||
52 52 52 filler-data filler-data-2
|
||||
53 53 53 filler-data filler-data-2
|
||||
54 54 54 filler-data filler-data-2
|
||||
991 991 991 filler-data filler-data-2
|
||||
992 992 992 filler-data filler-data-2
|
||||
993 993 993 filler-data filler-data-2
|
||||
994 994 994 filler-data filler-data-2
|
||||
995 995 995 filler-data filler-data-2
|
||||
996 996 996 filler-data filler-data-2
|
||||
997 997 997 filler-data filler-data-2
|
||||
998 998 998 filler-data filler-data-2
|
||||
999 999 999 filler-data filler-data-2
|
||||
1000 1000 1000 filler-data filler-data-2
|
||||
select * from t1 where
|
||||
(pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
|
||||
or
|
||||
(key1 < 5) or (key1 > @maxv-10);
|
||||
pk key1 key2 filler filler2
|
||||
1 1 1 filler-data filler-data-2
|
||||
2 2 2 filler-data filler-data-2
|
||||
3 3 3 filler-data filler-data-2
|
||||
4 4 4 filler-data filler-data-2
|
||||
991 991 991 filler-data filler-data-2
|
||||
992 992 992 filler-data filler-data-2
|
||||
993 993 993 filler-data filler-data-2
|
||||
994 994 994 filler-data filler-data-2
|
||||
995 995 995 filler-data filler-data-2
|
||||
996 996 996 filler-data filler-data-2
|
||||
997 997 997 filler-data filler-data-2
|
||||
998 998 998 filler-data filler-data-2
|
||||
999 999 999 filler-data filler-data-2
|
||||
1000 1000 1000 filler-data filler-data-2
|
||||
11 11 11 filler-data filler-data-2
|
||||
12 12 12 filler-data filler-data-2
|
||||
13 13 13 filler-data filler-data-2
|
||||
14 14 14 filler-data filler-data-2
|
||||
50 50 50 filler-data filler-data-2
|
||||
51 51 51 filler-data filler-data-2
|
||||
52 52 52 filler-data filler-data-2
|
||||
53 53 53 filler-data filler-data-2
|
||||
54 54 54 filler-data filler-data-2
|
||||
drop table t1;
|
|
@ -104,3 +104,50 @@ v2 VIEW View 'test.v2' references invalid table(s) or column(s) or function(s) o
|
|||
drop function f1;
|
||||
drop function f2;
|
||||
drop view v1, v2;
|
||||
create database testdb_1;
|
||||
create user testdb_1@localhost;
|
||||
grant all on testdb_1.* to testdb_1@localhost with grant option;
|
||||
create user testdb_2@localhost;
|
||||
grant all on test.* to testdb_2@localhost with grant option;
|
||||
use testdb_1;
|
||||
create table t1 (f1 char(4));
|
||||
create view v1 as select f1 from t1;
|
||||
grant insert on v1 to testdb_2@localhost;
|
||||
create table t3 (f1 char(4), f2 char(4));
|
||||
create view v3 as select f1,f2 from t3;
|
||||
grant insert(f1), insert(f2) on v3 to testdb_2@localhost;
|
||||
create view v2 as select f1 from testdb_1.v1;
|
||||
create view v4 as select f1,f2 from testdb_1.v3;
|
||||
revoke insert(f1) on v3 from testdb_2@localhost;
|
||||
show create view v4;
|
||||
ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
|
||||
show fields from v4;
|
||||
ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
|
||||
show fields from v2;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(4) YES NULL
|
||||
show fields from testdb_1.v1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(4) YES NULL
|
||||
show create view v2;
|
||||
View Create View
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
|
||||
show create view testdb_1.v1;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'testdb_2'@'localhost' for table 'v1'
|
||||
select table_name from information_schema.columns a
|
||||
where a.table_name = 'v2';
|
||||
table_name
|
||||
v2
|
||||
select view_definition from information_schema.views a
|
||||
where a.table_name = 'v2';
|
||||
view_definition
|
||||
/* ALGORITHM=UNDEFINED */ select `v1`.`f1` AS `f1` from `testdb_1`.`v1`
|
||||
select view_definition from information_schema.views a
|
||||
where a.table_name = 'testdb_1.v1';
|
||||
view_definition
|
||||
select * from v2;
|
||||
ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
drop view testdb_1.v1,v2, testdb_1.v3, v4;
|
||||
drop database testdb_1;
|
||||
drop user testdb_1@localhost;
|
||||
drop user testdb_2@localhost;
|
||||
|
|
|
@ -29,13 +29,13 @@ on (mysql.general_log.command_type = join_test.command_type)
|
|||
drop table join_test;
|
||||
flush logs;
|
||||
lock tables mysql.general_log WRITE;
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible.
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible
|
||||
lock tables mysql.slow_log WRITE;
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible.
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible
|
||||
lock tables mysql.general_log READ;
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead.
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead
|
||||
lock tables mysql.slow_log READ;
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead.
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead
|
||||
lock tables mysql.slow_log READ LOCAL, mysql.general_log READ LOCAL;
|
||||
unlock tables;
|
||||
lock tables mysql.general_log READ LOCAL;
|
||||
|
@ -161,13 +161,13 @@ TIMESTAMP USER_HOST THREAD_ID 1 Query set global slow_query_log='ON'
|
|||
TIMESTAMP USER_HOST THREAD_ID 1 Query select * from mysql.general_log
|
||||
flush logs;
|
||||
lock tables mysql.general_log WRITE;
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible.
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible
|
||||
lock tables mysql.slow_log WRITE;
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible.
|
||||
ERROR HY000: You can't write-lock a log table. Only read access is possible
|
||||
lock tables mysql.general_log READ;
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead.
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead
|
||||
lock tables mysql.slow_log READ;
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead.
|
||||
ERROR HY000: You can't use usual read lock with log tables. Try READ LOCAL instead
|
||||
lock tables mysql.slow_log READ LOCAL, mysql.general_log READ LOCAL;
|
||||
unlock tables;
|
||||
set global general_log='OFF';
|
||||
|
|
|
@ -492,7 +492,7 @@ create table t2 like t1;
|
|||
insert into t2 select * from t1;
|
||||
delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
|
||||
drop table t1,t2;
|
||||
create table t1 ( c char(8) not null ) engine=bdb;
|
||||
create table t1 ( c char(8) not null ) engine=innodb;
|
||||
insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
|
||||
insert into t1 values ('A'),('B'),('C'),('D'),('E'),('F');
|
||||
alter table t1 add b char(8) not null;
|
||||
|
|
|
@ -114,4 +114,12 @@ a int(11) YES NULL
|
|||
b varchar(255) YES NULL
|
||||
c int(11) YES NULL
|
||||
drop table t1;
|
||||
1
|
||||
1
|
||||
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||||
ERROR at line 1: USE must be followed by a database name
|
||||
\
|
||||
\\
|
||||
';
|
||||
';
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
1
|
||||
1
|
||||
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||||
ERROR at line 1: USE must be followed by a database name
|
||||
? (\?) Synonym for `help'.
|
||||
clear (\c) Clear command.
|
||||
connect (\r) Reconnect to the server. Optional arguments are db and host.
|
||||
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
|
||||
edit (\e) Edit command with $EDITOR.
|
||||
ego (\G) Send command to mysql server, display result vertically.
|
||||
exit (\q) Exit mysql. Same as quit.
|
||||
go (\g) Send command to mysql server.
|
||||
help (\h) Display this help.
|
||||
nopager (\n) Disable pager, print to stdout.
|
||||
notee (\t) Don't write into outfile.
|
||||
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
|
||||
print (\p) Print current command.
|
||||
prompt (\R) Change your mysql prompt.
|
||||
quit (\q) Quit mysql.
|
||||
rehash (\#) Rebuild completion hash.
|
||||
source (\.) Execute an SQL script file. Takes a file name as an argument.
|
||||
status (\s) Get status information from the server.
|
||||
system (\!) Execute a system shell command.
|
||||
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
|
||||
use (\u) Use another database. Takes database name as argument.
|
||||
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
|
||||
warnings (\W) Show warnings after every statement.
|
||||
nowarning (\w) Don't show warnings after every statement.
|
||||
? (\?) Synonym for `help'.
|
||||
clear (\c) Clear command.
|
||||
connect (\r) Reconnect to the server. Optional arguments are db and host.
|
||||
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
|
||||
edit (\e) Edit command with $EDITOR.
|
||||
ego (\G) Send command to mysql server, display result vertically.
|
||||
exit (\q) Exit mysql. Same as quit.
|
||||
go (\g) Send command to mysql server.
|
||||
help (\h) Display this help.
|
||||
nopager (\n) Disable pager, print to stdout.
|
||||
notee (\t) Don't write into outfile.
|
||||
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
|
||||
print (\p) Print current command.
|
||||
prompt (\R) Change your mysql prompt.
|
||||
quit (\q) Quit mysql.
|
||||
rehash (\#) Rebuild completion hash.
|
||||
source (\.) Execute an SQL script file. Takes a file name as an argument.
|
||||
status (\s) Get status information from the server.
|
||||
system (\!) Execute a system shell command.
|
||||
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
|
||||
use (\u) Use another database. Takes database name as argument.
|
||||
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
|
||||
warnings (\W) Show warnings after every statement.
|
||||
nowarning (\w) Don't show warnings after every statement.
|
||||
\
|
||||
\\
|
||||
';
|
||||
';
|
File diff suppressed because it is too large
Load diff
|
@ -1,186 +0,0 @@
|
|||
drop table if exists t1, t2, t3,t4;
|
||||
create table t1 (
|
||||
pk1 int not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values (-5, 1, 1),
|
||||
(-100, 1, 1),
|
||||
(3, 1, 1),
|
||||
(0, 1, 1),
|
||||
(10, 1, 1);
|
||||
explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 5 Using sort_union(key1,key2); Using where
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 key1 key2
|
||||
-100 1 1
|
||||
-5 1 1
|
||||
0 1 1
|
||||
3 1 1
|
||||
10 1 1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk1 int unsigned not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values (0, 1, 1),
|
||||
(0xFFFFFFFF, 1, 1),
|
||||
(0xFFFFFFFE, 1, 1),
|
||||
(1, 1, 1),
|
||||
(2, 1, 1);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 key1 key2
|
||||
0 1 1
|
||||
1 1 1
|
||||
2 1 1
|
||||
4294967294 1 1
|
||||
4294967295 1 1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk1 char(4) not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb collate latin2_general_ci;
|
||||
insert into t1 values ('a1', 1, 1),
|
||||
('b2', 1, 1),
|
||||
('A3', 1, 1),
|
||||
('B4', 1, 1);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 key1 key2
|
||||
a1 1 1
|
||||
A3 1 1
|
||||
b2 1 1
|
||||
B4 1 1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk1 int not NULL,
|
||||
pk2 char(4) not NULL collate latin1_german1_ci,
|
||||
pk3 char(4) not NULL collate latin1_bin,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1,pk2,pk3),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values
|
||||
(1, 'u', 'u', 1, 1),
|
||||
(1, 'u', char(0xEC), 1, 1),
|
||||
(1, 'u', 'x', 1, 1);
|
||||
insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
|
||||
insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
|
||||
insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 key1 key2
|
||||
1 ì u 1 1
|
||||
1 ì x 1 1
|
||||
1 ì ì 1 1
|
||||
1 u u 1 1
|
||||
1 u x 1 1
|
||||
1 u ì 1 1
|
||||
1 x u 1 1
|
||||
1 x x 1 1
|
||||
1 x ì 1 1
|
||||
2 ì u 1 1
|
||||
2 ì x 1 1
|
||||
2 ì ì 1 1
|
||||
2 u u 1 1
|
||||
2 u x 1 1
|
||||
2 u ì 1 1
|
||||
2 x u 1 1
|
||||
2 x x 1 1
|
||||
2 x ì 1 1
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 pk2 pk3 key1 key2
|
||||
1 ì u 1 1
|
||||
1 ì x 1 1
|
||||
1 ì ì 1 1
|
||||
1 u u 1 1
|
||||
1 u x 1 1
|
||||
1 u ì 1 1
|
||||
1 x u 1 1
|
||||
1 x x 1 1
|
||||
1 x ì 1 1
|
||||
2 ì u 1 1
|
||||
2 ì x 1 1
|
||||
2 ì ì 1 1
|
||||
2 u u 1 1
|
||||
2 u x 1 1
|
||||
2 u ì 1 1
|
||||
2 x u 1 1
|
||||
2 x x 1 1
|
||||
2 x ì 1 1
|
||||
alter table t1 drop primary key;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 key1 key2
|
||||
1 ì u 1 1
|
||||
1 ì x 1 1
|
||||
1 ì ì 1 1
|
||||
1 u u 1 1
|
||||
1 u x 1 1
|
||||
1 u ì 1 1
|
||||
1 x u 1 1
|
||||
1 x x 1 1
|
||||
1 x ì 1 1
|
||||
2 ì u 1 1
|
||||
2 ì x 1 1
|
||||
2 ì ì 1 1
|
||||
2 u u 1 1
|
||||
2 u x 1 1
|
||||
2 u ì 1 1
|
||||
2 x u 1 1
|
||||
2 x x 1 1
|
||||
2 x ì 1 1
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 pk2 pk3 key1 key2
|
||||
1 ì u 1 1
|
||||
1 ì x 1 1
|
||||
1 ì ì 1 1
|
||||
1 u u 1 1
|
||||
1 u x 1 1
|
||||
1 u ì 1 1
|
||||
1 x u 1 1
|
||||
1 x x 1 1
|
||||
1 x ì 1 1
|
||||
2 ì u 1 1
|
||||
2 ì x 1 1
|
||||
2 ì ì 1 1
|
||||
2 u u 1 1
|
||||
2 u x 1 1
|
||||
2 u ì 1 1
|
||||
2 x u 1 1
|
||||
2 x x 1 1
|
||||
2 x ì 1 1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk1 varchar(8) NOT NULL default '',
|
||||
pk2 varchar(4) NOT NULL default '',
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
primary key(pk1, pk2),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values ('','empt',2,2),
|
||||
('a','a--a',2,2),
|
||||
('bb','b--b',2,2),
|
||||
('ccc','c--c',2,2),
|
||||
('dddd','d--d',2,2);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
pk1 pk2 key1 key2
|
||||
empt 2 2
|
||||
a a--a 2 2
|
||||
bb b--b 2 2
|
||||
ccc c--c 2 2
|
||||
dddd d--d 2 2
|
||||
drop table t1;
|
|
@ -692,7 +692,7 @@ drop database mysqltest;
|
|||
show full plugin;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1541 The syntax 'SHOW PLUGIN' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW PLUGINS' instead.
|
||||
Warning 1541 The syntax 'SHOW PLUGIN' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW PLUGINS' instead
|
||||
show plugin;
|
||||
show plugins;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -535,7 +535,7 @@ use db_bug7787|
|
|||
CREATE PROCEDURE p1()
|
||||
SHOW INNODB STATUS; |
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'SHOW INNODB STATUS' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW ENGINE INNODB STATUS' instead.
|
||||
Warning 1541 The syntax 'SHOW INNODB STATUS' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW ENGINE INNODB STATUS' instead
|
||||
GRANT EXECUTE ON PROCEDURE p1 TO user_bug7787@localhost|
|
||||
DROP DATABASE db_bug7787|
|
||||
drop user user_bug7787@localhost|
|
||||
|
|
|
@ -915,9 +915,13 @@ drop table t1;
|
|||
select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15));
|
||||
cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15))
|
||||
0.000000000100000
|
||||
select ln(14000) c1, convert(ln(14000),decimal(2,3)) c2, cast(ln(14000) as decimal(2,3)) c3;
|
||||
select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3;
|
||||
c1 c2 c3
|
||||
9.5468126085974 9.547 9.547
|
||||
select convert(ln(14000),decimal(2,3)) c1;
|
||||
ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '').
|
||||
select cast(ln(14000) as decimal(2,3)) c1;
|
||||
ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '').
|
||||
create table t1 (sl decimal(70,30));
|
||||
ERROR 42000: Too big precision 70 specified for column 'sl'. Maximum is 65.
|
||||
create table t1 (sl decimal(32,31));
|
||||
|
@ -1418,3 +1422,30 @@ i2 count(distinct j)
|
|||
1.0 2
|
||||
2.0 2
|
||||
drop table t1;
|
||||
select cast(143.481 as decimal(4,1));
|
||||
cast(143.481 as decimal(4,1))
|
||||
143.5
|
||||
select cast(143.481 as decimal(4,0));
|
||||
cast(143.481 as decimal(4,0))
|
||||
143
|
||||
select cast(143.481 as decimal(2,1));
|
||||
cast(143.481 as decimal(2,1))
|
||||
9.9
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(143.481 as decimal(2,1))' at row 1
|
||||
select cast(-3.4 as decimal(2,1));
|
||||
cast(-3.4 as decimal(2,1))
|
||||
-3.4
|
||||
select cast(99.6 as decimal(2,0));
|
||||
cast(99.6 as decimal(2,0))
|
||||
99
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(99.6 as decimal(2,0))' at row 1
|
||||
select cast(-13.4 as decimal(2,1));
|
||||
cast(-13.4 as decimal(2,1))
|
||||
-9.9
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(-13.4 as decimal(2,1))' at row 1
|
||||
select cast(98.6 as decimal(2,0));
|
||||
cast(98.6 as decimal(2,0))
|
||||
99
|
||||
|
|
|
@ -57,7 +57,7 @@ ushort smallint(5) unsigned zerofill NULL NO MUL 00000 #
|
|||
umedium mediumint(8) unsigned NULL NO MUL 0 #
|
||||
ulong int(11) unsigned NULL NO MUL 0 #
|
||||
ulonglong bigint(13) unsigned NULL NO MUL 0 #
|
||||
time_stamp timestamp NULL YES CURRENT_TIMESTAMP #
|
||||
time_stamp timestamp NULL NO CURRENT_TIMESTAMP #
|
||||
date_field date NULL YES NULL #
|
||||
time_field time NULL YES NULL #
|
||||
date_time datetime NULL YES NULL #
|
||||
|
@ -229,7 +229,7 @@ ushort smallint(5) unsigned zerofill NULL NO 00000 #
|
|||
umedium mediumint(8) unsigned NULL NO MUL 0 #
|
||||
ulong int(11) unsigned NULL NO MUL 0 #
|
||||
ulonglong bigint(13) unsigned NULL NO MUL 0 #
|
||||
time_stamp timestamp NULL YES CURRENT_TIMESTAMP #
|
||||
time_stamp timestamp NULL NO CURRENT_TIMESTAMP #
|
||||
date_field char(10) latin1_swedish_ci YES NULL #
|
||||
time_field time NULL YES NULL #
|
||||
date_time datetime NULL YES NULL #
|
||||
|
@ -255,7 +255,7 @@ ushort smallint(5) unsigned zerofill NULL NO 00000 #
|
|||
umedium mediumint(8) unsigned NULL NO 0 #
|
||||
ulong int(11) unsigned NULL NO 0 #
|
||||
ulonglong bigint(13) unsigned NULL NO 0 #
|
||||
time_stamp timestamp NULL YES 0000-00-00 00:00:00 #
|
||||
time_stamp timestamp NULL NO 0000-00-00 00:00:00 #
|
||||
date_field char(10) latin1_swedish_ci YES NULL #
|
||||
time_field time NULL YES NULL #
|
||||
date_time datetime NULL YES NULL #
|
||||
|
|
|
@ -101,13 +101,13 @@ create table t1 (t2 timestamp(2), t4 timestamp(4), t6 timestamp(6),
|
|||
t8 timestamp(8), t10 timestamp(10), t12 timestamp(12),
|
||||
t14 timestamp(14));
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'TIMESTAMP(2)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(4)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(6)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(8)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(10)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(12)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(14)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead.
|
||||
Warning 1541 The syntax 'TIMESTAMP(2)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(4)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(6)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(8)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(10)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(12)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
Warning 1541 The syntax 'TIMESTAMP(14)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||
insert t1 values (0,0,0,0,0,0,0),
|
||||
("1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
||||
"1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
||||
|
@ -201,9 +201,9 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES 2003-01-01 00:00:00
|
||||
t1 timestamp NO 2003-01-01 00:00:00
|
||||
t2 datetime YES NULL
|
||||
t3 timestamp YES 0000-00-00 00:00:00
|
||||
t3 timestamp NO 0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
create table t1 (t1 timestamp default now(), t2 datetime, t3 timestamp);
|
||||
SET TIMESTAMP=1000000002;
|
||||
|
@ -225,9 +225,9 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES CURRENT_TIMESTAMP
|
||||
t1 timestamp NO CURRENT_TIMESTAMP
|
||||
t2 datetime YES NULL
|
||||
t3 timestamp YES 0000-00-00 00:00:00
|
||||
t3 timestamp NO 0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
create table t1 (t1 timestamp default '2003-01-01 00:00:00' on update now(), t2 datetime);
|
||||
SET TIMESTAMP=1000000004;
|
||||
|
@ -251,7 +251,7 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES 2003-01-01 00:00:00
|
||||
t1 timestamp NO 2003-01-01 00:00:00
|
||||
t2 datetime YES NULL
|
||||
drop table t1;
|
||||
create table t1 (t1 timestamp default now() on update now(), t2 datetime);
|
||||
|
@ -276,7 +276,7 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES CURRENT_TIMESTAMP
|
||||
t1 timestamp NO CURRENT_TIMESTAMP
|
||||
t2 datetime YES NULL
|
||||
drop table t1;
|
||||
create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
|
||||
|
@ -302,9 +302,9 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES CURRENT_TIMESTAMP
|
||||
t1 timestamp NO CURRENT_TIMESTAMP
|
||||
t2 datetime YES NULL
|
||||
t3 timestamp YES 0000-00-00 00:00:00
|
||||
t3 timestamp NO 0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
|
||||
SET TIMESTAMP=1000000009;
|
||||
|
@ -328,7 +328,7 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
t1 timestamp YES CURRENT_TIMESTAMP
|
||||
t1 timestamp NO CURRENT_TIMESTAMP
|
||||
t2 datetime YES NULL
|
||||
truncate table t1;
|
||||
insert into t1 values ('2004-04-01 00:00:00', '2004-04-01 00:00:00');
|
||||
|
@ -493,3 +493,18 @@ a b c
|
|||
6 NULL 2006-06-06 06:06:06
|
||||
drop table t1;
|
||||
set time_zone= @@global.time_zone;
|
||||
CREATE TABLE t1 (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`username` varchar(80) NOT NULL default '',
|
||||
`posted_on` timestamp NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
|
||||
show fields from t1;
|
||||
Field Type Null Key Default Extra
|
||||
id int(11) NO PRI NULL auto_increment
|
||||
username varchar(80) NO
|
||||
posted_on timestamp NO 0000-00-00 00:00:00
|
||||
select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';
|
||||
is_nullable
|
||||
NO
|
||||
drop table t1;
|
||||
|
|
|
@ -1787,7 +1787,7 @@ drop table t1;
|
|||
create view v1 as select cast(1 as decimal);
|
||||
select * from v1;
|
||||
cast(1 as decimal)
|
||||
1.00
|
||||
1
|
||||
drop view v1;
|
||||
create table t1(f1 int);
|
||||
create table t2(f2 int);
|
||||
|
|
|
@ -175,7 +175,7 @@ Warning 1266 Using storage engine MyISAM for table 't1'
|
|||
drop table t1;
|
||||
set table_type=MYISAM;
|
||||
Warnings:
|
||||
Warning 1541 The syntax 'table_type' is deprecated and will be removed in MySQL 5.2. Please use 'storage_engine' instead.
|
||||
Warning 1541 The syntax 'table_type' is deprecated and will be removed in MySQL 5.2. Please use 'storage_engine' instead
|
||||
create table t1 (a int);
|
||||
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
||||
update t1 set a='abc';
|
||||
|
|
|
@ -704,3 +704,9 @@ a
|
|||
select extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/ns:element/@xmlns:ns');
|
||||
extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/ns:element/@xmlns:ns')
|
||||
myns
|
||||
select extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/foo.bar');
|
||||
extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/foo.bar')
|
||||
Data
|
||||
select extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/something');
|
||||
extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/something')
|
||||
Otherdata
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# Test of problem when shutting down mysqld at once after ALTER TABLE
|
||||
#
|
||||
-- source include/have_bdb.inc
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(objid BIGINT not null, tablename varchar(64), oid BIGINT not null, test BIGINT, PRIMARY KEY (objid), UNIQUE(tablename)) engine=BDB;
|
||||
insert into t1 values(1, 't1',4,9);
|
||||
insert into t1 values(2, 'metatable',1,9);
|
||||
insert into t1 values(3, 'metaindex',1,9 );
|
||||
select * from t1;
|
||||
alter table t1 drop column test;
|
||||
|
||||
# Now we do a reboot and continue with the next test
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,2 +0,0 @@
|
|||
--skip-external-locking
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#
|
||||
# Note that this test uses tables from the previous test
|
||||
# This is to test that the table t1 survives a reboot of MySQL
|
||||
# The options in the -master.opt file are just there to force the reboot
|
||||
#
|
||||
-- source include/have_bdb.inc
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,51 +0,0 @@
|
|||
-- source include/have_bdb.inc
|
||||
|
||||
# test for bug reported by Mark Steele
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1 (
|
||||
ChargeID int(10) unsigned NOT NULL auto_increment,
|
||||
ServiceID int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ChargeDate date DEFAULT '0000-00-00' NOT NULL,
|
||||
ChargeAmount decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
FedTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
ProvTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
|
||||
ChargeStatus enum('New','Auth','Unauth','Sale','Denied','Refund')
|
||||
DEFAULT 'New' NOT NULL,
|
||||
ChargeAuthorizationMessage text,
|
||||
ChargeComment text,
|
||||
ChargeTimeStamp varchar(20),
|
||||
PRIMARY KEY (ChargeID),
|
||||
KEY ServiceID (ServiceID),
|
||||
KEY ChargeDate (ChargeDate)
|
||||
) engine=BDB;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO t1
|
||||
VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now');
|
||||
COMMIT;
|
||||
|
||||
BEGIN;
|
||||
UPDATE t1 SET ChargeAuthorizationMessage = 'blablabla' WHERE
|
||||
ChargeID = 1;
|
||||
COMMIT;
|
||||
|
||||
INSERT INTO t1
|
||||
VALUES(NULL,1,'2001-03-01',1,1,1,'New',NULL,NULL,'now');
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test for bug #2342 "Running ANALYZE TABLE on bdb table
|
||||
# inside a transaction hangs server thread"
|
||||
|
||||
create table t1 (a int) engine=bdb;
|
||||
|
||||
set autocommit=0;
|
||||
insert into t1 values(1);
|
||||
analyze table t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,59 +0,0 @@
|
|||
# This test doesn't work with the embedded version as this code
|
||||
# assumes that one query is running while we are doing queries on
|
||||
# a second connection.
|
||||
# This would work if mysqltest run would be threaded and handle each
|
||||
# connection in a separate thread.
|
||||
#
|
||||
|
||||
-- source include/not_embedded.inc
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
connection con1;
|
||||
create table t1 (id integer, x integer) engine=BDB;
|
||||
create table t2 (id integer, x integer) engine=BDB;
|
||||
insert into t1 values(0, 0);
|
||||
insert into t2 values(0, 0);
|
||||
set autocommit=0;
|
||||
update t1 set x = 1 where id = 0;
|
||||
|
||||
connection con2;
|
||||
set autocommit=0;
|
||||
update t2 set x = 1 where id = 0;
|
||||
|
||||
# The following query should hang because con1 is locking the page
|
||||
--send
|
||||
select x from t1 where id = 0;
|
||||
|
||||
connection con1;
|
||||
# This should generate a deadlock as we are trying to access a locked row
|
||||
--send
|
||||
select x from t2 where id = 0;
|
||||
|
||||
connection con2;
|
||||
--error 1213
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con2;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,59 +0,0 @@
|
|||
# This test doesn't work with the embedded version as this code
|
||||
# assumes that one query is running while we are doing queries on
|
||||
# a second connection.
|
||||
# This would work if mysqltest run would be threaded and handle each
|
||||
# connection in a separate thread.
|
||||
#
|
||||
|
||||
#-- source include/not_embedded.inc
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
connection con1;
|
||||
create table t1 (id integer, x integer) engine=BDB;
|
||||
create table t2 (id integer, x integer) engine=BDB;
|
||||
insert into t1 values(0, 0);
|
||||
insert into t2 values(0, 0);
|
||||
set autocommit=0;
|
||||
update t1 set x = 1 where id = 0;
|
||||
|
||||
connection con2;
|
||||
set autocommit=0;
|
||||
update t2 set x = 1 where id = 0;
|
||||
|
||||
# The following query should hang because con1 is locking the page
|
||||
--send
|
||||
select x from t1 where id = 0;
|
||||
|
||||
connection con1;
|
||||
# This should generate a deadlock as we are trying to access a locked row
|
||||
--send
|
||||
select x from t2 where id = 0;
|
||||
|
||||
connection con2;
|
||||
--error 1213
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
reap;
|
||||
commit;
|
||||
|
||||
connection con2;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
connection con1;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
commit;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
# End of 4.1 tests
|
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
--set-variable=query_cache_size=1M
|
|
@ -1,53 +0,0 @@
|
|||
-- source include/have_bdb.inc
|
||||
-- source include/have_query_cache.inc
|
||||
|
||||
#
|
||||
# Without auto_commit.
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2, t3;
|
||||
--enable_warnings
|
||||
flush status;
|
||||
set autocommit=0;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
drop table t1;
|
||||
set autocommit=1;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
begin;
|
||||
insert into t1 values (1),(2),(3);
|
||||
select * from t1;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
drop table t1;
|
||||
create table t1 (a int not null) engine=bdb;
|
||||
create table t2 (a int not null) engine=bdb;
|
||||
create table t3 (a int not null) engine=bdb;
|
||||
insert into t1 values (1),(2);
|
||||
insert into t2 values (1),(2);
|
||||
insert into t3 values (1),(2);
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
select * from t3;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_hits";
|
||||
begin;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
select * from t3;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_hits";
|
||||
insert into t1 values (3);
|
||||
insert into t2 values (3);
|
||||
insert into t1 values (4);
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
select * from t3;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_hits";
|
||||
commit;
|
||||
show status like "Qcache_queries_in_cache";
|
||||
drop table if exists t1, t2, t3;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,3 +0,0 @@
|
|||
-- source include/have_bdb.inc
|
||||
SET storage_engine=bdb;
|
||||
--source include/gis_generic.inc
|
|
@ -47,4 +47,14 @@ INSERT INTO t1 VALUES (NULL, 'aaaaaaa');
|
|||
select * from t1 where str like 'aa%';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#19741 segfault with cp1250 charset + like + primary key + 64bit os
|
||||
#
|
||||
set names cp1250;
|
||||
create table t1 (a varchar(15) collate cp1250_czech_cs NOT NULL, primary key(a));
|
||||
insert into t1 values("abcdefghá");
|
||||
insert into t1 values("ááèè");
|
||||
select a from t1 where a like "abcdefghá";
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -360,7 +360,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
c char(10) character set utf8,
|
||||
unique key a (c(1))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
|
||||
--error 1062
|
||||
|
@ -483,7 +483,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
c char(10) character set utf8 collate utf8_bin,
|
||||
unique key a (c(1))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
|
||||
--error 1062
|
||||
|
@ -558,7 +558,7 @@ drop table t1;
|
|||
create table t1 (
|
||||
str varchar(255) character set utf8 not null,
|
||||
key str (str(2))
|
||||
) engine=bdb;
|
||||
) engine=innodb;
|
||||
--enable_warnings
|
||||
INSERT INTO t1 VALUES ('str');
|
||||
INSERT INTO t1 VALUES ('str2');
|
||||
|
@ -644,7 +644,7 @@ create table t1 (
|
|||
insert into t1 values(1,'foo'),(2,'foobar');
|
||||
select * from t1 where b like 'foob%';
|
||||
--disable_warnings
|
||||
alter table t1 engine=bdb;
|
||||
alter table t1 engine=innodb;
|
||||
--enable_warnings
|
||||
select * from t1 where b like 'foob%';
|
||||
drop table t1;
|
||||
|
@ -878,6 +878,17 @@ SELECT LENGTH(bug) FROM t2;
|
|||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#17313: N'xxx' and _utf8'xxx' are not equivalent
|
||||
#
|
||||
CREATE TABLE t1 (item varchar(255)) default character set utf8;
|
||||
INSERT INTO t1 VALUES (N'\\');
|
||||
INSERT INTO t1 VALUES (_utf8'\\');
|
||||
INSERT INTO t1 VALUES (N'Cote d\'Ivoire');
|
||||
INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire');
|
||||
SELECT item FROM t1 ORDER BY item;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#17705: Corruption of compressed index when index length changes between
|
||||
# 254 and 256
|
||||
|
@ -1026,6 +1037,20 @@ ALTER TABLE t1 ADD KEY idx (tid,val(11));
|
|||
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNÝ ADSL';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug 20709: problem with utf8 fields in temporary tables
|
||||
#
|
||||
|
||||
create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '')
|
||||
default charset=utf8 collate=utf8_unicode_ci;
|
||||
insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65'));
|
||||
explain select distinct a from t1;
|
||||
select distinct a from t1;
|
||||
explain select a from t1 group by a;
|
||||
select a from t1 group by a;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -20,6 +20,7 @@ ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t
|
|||
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
||||
ndb_binlog_ignore_db : BUG#21279 2006-07-25 ingo Randomly throws a warning
|
||||
ndb_load : BUG#17233 2006-05-04 tomas failed load data from infile causes mysqld dbug_assert, binlog not flushed
|
||||
partition : BUG#21658 2006-08-16 Partition test fails, --ps-protocol
|
||||
partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
|
||||
ps : BUG#21524 2006-08-08 pgalbraith 'ps' test fails in --ps-protocol test AMD64 bit
|
||||
ps_7ndb : BUG#18950 2006-02-16 jmiller create table like does not obtain LOCK_open
|
||||
|
|
|
@ -1553,5 +1553,49 @@ drop table t1;
|
|||
connection master;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
#
|
||||
# BUG #15133: unique index with nullable value not accepted in federated table
|
||||
#
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.test;
|
||||
CREATE TABLE federated.test (
|
||||
`i` int(11) NOT NULL,
|
||||
`j` int(11) NOT NULL,
|
||||
`c` varchar(30) default NULL,
|
||||
PRIMARY KEY (`i`,`j`),
|
||||
UNIQUE KEY `i` (`i`,`c`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
--enable_warnings
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.test1;
|
||||
DROP TABLE IF EXISTS federated.test2;
|
||||
--enable_warnings
|
||||
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval create table federated.test1 (
|
||||
i int not null,
|
||||
j int not null,
|
||||
c varchar(30),
|
||||
primary key (i,j),
|
||||
unique key (i, c))
|
||||
engine = federated
|
||||
connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/test';
|
||||
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval create table federated.test2 (
|
||||
i int default null,
|
||||
j int not null,
|
||||
c varchar(30),
|
||||
key (i))
|
||||
engine = federated
|
||||
connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/test';
|
||||
drop table federated.test1, federated.test2;
|
||||
|
||||
connection slave;
|
||||
drop table federated.test;
|
||||
|
||||
source include/federated_cleanup.inc;
|
||||
|
|
|
@ -10,7 +10,7 @@ CREATE TABLE federated.t1 (
|
|||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
DEFAULT CHARSET=latin1 ENGINE=InnoDB;
|
||||
DEFAULT CHARSET=latin1 ENGINE=innodb;
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
|
|
@ -446,6 +446,24 @@ create table t1 select now() - now(), curtime() - curtime(),
|
|||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #19844 time_format in Union truncates values
|
||||
#
|
||||
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H);
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H);
|
||||
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H);
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
|
||||
|
|
|
@ -281,7 +281,7 @@ INSERT INTO t1 VALUES(GeomFromText('POINT(580848489 219587743)'));
|
|||
INSERT INTO t1 VALUES(GeomFromText('POINT(11247614 782797569)'));
|
||||
drop table t1;
|
||||
|
||||
create table t1 select POINT(1,3);
|
||||
create table t1 select GeomFromWKB(POINT(1,3));
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
@ -416,3 +416,9 @@ select * from t1;
|
|||
select asbinary(g) from t1;
|
||||
--disable_metadata
|
||||
drop table t1;
|
||||
|
||||
|
||||
create table t1 select GeomFromText('point(1 1)');
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
|
|
|
@ -683,3 +683,136 @@ drop table t2;
|
|||
drop table t1;
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Bug#20214: Incorrect error when user calls SHOW CREATE VIEW on non
|
||||
# privileged view
|
||||
#
|
||||
|
||||
connection master;
|
||||
|
||||
CREATE DATABASE mysqltest3;
|
||||
use mysqltest3;
|
||||
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
|
||||
CREATE DATABASE mysqltest2;
|
||||
use mysqltest2;
|
||||
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_gy AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_ny AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
|
||||
|
||||
GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
|
||||
connect (mysqltest_1, localhost, mysqltest_1, mysqltest_1,);
|
||||
|
||||
# fail because of missing SHOW VIEW (have generic SELECT)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
|
||||
|
||||
|
||||
# fail because of missing SHOW VIEW
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest2.v_yn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest2.v_yn;
|
||||
|
||||
|
||||
|
||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||
SHOW CREATE TABLE mysqltest2.v_ny;
|
||||
|
||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||
SHOW CREATE VIEW mysqltest2.v_ny;
|
||||
|
||||
|
||||
|
||||
# fail because of missing (specific or generic) SELECT
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest3.t_nn;
|
||||
|
||||
# fail because of missing (specific or generic) SELECT (not because it's not a view!)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest3.t_nn;
|
||||
|
||||
|
||||
|
||||
# fail because of missing missing (specific or generic) SELECT (and SHOW VIEW)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest3.v_nn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest3.v_nn;
|
||||
|
||||
|
||||
|
||||
# succeed thanks to generic SELECT
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
|
||||
# fail because it's not a view! (have generic SELECT though)
|
||||
--error ER_WRONG_OBJECT
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
|
||||
|
||||
|
||||
# succeed, have SELECT and SHOW VIEW
|
||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||
|
||||
# succeed, have SELECT and SHOW VIEW
|
||||
SHOW CREATE TABLE mysqltest2.v_yy;
|
||||
|
||||
|
||||
|
||||
#clean-up
|
||||
connection master;
|
||||
|
||||
# succeed, we're root
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
|
||||
# fail because it's not a view!
|
||||
--error ER_WRONG_OBJECT
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
|
||||
|
||||
|
||||
DROP VIEW mysqltest2.v_nn;
|
||||
DROP VIEW mysqltest2.v_yn;
|
||||
DROP VIEW mysqltest2.v_ny;
|
||||
DROP VIEW mysqltest2.v_yy;
|
||||
|
||||
DROP TABLE mysqltest2.t_nn;
|
||||
|
||||
DROP DATABASE mysqltest2;
|
||||
|
||||
|
||||
|
||||
DROP VIEW mysqltest3.v_nn;
|
||||
DROP TABLE mysqltest3.t_nn;
|
||||
|
||||
DROP DATABASE mysqltest3;
|
||||
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||
DROP USER 'mysqltest_1'@'localhost';
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Bug #10668: CREATE USER does not enforce username length limit
|
||||
#
|
||||
--error ER_CANNOT_USER
|
||||
create user mysqltest1_thisisreallytoolong;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -194,3 +194,11 @@ START INSTANCE mysqld1,mysqld2,mysqld3;
|
|||
|
||||
--error ER_SYNTAX_ERROR
|
||||
STOP INSTANCE mysqld1,mysqld2,mysqld3;
|
||||
|
||||
#
|
||||
# Bug #12673: Instance Manager: allows to stop the instance many times
|
||||
#
|
||||
--error 3001
|
||||
STOP INSTANCE mysqld2;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
#
|
||||
# 2-sweeps read Index_merge test
|
||||
#
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (
|
||||
pk int primary key,
|
||||
key1 int,
|
||||
key2 int,
|
||||
filler char(200),
|
||||
filler2 char(200),
|
||||
index(key1),
|
||||
index(key2)
|
||||
) engine=bdb;
|
||||
|
||||
|
||||
--disable_query_log
|
||||
let $1=1000;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values($1, $1, $1, 'filler-data','filler-data-2');
|
||||
dec $1;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 );
|
||||
|
||||
set @maxv=1000;
|
||||
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or key1=18 or key1=60;
|
||||
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or key1 < 3 or key1 > @maxv-11;
|
||||
|
||||
select * from t1 where
|
||||
(pk < 5) or (pk > 10 and pk < 15) or (pk >= 50 and pk < 55 ) or (pk > @maxv-10)
|
||||
or
|
||||
(key1 < 5) or (key1 > 10 and key1 < 15) or (key1 >= 50 and key1 < 55 ) or (key1 > @maxv-10);
|
||||
|
||||
select * from t1 where
|
||||
(pk > 10 and pk < 15) or (pk >= 50 and pk < 55 )
|
||||
or
|
||||
(key1 < 5) or (key1 > @maxv-10);
|
||||
|
||||
drop table t1;
|
|
@ -98,3 +98,60 @@ where table_schema='test';
|
|||
drop function f1;
|
||||
drop function f2;
|
||||
drop view v1, v2;
|
||||
|
||||
#
|
||||
# Bug#20543: select on information_schema strange warnings, view, different
|
||||
# schemas/users
|
||||
#
|
||||
#
|
||||
create database testdb_1;
|
||||
create user testdb_1@localhost;
|
||||
grant all on testdb_1.* to testdb_1@localhost with grant option;
|
||||
|
||||
create user testdb_2@localhost;
|
||||
grant all on test.* to testdb_2@localhost with grant option;
|
||||
|
||||
connect (testdb_1,localhost,testdb_1,,test);
|
||||
use testdb_1;
|
||||
create table t1 (f1 char(4));
|
||||
create view v1 as select f1 from t1;
|
||||
grant insert on v1 to testdb_2@localhost;
|
||||
|
||||
create table t3 (f1 char(4), f2 char(4));
|
||||
create view v3 as select f1,f2 from t3;
|
||||
grant insert(f1), insert(f2) on v3 to testdb_2@localhost;
|
||||
|
||||
connect (testdb_2,localhost,testdb_2,,test);
|
||||
create view v2 as select f1 from testdb_1.v1;
|
||||
create view v4 as select f1,f2 from testdb_1.v3;
|
||||
|
||||
connection testdb_1;
|
||||
revoke insert(f1) on v3 from testdb_2@localhost;
|
||||
connection testdb_2;
|
||||
|
||||
--error 1345
|
||||
show create view v4;
|
||||
--error 1345
|
||||
show fields from v4;
|
||||
|
||||
show fields from v2;
|
||||
show fields from testdb_1.v1;
|
||||
show create view v2;
|
||||
--error 1142
|
||||
show create view testdb_1.v1;
|
||||
|
||||
select table_name from information_schema.columns a
|
||||
where a.table_name = 'v2';
|
||||
select view_definition from information_schema.views a
|
||||
where a.table_name = 'v2';
|
||||
select view_definition from information_schema.views a
|
||||
where a.table_name = 'testdb_1.v1';
|
||||
|
||||
--error 1356
|
||||
select * from v2;
|
||||
|
||||
connection default;
|
||||
drop view testdb_1.v1,v2, testdb_1.v3, v4;
|
||||
drop database testdb_1;
|
||||
drop user testdb_1@localhost;
|
||||
drop user testdb_2@localhost;
|
||||
|
|
|
@ -485,7 +485,7 @@ delete t1,t2 from t2,t1 where t1.a<'B' and t2.b=t1.b;
|
|||
drop table t1,t2;
|
||||
|
||||
--disable_warnings
|
||||
create table t1 ( c char(8) not null ) engine=bdb;
|
||||
create table t1 ( c char(8) not null ) engine=innodb;
|
||||
--enable_warnings
|
||||
|
||||
insert into t1 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9');
|
||||
|
|
|
@ -94,6 +94,50 @@ drop table t1;
|
|||
--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1
|
||||
--enable_parsing
|
||||
|
||||
|
||||
#
|
||||
# Bug #20432: mysql client interprets commands in comments
|
||||
#
|
||||
|
||||
# if the client sees the 'use' within the comment, we haven't fixed
|
||||
--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# SQL can have embedded comments => workie
|
||||
--exec echo "select /*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/ 1" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# client commands on the other hand must be at BOL => error
|
||||
--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "xxx" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/ use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--error 1
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# client comment recognized, but parameter missing => error
|
||||
--exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
#
|
||||
# Bug #20328: mysql client interprets commands in comments
|
||||
#
|
||||
--exec $MYSQL -e 'help' > $MYSQLTEST_VARDIR/tmp/bug20328_1.result
|
||||
--exec $MYSQL -e 'help ' > $MYSQLTEST_VARDIR/tmp/bug20328_2.result
|
||||
--exec diff $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result
|
||||
|
||||
#
|
||||
# Bug #20103: Escaping with backslash does not work
|
||||
#
|
||||
--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
||||
|
||||
--exec echo "SET SQL_MODE = '';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
# This test should work in embedded server after we fix mysqltest
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
#
|
||||
# Bug #20432: mysql client interprets commands in comments
|
||||
#
|
||||
|
||||
# if the client sees the 'use' within the comment, we haven't fixed
|
||||
--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# SQL can have embedded comments => workie
|
||||
--exec echo "select /*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/ 1" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# client commands on the other hand must be at BOL => error
|
||||
--exec echo "/*" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "xxx" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec echo "*/ use" >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--error 1
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
# client comment recognized, but parameter missing => error
|
||||
--exec echo "use" > $MYSQLTEST_VARDIR/tmp/bug20432.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
|
||||
|
||||
#
|
||||
# Bug #20328: mysql client interprets commands in comments
|
||||
#
|
||||
--exec echo 'help' | $MYSQL
|
||||
--exec echo 'help ' | $MYSQL
|
||||
|
||||
#
|
||||
# Bug #20103: Escaping with backslash does not work
|
||||
#
|
||||
--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
||||
|
||||
--exec echo "SET SQL_MODE = '';" > $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
|
|
@ -8,8 +8,8 @@
|
|||
# server or run mysql-test-run --debug mysql_client_test and check
|
||||
# var/log/mysql_client_test.trace
|
||||
|
||||
--disable_result_log
|
||||
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M
|
||||
--exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1
|
||||
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1
|
||||
|
||||
# End of 4.1 tests
|
||||
echo ok;
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
###############################################
|
||||
# #
|
||||
# Prepared Statements test on BDB tables #
|
||||
# #
|
||||
###############################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE SEE ps_1general.test (bottom)
|
||||
# BEFORE ADDING NEW TEST CASES HERE !!!
|
||||
|
||||
use test;
|
||||
|
||||
-- source include/have_bdb.inc
|
||||
let $type= 'BDB' ;
|
||||
-- source include/ps_create.inc
|
||||
-- source include/ps_renew.inc
|
||||
|
||||
-- source include/ps_query.inc
|
||||
-- source include/ps_modify.inc
|
||||
-- source include/ps_modify1.inc
|
||||
-- source include/ps_conv.inc
|
||||
|
||||
drop table t1, t9;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -1,108 +0,0 @@
|
|||
#
|
||||
# Test for rowid ordering (and comparison) functions.
|
||||
# do index_merge select for tables with PK of various types.
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2, t3,t4;
|
||||
--enable_warnings
|
||||
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
# Signed number as rowid
|
||||
create table t1 (
|
||||
pk1 int not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values (-5, 1, 1),
|
||||
(-100, 1, 1),
|
||||
(3, 1, 1),
|
||||
(0, 1, 1),
|
||||
(10, 1, 1);
|
||||
explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
drop table t1;
|
||||
|
||||
# Unsigned numbers as rowids
|
||||
create table t1 (
|
||||
pk1 int unsigned not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values (0, 1, 1),
|
||||
(0xFFFFFFFF, 1, 1),
|
||||
(0xFFFFFFFE, 1, 1),
|
||||
(1, 1, 1),
|
||||
(2, 1, 1);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
drop table t1;
|
||||
|
||||
# Case-insensitive char(N)
|
||||
create table t1 (
|
||||
pk1 char(4) not NULL,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb collate latin2_general_ci;
|
||||
insert into t1 values ('a1', 1, 1),
|
||||
('b2', 1, 1),
|
||||
('A3', 1, 1),
|
||||
('B4', 1, 1);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
drop table t1;
|
||||
|
||||
# Multi-part PK
|
||||
create table t1 (
|
||||
pk1 int not NULL,
|
||||
pk2 char(4) not NULL collate latin1_german1_ci,
|
||||
pk3 char(4) not NULL collate latin1_bin,
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
PRIMARY KEY (pk1,pk2,pk3),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values
|
||||
(1, 'u', 'u', 1, 1),
|
||||
(1, 'u', char(0xEC), 1, 1),
|
||||
(1, 'u', 'x', 1, 1);
|
||||
insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
|
||||
insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
|
||||
insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
|
||||
select * from t1;
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
|
||||
# Hidden PK
|
||||
alter table t1 drop primary key;
|
||||
select * from t1;
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
drop table t1;
|
||||
|
||||
# Variable-length PK
|
||||
# this is also test for Bug#2688
|
||||
create table t1 (
|
||||
pk1 varchar(8) NOT NULL default '',
|
||||
pk2 varchar(4) NOT NULL default '',
|
||||
key1 int(11),
|
||||
key2 int(11),
|
||||
primary key(pk1, pk2),
|
||||
KEY key1 (key1),
|
||||
KEY key2 (key2)
|
||||
) engine=bdb;
|
||||
insert into t1 values ('','empt',2,2),
|
||||
('a','a--a',2,2),
|
||||
('bb','b--b',2,2),
|
||||
('ccc','c--c',2,2),
|
||||
('dddd','d--d',2,2);
|
||||
select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
|
||||
|
||||
drop table t1;
|
||||
|
|
@ -947,8 +947,12 @@ select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(3
|
|||
#
|
||||
# Bug #11708 (conversion to decimal fails in decimal part)
|
||||
#
|
||||
select ln(14000) c1, convert(ln(14000),decimal(2,3)) c2, cast(ln(14000) as decimal(2,3)) c3;
|
||||
|
||||
select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3;
|
||||
--error 1427
|
||||
select convert(ln(14000),decimal(2,3)) c1;
|
||||
--error 1427
|
||||
select cast(ln(14000) as decimal(2,3)) c1;
|
||||
|
||||
#
|
||||
# Bug #8449 (Silent column changes)
|
||||
#
|
||||
|
@ -1115,3 +1119,14 @@ insert into t1 values (1,1), (1,2), (2,3), (2,4);
|
|||
select i, count(distinct j) from t1 group by i;
|
||||
select i+0.0 as i2, count(distinct j) from t1 group by i2;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#16172 DECIMAL data type processed incorrectly
|
||||
#
|
||||
select cast(143.481 as decimal(4,1));
|
||||
select cast(143.481 as decimal(4,0));
|
||||
select cast(143.481 as decimal(2,1));
|
||||
select cast(-3.4 as decimal(2,1));
|
||||
select cast(99.6 as decimal(2,0));
|
||||
select cast(-13.4 as decimal(2,1));
|
||||
select cast(98.6 as decimal(2,0));
|
||||
|
|
|
@ -328,3 +328,14 @@ drop table t1;
|
|||
|
||||
# Restore timezone to default
|
||||
set time_zone= @@global.time_zone;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`username` varchar(80) NOT NULL default '',
|
||||
`posted_on` timestamp NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
|
||||
|
||||
show fields from t1;
|
||||
select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';
|
||||
drop table t1;
|
||||
|
|
|
@ -354,3 +354,9 @@ DROP PROCEDURE p2;
|
|||
select extractValue('<ns:element xmlns:ns="myns"/>','count(ns:element)');
|
||||
select extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/ns:element');
|
||||
select extractValue('<ns:element xmlns:ns="myns">a</ns:element>','/ns:element/@xmlns:ns');
|
||||
|
||||
#
|
||||
# Bug#20795 extractvalue() won't accept names containing a dot (.)
|
||||
#
|
||||
select extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/foo.bar');
|
||||
select extractValue('<foo><foo.bar>Data</foo.bar><something>Otherdata</something></foo>','/foo/something');
|
||||
|
|
|
@ -42,7 +42,7 @@ base64_needed_encoded_length(int length_of_data)
|
|||
int
|
||||
base64_needed_decoded_length(int length_of_encoded_data)
|
||||
{
|
||||
return ceil(length_of_encoded_data * 3 / 4);
|
||||
return (int)ceil(length_of_encoded_data * 3 / 4);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ uint my_pread(File Filedes, byte *Buffer, uint Count, my_off_t offset,
|
|||
before seeking to the given offset
|
||||
*/
|
||||
|
||||
error= (old_offset= lseek(Filedes, 0L, MY_SEEK_CUR)) == -1L ||
|
||||
error= (old_offset= (off_t)lseek(Filedes, 0L, MY_SEEK_CUR)) == -1L ||
|
||||
lseek(Filedes, offset, MY_SEEK_SET) == -1L;
|
||||
|
||||
if (!error) /* Seek was successful */
|
||||
|
@ -121,7 +121,7 @@ uint my_pwrite(int Filedes, const byte *Buffer, uint Count, my_off_t offset,
|
|||
As we cannot change the file pointer, we save the old position,
|
||||
before seeking to the given offset
|
||||
*/
|
||||
error= ((old_offset= lseek(Filedes, 0L, MY_SEEK_CUR)) == -1L ||
|
||||
error= ((old_offset= (off_t)lseek(Filedes, 0L, MY_SEEK_CUR)) == -1L ||
|
||||
lseek(Filedes, offset, MY_SEEK_SET) == -1L);
|
||||
|
||||
if (!error) /* Seek was successful */
|
||||
|
|
|
@ -361,7 +361,6 @@ int mysql_install_db(int argc, char *argv[])
|
|||
add_arg(&al, "--bootstrap");
|
||||
add_arg(&al, "--skip-grant-tables");
|
||||
add_arg(&al, "--skip-innodb");
|
||||
add_arg(&al, "--skip-bdb");
|
||||
|
||||
// spawn mysqld
|
||||
err = spawn(mysqld, &al, TRUE, sql_file, out_log, err_log);
|
||||
|
|
|
@ -210,7 +210,6 @@ void install_db(char *datadir)
|
|||
add_arg(&al, "--basedir=%s", base_dir);
|
||||
add_arg(&al, "--datadir=%s", datadir);
|
||||
add_arg(&al, "--skip-innodb");
|
||||
add_arg(&al, "--skip-bdb");
|
||||
|
||||
// spawn
|
||||
if ((err = spawn(mysqld_file, &al, TRUE, input, output, error)) != 0)
|
||||
|
|
|
@ -212,7 +212,7 @@ then
|
|||
fi
|
||||
mysqld_install_cmd_line="$mysqld $defaults $mysqld_opt --bootstrap \
|
||||
--skip-grant-tables --basedir=$basedir --datadir=$ldata --skip-innodb \
|
||||
--skip-bdb --skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K"
|
||||
--skip-ndbcluster $args --max_allowed_packet=8M --net_buffer_length=16K"
|
||||
if $scriptdir/mysql_create_system_tables $create_option $mdata $hostname $windows \
|
||||
| eval "$mysqld_install_cmd_line"
|
||||
then
|
||||
|
|
|
@ -501,44 +501,45 @@ int Instance::stop()
|
|||
struct timespec timeout;
|
||||
uint waitchild= (uint) DEFAULT_SHUTDOWN_DELAY;
|
||||
|
||||
if (options.shutdown_delay)
|
||||
if (is_running())
|
||||
{
|
||||
/*
|
||||
NOTE: it is important to check shutdown_delay here, but use
|
||||
shutdown_delay_val. The idea is that if the option is unset,
|
||||
shutdown_delay will be NULL, but shutdown_delay_val will not be reset.
|
||||
*/
|
||||
waitchild= options.shutdown_delay_val;
|
||||
if (options.shutdown_delay)
|
||||
{
|
||||
/*
|
||||
NOTE: it is important to check shutdown_delay here, but use
|
||||
shutdown_delay_val. The idea is that if the option is unset,
|
||||
shutdown_delay will be NULL, but shutdown_delay_val will not be reset.
|
||||
*/
|
||||
waitchild= options.shutdown_delay_val;
|
||||
}
|
||||
|
||||
kill_instance(SIGTERM);
|
||||
/* sleep on condition to wait for SIGCHLD */
|
||||
|
||||
timeout.tv_sec= time(NULL) + waitchild;
|
||||
timeout.tv_nsec= 0;
|
||||
if (pthread_mutex_lock(&LOCK_instance))
|
||||
return ER_STOP_INSTANCE;
|
||||
|
||||
while (options.get_pid() != 0) /* while server isn't stopped */
|
||||
{
|
||||
int status;
|
||||
|
||||
status= pthread_cond_timedwait(&COND_instance_stopped,
|
||||
&LOCK_instance,
|
||||
&timeout);
|
||||
if (status == ETIMEDOUT || status == ETIME)
|
||||
break;
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&LOCK_instance);
|
||||
|
||||
kill_instance(SIGKILL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
kill_instance(SIGTERM);
|
||||
/* sleep on condition to wait for SIGCHLD */
|
||||
|
||||
timeout.tv_sec= time(NULL) + waitchild;
|
||||
timeout.tv_nsec= 0;
|
||||
if (pthread_mutex_lock(&LOCK_instance))
|
||||
goto err;
|
||||
|
||||
while (options.get_pid() != 0) /* while server isn't stopped */
|
||||
{
|
||||
int status;
|
||||
|
||||
status= pthread_cond_timedwait(&COND_instance_stopped,
|
||||
&LOCK_instance,
|
||||
&timeout);
|
||||
if (status == ETIMEDOUT || status == ETIME)
|
||||
break;
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&LOCK_instance);
|
||||
|
||||
kill_instance(SIGKILL);
|
||||
|
||||
return 0;
|
||||
|
||||
return ER_INSTANCE_IS_NOT_STARTED;
|
||||
err:
|
||||
return ER_STOP_INSTANCE;
|
||||
}
|
||||
|
||||
#ifdef __WIN__
|
||||
|
|
|
@ -47,8 +47,8 @@ static const char *mysqld_error_message(unsigned sql_errno)
|
|||
case ER_BAD_INSTANCE_NAME:
|
||||
return "Bad instance name. Check that the instance with such a name exists";
|
||||
case ER_INSTANCE_IS_NOT_STARTED:
|
||||
return "Cannot stop instance. Perhaps the instance is not started, or was started"
|
||||
"manually, so IM cannot find the pidfile.";
|
||||
return "Cannot stop instance. Perhaps the instance is not started, or was"
|
||||
" started manually, so IM cannot find the pidfile.";
|
||||
case ER_INSTANCE_ALREADY_STARTED:
|
||||
return "The instance is already started";
|
||||
case ER_CANNOT_START_INSTANCE:
|
||||
|
@ -66,7 +66,7 @@ static const char *mysqld_error_message(unsigned sql_errno)
|
|||
return "Cannot open log file";
|
||||
case ER_GUESS_LOGFILE:
|
||||
return "Cannot guess the log filename. Try specifying full log name"
|
||||
"in the instance options";
|
||||
" in the instance options";
|
||||
case ER_ACCESS_OPTION_FILE:
|
||||
return "Cannot open the option file to edit. Check permissions";
|
||||
case ER_DROP_ACTIVE_INSTANCE:
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_PORTABILITY_H
|
||||
#define INCLUDES_MYSQL_INSTANCE_MANAGER_PORTABILITY_H
|
||||
|
||||
#if defined(_SCO_DS) && !defined(SHUT_RDWR)
|
||||
#if (defined(_SCO_DS) || defined(UNIXWARE_7)) && !defined(SHUT_RDWR)
|
||||
/*
|
||||
SHUT_* functions are defined only if
|
||||
"(defined(_XOPEN_SOURCE) && _XOPEN_SOURCE_EXTENDED - 0 >= 1)"
|
||||
*/
|
||||
#define SHUT_RDWR 2
|
||||
#endif
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue