Commit 888f09c7 authored by unknown's avatar unknown

merged


BitKeeper/etc/logging_ok:
  auto-union
Build-tools/Do-compile:
  Auto merged
Docs/manual.texi:
  Auto merged
innobase/configure.in:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/os/os0thread.c:
  Auto merged
innobase/pars/lexyy.c:
  Auto merged
innobase/pars/pars0grm.c:
  Auto merged
innobase/pars/pars0grm.y:
  Auto merged
innobase/pars/pars0lex.l:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
parents f37a8a40 3bf098bf
...@@ -29,6 +29,7 @@ jorge@linux.jorge.mysql.com ...@@ -29,6 +29,7 @@ jorge@linux.jorge.mysql.com
kaj@work.mysql.com kaj@work.mysql.com
lenz@kallisto.mysql.com lenz@kallisto.mysql.com
lenz@mysql.com lenz@mysql.com
miguel@hegel.br
miguel@hegel.local miguel@hegel.local
miguel@light.local miguel@light.local
monty@bitch.mysql.fi monty@bitch.mysql.fi
...@@ -43,6 +44,7 @@ monty@tramp.mysql.fi ...@@ -43,6 +44,7 @@ monty@tramp.mysql.fi
monty@work.mysql.com monty@work.mysql.com
mwagner@cash.mwagner.org mwagner@cash.mwagner.org
mwagner@evoq.mwagner.org mwagner@evoq.mwagner.org
nick@mysql.com
nick@nick.leippe.com nick@nick.leippe.com
paul@central.snake.net paul@central.snake.net
paul@teton.kitebird.com paul@teton.kitebird.com
...@@ -75,5 +77,3 @@ worm@altair.is.lan ...@@ -75,5 +77,3 @@ worm@altair.is.lan
zak@balfor.local zak@balfor.local
zak@linux.local zak@linux.local
zgreant@mysql.com zgreant@mysql.com
miguel@hegel.br
nick@mysql.com
...@@ -51057,11 +51057,14 @@ not yet 100% confident in this code. ...@@ -51057,11 +51057,14 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.53 @appendixsubsec Changes in release 3.23.53
@itemize @bullet @itemize @bullet
@item @item
Fixed a @code{BDB}-related @code{ALTER TABLE} bug with dropping a column
and shutting down immediately thereafter.
@item
Fixed problem with @code{configure ... --localstatedir=...}. Fixed problem with @code{configure ... --localstatedir=...}.
@item @item
Fixed problem with @code{UNSIGNED BIGINT} on AIX (again). Fixed problem with @code{UNSIGNED BIGINT} on AIX (again).
@item @item
Fixed bug in pthread_mutex_trylock() on HPUX 11.0 Fixed bug in pthread_mutex_trylock() on HPUX 11.0.
@item @item
Multithreaded stress tests for InnoDB. Multithreaded stress tests for InnoDB.
@end itemize @end itemize
...@@ -90,6 +90,8 @@ case "$target_os" in ...@@ -90,6 +90,8 @@ case "$target_os" in
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";; CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";;
hp*) hp*)
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";; CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
aix*)
CFLAGS="$CFLAGS -DUNIV_AIX";;
irix*) irix*)
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
osf*) osf*)
......
...@@ -11,6 +11,7 @@ Created 10/21/1995 Heikki Tuuri ...@@ -11,6 +11,7 @@ Created 10/21/1995 Heikki Tuuri
#include "ut0mem.h" #include "ut0mem.h"
#include "srv0srv.h" #include "srv0srv.h"
#include "fil0fil.h" #include "fil0fil.h"
#include "buf0buf.h"
#undef HAVE_FDATASYNC #undef HAVE_FDATASYNC
...@@ -2105,6 +2106,7 @@ os_aio_simulated_handle( ...@@ -2105,6 +2106,7 @@ os_aio_simulated_handle(
ibool ret; ibool ret;
ulint n; ulint n;
ulint i; ulint i;
ulint len2;
segment = os_aio_get_array_and_local_segment(&array, global_segment); segment = os_aio_get_array_and_local_segment(&array, global_segment);
...@@ -2260,6 +2262,29 @@ os_aio_simulated_handle( ...@@ -2260,6 +2262,29 @@ os_aio_simulated_handle(
/* Do the i/o with ordinary, synchronous i/o functions: */ /* Do the i/o with ordinary, synchronous i/o functions: */
if (slot->type == OS_FILE_WRITE) { if (slot->type == OS_FILE_WRITE) {
if (array == os_aio_write_array) {
/* Do a 'last millisecond' check that the page end
is sensible; reported page checksum errors from
Linux seem to wipe over the page end */
for (len2 = 0; len2 + UNIV_PAGE_SIZE <= total_len;
len2 += UNIV_PAGE_SIZE) {
if (mach_read_from_4(combined_buf + len2
+ FIL_PAGE_LSN + 4)
!= mach_read_from_4(combined_buf + len2
+ UNIV_PAGE_SIZE
- FIL_PAGE_END_LSN + 4)) {
ut_print_timestamp(stderr);
fprintf(stderr,
" InnoDB: ERROR: The page to be written seems corrupt!\n");
page_print(combined_buf + len2);
fprintf(stderr,
"InnoDB: ERROR: The page to be written seems corrupt!\n");
}
}
}
ret = os_file_write(slot->name, slot->file, combined_buf, ret = os_file_write(slot->name, slot->file, combined_buf,
slot->offset, slot->offset_high, total_len); slot->offset, slot->offset_high, total_len);
} else { } else {
......
...@@ -128,8 +128,28 @@ os_thread_create( ...@@ -128,8 +128,28 @@ os_thread_create(
pthread_attr_init(&attr); pthread_attr_init(&attr);
#ifdef UNIV_AIX
/* We must make sure a thread stack is at least 32 kB, otherwise
InnoDB might crash; we do not know if the default stack size on
AIX is always big enough. An empirical test on AIX-4.3 suggested
the size was 96 kB, though. */
ret = pthread_attr_setstacksize(&attr,
(size_t)(PTHREAD_STACK_MIN + 32 * 1024));
if (ret) {
fprintf(stderr,
"InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret);
exit(1);
}
#endif
ret = pthread_create(&pthread, &attr, start_f, arg); ret = pthread_create(&pthread, &attr, start_f, arg);
if (ret) {
fprintf(stderr,
"InnoDB: Error: pthread_create returned %d\n", ret);
exit(1);
}
pthread_attr_destroy(&attr); pthread_attr_destroy(&attr);
if (srv_set_thread_priorities) { if (srv_set_thread_priorities) {
......
...@@ -1350,7 +1350,9 @@ row_create_table_for_mysql( ...@@ -1350,7 +1350,9 @@ row_create_table_for_mysql(
"InnoDB: creating an InnoDB table with the same name in another\n" "InnoDB: creating an InnoDB table with the same name in another\n"
"InnoDB: database and moving the .frm file to the current database.\n" "InnoDB: database and moving the .frm file to the current database.\n"
"InnoDB: Then MySQL thinks the table exists, and DROP TABLE will\n" "InnoDB: Then MySQL thinks the table exists, and DROP TABLE will\n"
"InnoDB: succeed.\n"); "InnoDB: succeed.\n"
"InnoDB: You can look further help from section 15.1 of\n"
"InnoDB: http://www.innodb.com/ibman.html\n");
} }
trx->error_state = DB_SUCCESS; trx->error_state = DB_SUCCESS;
...@@ -1872,7 +1874,9 @@ row_drop_table_for_mysql( ...@@ -1872,7 +1874,9 @@ row_drop_table_for_mysql(
" InnoDB: Error: table %s does not exist in the InnoDB internal\n" " InnoDB: Error: table %s does not exist in the InnoDB internal\n"
"InnoDB: data dictionary though MySQL is trying to drop it.\n" "InnoDB: data dictionary though MySQL is trying to drop it.\n"
"InnoDB: Have you copied the .frm file of the table to the\n" "InnoDB: Have you copied the .frm file of the table to the\n"
"InnoDB: MySQL database directory from another database?\n", "InnoDB: MySQL database directory from another database?\n"
"InnoDB: You can look further help from section 15.1 of\n"
"InnoDB: http://www.innodb.com/ibman.html\n",
name); name);
goto funct_exit; goto funct_exit;
} }
...@@ -2194,7 +2198,9 @@ row_rename_table_for_mysql( ...@@ -2194,7 +2198,9 @@ row_rename_table_for_mysql(
fprintf(stderr, fprintf(stderr,
" InnoDB: Error: table %s exists in the InnoDB internal data\n" " InnoDB: Error: table %s exists in the InnoDB internal data\n"
"InnoDB: dictionary though MySQL is trying rename table %s to it.\n" "InnoDB: dictionary though MySQL is trying rename table %s to it.\n"
"InnoDB: Have you deleted the .frm file and not used DROP TABLE?\n", "InnoDB: Have you deleted the .frm file and not used DROP TABLE?\n"
"InnoDB: You can look further help from section 15.1 of\n"
"InnoDB: http://www.innodb.com/ibman.html\n",
new_name, old_name); new_name, old_name);
fprintf(stderr, fprintf(stderr,
......
objid tablename oid test
1 t1 4 9
2 metatable 1 9
3 metaindex 1 9
objid tablename oid
1 t1 4
2 metatable 1
3 metaindex 1
-- source include/have_bdb.inc
#
# Small basic test for ALTER TABLE bug ..
#
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)) type=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;
-- source include/have_bdb.inc
select * from t1;
drop table t1;
\ No newline at end of file
...@@ -975,7 +975,9 @@ Cannot find table %s from the internal data dictionary\n\ ...@@ -975,7 +975,9 @@ Cannot find table %s from the internal data dictionary\n\
of InnoDB though the .frm file for the table exists. Maybe you\n\ of InnoDB though the .frm file for the table exists. Maybe you\n\
have deleted and recreated InnoDB data files but have forgotten\n\ have deleted and recreated InnoDB data files but have forgotten\n\
to delete the corresponding .frm files of InnoDB tables, or you\n\ to delete the corresponding .frm files of InnoDB tables, or you\n\
have moved .frm files to another database?", have moved .frm files to another database?\n\
Look from section 15.1 of http://www.innodb.com/ibman.html\n\
how you can resolve the problem.\n",
norm_name); norm_name);
free_share(share); free_share(share);
......
...@@ -1871,11 +1871,6 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -1871,11 +1871,6 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
VOID(pthread_cond_broadcast(&COND_refresh)); VOID(pthread_cond_broadcast(&COND_refresh));
goto err; goto err;
} }
#ifdef HAVE_BERKELEY_DB
extern bool berkeley_flush_logs(void);
if (old_db_type == DB_TYPE_BERKELEY_DB && berkeley_flush_logs())
goto err;
#endif
thd->proc_info="end"; thd->proc_info="end";
mysql_update_log.write(thd, thd->query,thd->query_length); mysql_update_log.write(thd, thd->query,thd->query_length);
if (mysql_bin_log.is_open()) if (mysql_bin_log.is_open())
...@@ -1885,6 +1880,14 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -1885,6 +1880,14 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
} }
VOID(pthread_cond_broadcast(&COND_refresh)); VOID(pthread_cond_broadcast(&COND_refresh));
VOID(pthread_mutex_unlock(&LOCK_open)); VOID(pthread_mutex_unlock(&LOCK_open));
#ifdef HAVE_BERKELEY_DB
if (old_db_type == DB_TYPE_BERKELEY_DB)
{
extern bool berkeley_flush_logs(void);
(void)berkeley_flush_logs();
table=open_ltable(thd,table_list,TL_READ);
}
#endif
table_list->table=0; // For query cache table_list->table=0; // For query cache
query_cache_invalidate3(thd, table_list, 0); query_cache_invalidate3(thd, table_list, 0);
......
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