Commit 1a0226e7 authored by monty@donna.mysql.com's avatar monty@donna.mysql.com

Merge

parents 72a1acce e05df20d
...@@ -185,3 +185,4 @@ mysqld.sym ...@@ -185,3 +185,4 @@ mysqld.sym
sql-bench/output/* sql-bench/output/*
sql-bench/Results-linux/ATIS-mysql_bdb-Linux_2.2.14_my_SMP_i686 sql-bench/Results-linux/ATIS-mysql_bdb-Linux_2.2.14_my_SMP_i686
Docs/my_sys.doc Docs/my_sys.doc
tmp/*
...@@ -14,7 +14,8 @@ fi ...@@ -14,7 +14,8 @@ fi
$make $AM_MAKEFLAGS $make $AM_MAKEFLAGS
if [ "x$strip" = "xyes" ]; then if [ "x$strip" = "xyes" ]; then
nm --numeric-sort sql/mysqld > mysqld.sym mkdir -p tmp
objdump -d sql/mysqld > mysqld.S nm --numeric-sort sql/mysqld > tmp/mysqld.sym
objdump -d sql/mysqld > tmp/mysqld.S
strip sql/mysqld strip sql/mysqld
fi fi
mwagner@work.mysql.com mwagner@work.mysql.com
mwagner@evoq.home.mwagner.org mwagner@evoq.home.mwagner.org
monty@donna.mysql.com
...@@ -18274,6 +18274,9 @@ exist. ...@@ -18274,6 +18274,9 @@ exist.
@code{RESTRICT} and @code{CASCADE} are allowed to make porting easier. @code{RESTRICT} and @code{CASCADE} are allowed to make porting easier.
For the moment they don't do anything. For the moment they don't do anything.
@strong{NOTE}: @code{DROP TABLE} is not transaction safe and will
automaticly commit any active transactions.
@cindex tables, defragment @cindex tables, defragment
@cindex tables, fragmentation @cindex tables, fragmentation
@findex OPTIMIZE TABLE @findex OPTIMIZE TABLE
...@@ -21276,6 +21279,9 @@ You can also lock all tables in all databases with read locks with the ...@@ -21276,6 +21279,9 @@ You can also lock all tables in all databases with read locks with the
convinient way to get backups if you have a file system, like Veritas, convinient way to get backups if you have a file system, like Veritas,
that can take snapshots in time. that can take snapshots in time.
@strong{NOTE}: @code{LOCK TABLES} is not transaction safe and will
automaticly commit any active transactions before attempting to lock the
tables.
@findex SET OPTION @findex SET OPTION
@node SET OPTION, GRANT, LOCK TABLES, Reference @node SET OPTION, GRANT, LOCK TABLES, Reference
...@@ -40018,6 +40024,8 @@ though, so Version 3.23 is not released as a stable version yet. ...@@ -40018,6 +40024,8 @@ though, so Version 3.23 is not released as a stable version yet.
@appendixsubsec Changes in release 3.23.30 @appendixsubsec Changes in release 3.23.30
@itemize @bullet @itemize @bullet
@item @item
@code{LOCK TABLES} will now automaticly start a new transaction.
@item
Changed BDB tables to not use internal subtransactions and reuse open files to Changed BDB tables to not use internal subtransactions and reuse open files to
get more speed. get more speed.
@item @item
...@@ -68,12 +68,12 @@ ...@@ -68,12 +68,12 @@
/* READLINE: */ /* READLINE: */
#undef HAVE_GETPW_DECLS #undef HAVE_GETPW_DECLS
/* In OSF 4.0f the 3'd argument to gethostname_r is hostent_data * */
#undef HAVE_GETHOSTBYNAME_R_WITH_HOSTENT_DATA
/* Solaris define gethostbyname_r with 5 arguments. glibc2 defines /* Solaris define gethostbyname_r with 5 arguments. glibc2 defines
this with 6 arguments */ this with 6 arguments */
#undef HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R #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 */ /* Define if int8, int16 and int32 types exist */
#undef HAVE_INT_8_16_32 #undef HAVE_INT_8_16_32
......
...@@ -728,11 +728,6 @@ case $SYSTEM_TYPE in ...@@ -728,11 +728,6 @@ case $SYSTEM_TYPE in
fi fi
CXXFLAGS="-D_BOOL" CXXFLAGS="-D_BOOL"
;; ;;
*dec-osf4*)
echo "Adding fix to not use gethostbyname_r"
CFLAGS="$CFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
CXXFLAGS="$CXXFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
;;
*aix4.3*) *aix4.3*)
echo "Adding defines for AIX" echo "Adding defines for AIX"
CFLAGS="$CFLAGS -Wa,-many -DUNDEF_HAVE_INITGROUPS" CFLAGS="$CFLAGS -Wa,-many -DUNDEF_HAVE_INITGROUPS"
...@@ -1341,7 +1336,7 @@ AC_LANG_RESTORE ...@@ -1341,7 +1336,7 @@ AC_LANG_RESTORE
CXXFLAGS="$ac_save_CXXFLAGS" CXXFLAGS="$ac_save_CXXFLAGS"
if test "$mysql_cv_gethostname_style" = "glibc2" if test "$mysql_cv_gethostname_style" = "glibc2"
then then
AC_DEFINE(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) AC_DEFINE(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
fi fi
# Check 3rd argument of getthostbyname_r # Check 3rd argument of getthostbyname_r
...@@ -1371,7 +1366,7 @@ AC_LANG_RESTORE ...@@ -1371,7 +1366,7 @@ AC_LANG_RESTORE
CXXFLAGS="$ac_save_CXXFLAGS" CXXFLAGS="$ac_save_CXXFLAGS"
if test "$mysql_cv_gethostname_arg" = "hostent_data" if test "$mysql_cv_gethostname_arg" = "hostent_data"
then then
AC_DEFINE(HAVE_GETHOSTBYNAME_R_WITH_HOSTENT_DATA) AC_DEFINE(HAVE_GETHOSTBYNAME_R_RETURN_INT)
fi fi
......
...@@ -234,7 +234,7 @@ extern int my_pthread_create_detached; ...@@ -234,7 +234,7 @@ extern int my_pthread_create_detached;
#define HAVE_LOCALTIME_R #define HAVE_LOCALTIME_R
#undef HAVE_PTHREAD_ATTR_SETSCOPE #undef HAVE_PTHREAD_ATTR_SETSCOPE
#define HAVE_PTHREAD_ATTR_SETSCOPE #define HAVE_PTHREAD_ATTR_SETSCOPE
#undef HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R /* If we are running linux */ #undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE /* If we are running linux */
#undef HAVE_RWLOCK_T #undef HAVE_RWLOCK_T
#undef HAVE_RWLOCK_INIT #undef HAVE_RWLOCK_INIT
#undef HAVE_PTHREAD_RWLOCK_RDLOCK #undef HAVE_PTHREAD_RWLOCK_RDLOCK
...@@ -378,28 +378,30 @@ struct tm *localtime_r(const time_t *clock, struct tm *res); ...@@ -378,28 +378,30 @@ struct tm *localtime_r(const time_t *clock, struct tm *res);
#define HAVE_PTHREAD_KILL #define HAVE_PTHREAD_KILL
#endif #endif
#if defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) #if defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
#if !defined(HPUX) #if !defined(HPUX)
struct hostent; struct hostent;
#endif /* HPUX */ #endif /* HPUX */
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *result, char *buffer,
int buflen, int *h_errnop); int buflen, int *h_errnop);
#if defined(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) #if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
#define GETHOSTBYNAME_BUFF_SIZE 2048 #define GETHOSTBYNAME_BUFF_SIZE 2048
#else #else
#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data) #define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
#endif /* defined(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) */ #endif /* defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
#else #else
#ifdef HAVE_GETHOSTBYNAME_R_WITH_HOSTENT_DATA #ifdef HAVE_GETHOSTBYNAME_R_RETURN_INT
#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data) #define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(struct hostent_data*) (C)) struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer,
int buflen, int *h_errnop);
#else #else
#define GETHOSTBYNAME_BUFF_SIZE 2048 #define GETHOSTBYNAME_BUFF_SIZE 2048
#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E)) #define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
#endif /* HAVE_GETHOSTBYNAME_R_WITH_HOSTENT_DATA */ #endif /* HAVE_GETHOSTBYNAME_R_RETURN_INT */
#endif /* defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) */ #endif /* defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
#endif /* defined(__WIN__) */ #endif /* defined(__WIN__) */
......
...@@ -90,9 +90,6 @@ length(repeat("a",65500)) length(concat(repeat("a",32000),repeat("a",32000))) le ...@@ -90,9 +90,6 @@ length(repeat("a",65500)) length(concat(repeat("a",32000),repeat("a",32000))) le
65500 64000 50000 60000 65500 64000 50000 60000
length(repeat("a",1000000)) length(concat(repeat("a",32000),repeat("a",32000),repeat("a",32000))) length(replace("aaaaa","a",concat(repeat("a",32000)))) length(insert(repeat("a",48000),1,1000,repeat("a",48000))) length(repeat("a",1000000)) length(concat(repeat("a",32000),repeat("a",32000),repeat("a",32000))) length(replace("aaaaa","a",concat(repeat("a",32000)))) length(insert(repeat("a",48000),1,1000,repeat("a",48000)))
1000000 96000 160000 95000 1000000 96000 160000 95000
Date Unix
1998-9-16 09:26:00 905927160
1998-9-16 09:26:00 905927160
domain domain
hello.de hello.de
domain domain
......
Date Unix
1998-9-16 09:26:00 905927160
1998-9-16 09:26:00 905927160
...@@ -64,15 +64,6 @@ select length(repeat("a",1000000)),length(concat(repeat("a",32000),repeat("a",32 ...@@ -64,15 +64,6 @@ select length(repeat("a",1000000)),length(concat(repeat("a",32000),repeat("a",32
# Problem med concat # Problem med concat
# #
drop table if exists t1;
create table t1 (Zeit time, Tag tinyint not null, Monat tinyint not null, Jahr smallint not null, index(Tag), index(Monat), index(Jahr) );
insert into t1 values ("09:26:00",16,9,1998);
insert into t1 values ("09:26:00",16,9,1998);
SELECT CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit) AS Date,
UNIX_TIMESTAMP(CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit)) AS Unix
FROM t1;
drop table t1;
create table t1 ( domain char(50) ); create table t1 ( domain char(50) );
insert into t1 VALUES ("hello.de" ), ("test.de" ); insert into t1 VALUES ("hello.de" ), ("test.de" );
select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@hello.de'; select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@hello.de';
......
#
# Tests that depend on the timestamp and the TZ variable
#
drop table if exists t1;
create table t1 (Zeit time, Tag tinyint not null, Monat tinyint not null,
Jahr smallint not null, index(Tag), index(Monat), index(Jahr) );
insert into t1 values ("09:26:00",16,9,1998),("09:26:00",16,9,1998);
SELECT CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit) AS Date,
UNIX_TIMESTAMP(CONCAT(Jahr,'-',Monat,'-',Tag,' ',Zeit)) AS Unix
FROM t1;
drop table t1;
...@@ -74,7 +74,7 @@ select distinct i from t1; ...@@ -74,7 +74,7 @@ select distinct i from t1;
select distinct i from t1 order by rand(5); select distinct i from t1 order by rand(5);
select distinct i from t1 order by i desc; select distinct i from t1 order by i desc;
select distinct i from t1 order by 1-i; select distinct i from t1 order by 1-i;
select distinct i from t1 order by mod(i,2); select distinct i from t1 order by mod(i,2),i;
drop table t1; drop table t1;
# #
......
...@@ -417,7 +417,7 @@ int my_pthread_cond_init(pthread_cond_t *mp, const pthread_condattr_t *attr) ...@@ -417,7 +417,7 @@ int my_pthread_cond_init(pthread_cond_t *mp, const pthread_condattr_t *attr)
#if !defined(my_gethostbyname_r) && defined(HAVE_GETHOSTBYNAME_R) #if !defined(my_gethostbyname_r) && defined(HAVE_GETHOSTBYNAME_R)
#if defined(HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R) #if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *result, char *buffer,
...@@ -430,7 +430,7 @@ struct hostent *my_gethostbyname_r(const char *name, ...@@ -430,7 +430,7 @@ struct hostent *my_gethostbyname_r(const char *name,
return hp; return hp;
} }
#elif defined(_HPUX_SOURCE) || (defined(_AIX) && !defined(_AIX32_THREADS)) #elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *result, char *buffer,
......
...@@ -1652,7 +1652,7 @@ mysql_execute_command(void) ...@@ -1652,7 +1652,7 @@ mysql_execute_command(void)
thd->locked_tables=0; // Will be automaticly closed thd->locked_tables=0; // Will be automaticly closed
close_thread_tables(thd); close_thread_tables(thd);
} }
if (check_db_used(thd,tables)) if (check_db_used(thd,tables) || end_active_trans(thd))
goto error; goto error;
thd->in_lock_tables=1; thd->in_lock_tables=1;
if (!(res=open_and_lock_tables(thd,tables))) if (!(res=open_and_lock_tables(thd,tables)))
......
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