Commit 9268cb0b authored by jan@hundin.mysql.fi's avatar jan@hundin.mysql.fi

Merge jlindstrom@build.mysql.com:/home/bk/mysql-4.1

into hundin.mysql.fi:/home/jan/mysql-4.1
parents 939a9bfb cd5ed13e
...@@ -38,6 +38,7 @@ EXTRA_DIST = FINISH.sh \ ...@@ -38,6 +38,7 @@ EXTRA_DIST = FINISH.sh \
compile-solaris-sparc \ compile-solaris-sparc \
compile-solaris-sparc-debug \ compile-solaris-sparc-debug \
compile-irix-mips64-mipspro \ compile-irix-mips64-mipspro \
compile-hpux11-parisc2-aCC \
compile-solaris-sparc-forte \ compile-solaris-sparc-forte \
compile-solaris-sparc-purify compile-solaris-sparc-purify
......
#!/bin/sh
if [ ! -f "sql/mysqld.cc" ]; then
echo "You must run this script from the MySQL top-level directory."
exit 1
fi
# -fast Expand into a set of compiler options to result in
# improved application run-time. Options include: +O3,
# +Onolooptransform, +Olibcalls, +FPD, +Oentryschedule,
# +Ofastaccess.
# +O4 Perform level 3 as well as doing link time optimizations.
# Also sends +Oprocelim and +Ofastaccess to the linker
# (see ld(1)).
release_flags="-fast +O4"
# -z Do not bind anything to address zero. This option
# allows runtime detection of null pointers. See the
# note on pointers below.
cflags="-g -z +O0"
cxxflags="-g0 -z +O0"
debug_conigure_options="--with-debug"
while [ "$#" != 0 ]; do
case "$1" in
--help)
echo "Usage: $0 [options]"
echo "Options:"
echo "--help print this message"
echo "--debug build debug binary [default] "
echo "--release build optimised binary"
echo "-32 build 32 bit binary [default]"
echo "-64 build 64 bit binary"
exit 0
;;
--debug)
echo "Building debug binary"
;;
--release)
echo "Building release binary"
cflags="$release_flags"
cxxflags="$release_flags"
debug_configure_options=""
;;
-32)
echo "Building 32-bit binary"
;;
-64)
echo "Building 64-bit binary"
cflags="$cflags +DA2.0W +DD64"
cxxflags="$cxxflags +DA2.0W +DD64"
;;
*)
echo "$0: invalid option '$1'; use --help to show usage"
exit 1
;;
esac
shift
done
set -x
make distclean
aclocal
autoheader
libtoolize --automake --force
automake --force --add-missing
autoconf
(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
CC=cc CXX=aCC CFLAGS="$cflags" CXXFLAGS="$cxxflags" \
./configure --prefix=/usr/local/mysql --disable-shared \
--with-extra-charsets=complex --enable-thread-safe-client \
--without-extra-tools $debug_configure_options \
--disable-dependency-tracking
gmake
/* acconfig.h
This file is in the public domain.
Descriptive text for the C preprocessor macros that
the distributed Autoconf macros can define.
No software package will use all of them; autoheader copies the ones
your configure.in uses into your configuration header file templates.
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). Although this order
can split up related entries, it makes it easier to check whether
a given entry is in the file.
Leave the following blank line there!! Autoheader needs it. */
#undef C_ALLOCA
#undef CRAY_STACKSEG_END
/* Define the default charset name */
#undef MYSQL_DEFAULT_CHARSET_NAME
/* Define the default charset name */
#undef MYSQL_DEFAULT_COLLATION_NAME
/* Version of .frm files */
#undef DOT_FRM_VERSION
/* If LOAD DATA LOCAL INFILE should be enabled by default */
#undef ENABLED_LOCAL_INFILE
/* READLINE: */
#undef FIONREAD_IN_SYS_IOCTL
/* READLINE: Define if your system defines TIOCGWINSZ in sys/ioctl.h. */
#undef GWINSZ_IN_SYS_IOCTL
/* Handing of large files on Solaris 2.6 */
#undef _FILE_OFFSET_BITS
/* Do we have FIONREAD */
#undef FIONREAD_IN_SYS_IOCTL
/* Do we need to define _GNU_SOURCE */
#undef _GNU_SOURCE
/* atomic_add() from <asm/atomic.h> (Linux only) */
#undef HAVE_ATOMIC_ADD
/* atomic_sub() from <asm/atomic.h> (Linux only) */
#undef HAVE_ATOMIC_SUB
/* If we have a working alloca() implementation */
#undef HAVE_ALLOCA
/* bool is not defined by all C++ compilators */
#undef HAVE_BOOL
/* Have berkeley db installed */
#undef HAVE_BERKELEY_DB
/* DSB style signals ? */
#undef HAVE_BSD_SIGNALS
/* Can netinet be included */
#undef HAVE_BROKEN_NETINET_INCLUDES
/* READLINE: */
#undef HAVE_BSD_SIGNALS
/* Define charsets you want */
#undef HAVE_CHARSET_armscii8
#undef HAVE_CHARSET_ascii
#undef HAVE_CHARSET_big5
#undef HAVE_CHARSET_cp1250
#undef HAVE_CHARSET_cp1251
#undef HAVE_CHARSET_cp1256
#undef HAVE_CHARSET_cp1257
#undef HAVE_CHARSET_cp850
#undef HAVE_CHARSET_cp852
#undef HAVE_CHARSET_cp866
#undef HAVE_CHARSET_dec8
#undef HAVE_CHARSET_euckr
#undef HAVE_CHARSET_gb2312
#undef HAVE_CHARSET_gbk
#undef HAVE_CHARSET_geostd8
#undef HAVE_CHARSET_greek
#undef HAVE_CHARSET_hebrew
#undef HAVE_CHARSET_hp8
#undef HAVE_CHARSET_keybcs2
#undef HAVE_CHARSET_koi8r
#undef HAVE_CHARSET_koi8u
#undef HAVE_CHARSET_latin1
#undef HAVE_CHARSET_latin2
#undef HAVE_CHARSET_latin5
#undef HAVE_CHARSET_latin7
#undef HAVE_CHARSET_macce
#undef HAVE_CHARSET_macroman
#undef HAVE_CHARSET_sjis
#undef HAVE_CHARSET_swe7
#undef HAVE_CHARSET_tis620
#undef HAVE_CHARSET_ucs2
#undef HAVE_CHARSET_ujis
#undef HAVE_CHARSET_utf8
/* ZLIB and compress: */
#undef HAVE_COMPRESS
/* Define if we are using OSF1 DEC threads */
#undef HAVE_DEC_THREADS
/* Define if we are using OSF1 DEC threads on 3.2 */
#undef HAVE_DEC_3_2_THREADS
/* Builds Example DB */
#undef HAVE_EXAMPLE_DB
/* Builds Archive Storage Engine */
#undef HAVE_ARCHIVE_DB
/* fp_except from ieeefp.h */
#undef HAVE_FP_EXCEPT
/* READLINE: */
#undef HAVE_GETPW_DECLS
/* Solaris define gethostbyname_r with 5 arguments. glibc2 defines
this with 6 arguments */
#undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE
/* In OSF 4.0f the 3'd argument to gethostname_r is hostent_data * */
#undef HAVE_GETHOSTBYNAME_R_RETURN_INT
/* Define if int8, int16 and int32 types exist */
#undef HAVE_INT_8_16_32
/* Using Innobase DB */
#undef HAVE_INNOBASE_DB
/* Using old ISAM tables */
#undef HAVE_ISAM
/* Define if we have GNU readline */
#undef HAVE_LIBREADLINE
/* Define if have -lwrap */
#undef HAVE_LIBWRAP
/* Define if we are using Xavier Leroy's LinuxThreads */
#undef HAVE_LINUXTHREADS
/* Do we have lstat */
#undef HAVE_LSTAT
/* Do we use user level threads */
#undef HAVE_mit_thread
/* Using Ndb Cluster DB */
#undef HAVE_NDBCLUSTER_DB
/* Including Ndb Cluster DB shared memory transporter */
#undef NDB_SHM_TRANSPORTER
/* Including Ndb Cluster DB sci transporter */
#undef NDB_SCI_TRANSPORTER
/* For some non posix threads */
#undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC
/* For some non posix threads */
#undef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT
/* READLINE: */
#undef HAVE_POSIX_SIGNALS
/* Well.. */
#undef HAVE_POSIX_SIGSETJMP
/* sigwait with one argument */
#undef HAVE_NONPOSIX_SIGWAIT
/* ORBIT */
#undef HAVE_ORBIT
/* pthread_attr_setscope */
#undef HAVE_PTHREAD_ATTR_SETSCOPE
/* pthread_yield that doesn't take any arguments */
#undef HAVE_PTHREAD_YIELD_ZERO_ARG
/* pthread_yield function with one argument */
#undef HAVE_PTHREAD_YIELD_ONE_ARG
/* POSIX readdir_r */
#undef HAVE_READDIR_R
/* Have Gemini db installed */
#undef HAVE_GEMINI_DB
/* POSIX sigwait */
#undef HAVE_SIGWAIT
/* crypt */
#undef HAVE_CRYPT
/* If we want to have query cache */
#undef HAVE_QUERY_CACHE
/* Spatial extentions */
#undef HAVE_SPATIAL
/* RTree keys */
#undef HAVE_RTREE_KEYS
/* Access checks in embedded library */
#undef HAVE_EMBEDDED_PRIVILEGE_CONTROL
/* Solaris define gethostbyaddr_r with 7 arguments. glibc2 defines
this with 8 arguments */
#undef HAVE_SOLARIS_STYLE_GETHOST
/* MIT pthreads does not support connecting with unix sockets */
#undef HAVE_THREADS_WITHOUT_SOCKETS
/* Timespec has a ts_sec instead of tv_sev */
#undef HAVE_TIMESPEC_TS_SEC
/* Have the tzname variable */
#undef HAVE_TZNAME
/* Define if the system files define uchar */
#undef HAVE_UCHAR
/* Define if the system files define uint */
#undef HAVE_UINT
/* Define if the system files define ulong */
#undef HAVE_ULONG
/* Define if the system files define in_addr_t */
#undef HAVE_IN_ADDR_T
/* UNIXWARE7 threads are not posix */
#undef HAVE_UNIXWARE7_THREADS
/* new UNIXWARE7 threads that are not yet posix */
#undef HAVE_UNIXWARE7_POSIX
/* OpenSSL */
#undef HAVE_OPENSSL
/* READLINE: */
#undef HAVE_USG_SIGHOLD
/* Virtual IO */
#undef HAVE_VIO
/* Handling of large files on Solaris 2.6 */
#undef _LARGEFILE_SOURCE
/* Handling of large files on Solaris 2.6 */
#undef _LARGEFILE64_SOURCE
/* Define if want -lwrap */
#undef LIBWRAP
/* Define to machine type name eg sun10 */
#undef MACHINE_TYPE
#undef MUST_REINSTALL_SIGHANDLERS
/* Defined to used character set */
#undef MY_CHARSET_CURRENT
/* READLINE: no sys file*/
#undef NO_SYS_FILE
/* Program name */
#undef PACKAGE
/* mysql client protocoll version */
#undef PROTOCOL_VERSION
/* ndb version */
#undef NDB_VERSION_MAJOR
#undef NDB_VERSION_MINOR
#undef NDB_VERSION_BUILD
#undef NDB_VERSION_STATUS
/* Define if qsort returns void */
#undef QSORT_TYPE_IS_VOID
/* Define as the return type of qsort (int or void). */
#undef RETQSORTTYPE
/* Size of off_t */
#undef SIZEOF_OFF_T
/* Define as the base type of the last arg to accept */
#undef SOCKET_SIZE_TYPE
/* Last argument to get/setsockopt */
#undef SOCKOPT_OPTLEN_TYPE
#undef SPEED_T_IN_SYS_TYPES
#undef SPRINTF_RETURNS_PTR
#undef SPRINTF_RETURNS_INT
#undef SPRINTF_RETURNS_GARBAGE
/* Needed to get large file support on HPUX 10.20 */
#undef __STDC_EXT__
#undef STACK_DIRECTION
#undef STRCOLL_BROKEN
#undef STRUCT_DIRENT_HAS_D_FILENO
#undef STRUCT_DIRENT_HAS_D_INO
#undef STRUCT_WINSIZE_IN_SYS_IOCTL
#undef STRUCT_WINSIZE_IN_TERMIOS
/* Define to name of system eg solaris*/
#undef SYSTEM_TYPE
/* Define if you want to have threaded code. This may be undef on client code */
#undef THREAD
/* Should be client be thread safe */
#undef THREAD_SAFE_CLIENT
/* READLINE: */
#undef TIOCSTAT_IN_SYS_IOCTL
/* Use multi-byte character routines */
#undef USE_MB
#undef USE_MB_IDENT
/* the pstack backtrace library */
#undef USE_PSTACK
/* Use MySQL RAID */
#undef USE_RAID
/* Program version */
#undef VERSION
/* READLINE: */
#undef VOID_SIGHANDLER
/* used libedit interface (can we dereference result of rl_completion_entry_function?) */
#undef USE_LIBEDIT_INTERFACE
/* used new readline interface (does rl_completion_func_t and rl_compentry_func_t defined?) */
#undef USE_NEW_READLINE_INTERFACE
/* macro for libedit */
#undef HAVE_VIS_H
#undef HAVE_FGETLN
#undef HAVE_ISSETUGID
#undef HAVE_STRLCPY
#undef HAVE_GETLINE
#undef HAVE_FLOCKFILE
#undef HAVE_SYS_TYPES_H
#undef HAVE_SYS_CDEFS_H
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). */
This diff is collapsed.
This diff is collapsed.
...@@ -240,3 +240,6 @@ select 'zвася' rlike '[[:<:]]вася[[:>:]]'; ...@@ -240,3 +240,6 @@ select 'zвася' rlike '[[:<:]]вася[[:>:]]';
select 'zвасяz' rlike '[[:<:]]вася[[:>:]]'; select 'zвасяz' rlike '[[:<:]]вася[[:>:]]';
'zвасяz' rlike '[[:<:]]вася[[:>:]]' 'zвасяz' rlike '[[:<:]]вася[[:>:]]'
0 0
CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8_unicode_ci);
ALTER TABLE t1 ADD COLUMN b CHAR(20);
DROP TABLE t1;
...@@ -157,3 +157,11 @@ select ' вася ' rlike '[[:<:]]вася[[:>:]]'; ...@@ -157,3 +157,11 @@ select ' вася ' rlike '[[:<:]]вася[[:>:]]';
select 'васяz' rlike '[[:<:]]вася[[:>:]]'; select 'васяz' rlike '[[:<:]]вася[[:>:]]';
select 'zвася' rlike '[[:<:]]вася[[:>:]]'; select 'zвася' rlike '[[:<:]]вася[[:>:]]';
select 'zвасяz' rlike '[[:<:]]вася[[:>:]]'; select 'zвасяz' rlike '[[:<:]]вася[[:>:]]';
#
# Bug #4555
# ALTER TABLE crashes mysqld with enum column collated utf8_unicode_ci
#
CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8_unicode_ci);
ALTER TABLE t1 ADD COLUMN b CHAR(20);
DROP TABLE t1;
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include <NdbSleep.h> #include <NdbSleep.h>
#include <new> #include <new>
#include <signal.h> // For process signals
extern "C" { extern "C" {
extern void (* ndb_new_handler)(); extern void (* ndb_new_handler)();
} }
......
...@@ -58,8 +58,8 @@ testNodeRestart_SOURCES = testNodeRestart.cpp ...@@ -58,8 +58,8 @@ testNodeRestart_SOURCES = testNodeRestart.cpp
testOIBasic_SOURCES = testOIBasic.cpp testOIBasic_SOURCES = testOIBasic.cpp
testOperations_SOURCES = testOperations.cpp testOperations_SOURCES = testOperations.cpp
testRestartGci_SOURCES = testRestartGci.cpp testRestartGci_SOURCES = testRestartGci.cpp
testScan_SOURCES = testScan.cpp testScan_SOURCES = testScan.cpp ScanFunctions.hpp
testScanInterpreter_SOURCES = testScanInterpreter.cpp testScanInterpreter_SOURCES = testScanInterpreter.cpp ScanFilter.hpp ScanInterpretTest.hpp
testSystemRestart_SOURCES = testSystemRestart.cpp testSystemRestart_SOURCES = testSystemRestart.cpp
testTimeout_SOURCES = testTimeout.cpp testTimeout_SOURCES = testTimeout.cpp
testTransactions_SOURCES = testTransactions.cpp testTransactions_SOURCES = testTransactions.cpp
......
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankCreator
SOURCES = bankCreator.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankMakeGL
SOURCES = bankMakeGL.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankSumAccounts
SOURCES = bankSumAccounts.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankTimer
SOURCES = bankTimer.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankTransactionMaker
SOURCES = bankTransactionMaker.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = bankValidateAllGLs
SOURCES = bankValidateAllGLs.cpp
BIN_TARGET_LIBS += bank
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
ARCHIVE_TARGET = bank
SOURCES = Bank.cpp BankLoad.cpp
include $(NDB_TOP)/Epilogue.mk
include .defs.mk
TYPE = ndbapitest
BIN_TARGET = testBank
BIN_TARGET_LIBS += bank
SOURCES = testBank.cpp
include $(NDB_TOP)/Epilogue.mk
...@@ -5625,8 +5625,11 @@ bool Field_enum::eq_def(Field *field) ...@@ -5625,8 +5625,11 @@ bool Field_enum::eq_def(Field *field)
if (typelib->count < from_lib->count) if (typelib->count < from_lib->count)
return 0; return 0;
for (uint i=0 ; i < from_lib->count ; i++) for (uint i=0 ; i < from_lib->count ; i++)
if (my_strcasecmp(field_charset, if (my_strnncoll(field_charset,
typelib->type_names[i],from_lib->type_names[i])) (const uchar*)typelib->type_names[i],
strlen(typelib->type_names[i]),
(const uchar*)from_lib->type_names[i],
strlen(from_lib->type_names[i])))
return 0; return 0;
return 1; return 1;
} }
......
...@@ -307,5 +307,6 @@ character-set=latin7 ...@@ -307,5 +307,6 @@ character-set=latin7
"Got error %d '%-.100s' from %s", "Got error %d '%-.100s' from %s",
"Got temporary error %d '%-.100s' from %s", "Got temporary error %d '%-.100s' from %s",
"Unknown or incorrect time zone: '%-.64s'", "Unknown or incorrect time zone: '%-.64s'",
"Invalid TIMESTAMP value in column '%s' at row %ld",
"Invalid %s character string: '%.64s'", "Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%d) - truncated" "Result of %s() was larger than max_allowed_packet (%d) - truncated"
...@@ -327,6 +327,7 @@ bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create) ...@@ -327,6 +327,7 @@ bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create)
{ {
sql_print_error("Error while loading database options: '%s':",path); sql_print_error("Error while loading database options: '%s':",path);
sql_print_error(ER(ER_UNKNOWN_CHARACTER_SET),pos+1); sql_print_error(ER(ER_UNKNOWN_CHARACTER_SET),pos+1);
create->default_table_charset= default_charset_info;
} }
} }
else if (!strncmp(buf,"default-collation", (pos-buf))) else if (!strncmp(buf,"default-collation", (pos-buf)))
...@@ -336,6 +337,7 @@ bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create) ...@@ -336,6 +337,7 @@ bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create)
{ {
sql_print_error("Error while loading database options: '%s':",path); sql_print_error("Error while loading database options: '%s':",path);
sql_print_error(ER(ER_UNKNOWN_COLLATION),pos+1); sql_print_error(ER(ER_UNKNOWN_COLLATION),pos+1);
create->default_table_charset= default_charset_info;
} }
} }
} }
......
...@@ -1671,7 +1671,10 @@ static void reset_stmt_for_execute(Prepared_statement *stmt) ...@@ -1671,7 +1671,10 @@ static void reset_stmt_for_execute(Prepared_statement *stmt)
Copy WHERE clause pointers to avoid damaging they by optimisation Copy WHERE clause pointers to avoid damaging they by optimisation
*/ */
if (sl->prep_where) if (sl->prep_where)
{
sl->where= sl->prep_where->copy_andor_structure(thd); sl->where= sl->prep_where->copy_andor_structure(thd);
sl->where->cleanup();
}
DBUG_ASSERT(sl->join == 0); DBUG_ASSERT(sl->join == 0);
ORDER *order; ORDER *order;
/* Fix GROUP list */ /* Fix GROUP list */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment