diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index e6eb895c6dc..03d3e019e99 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -3263,22 +3263,3 @@ AUTO_INCREMENT 200 DROP TABLE t2; DROP TABLE t1; -CREATE TABLE t1 (c1 int default NULL, -c2 int default NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -TRUNCATE TABLE t1; -affected rows: 0 -INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -TRUNCATE TABLE t1; -affected rows: 0 -DROP TABLE t1; -Variable_name Value -Handler_update 0 -Variable_name Value -Handler_delete 0 -Variable_name Value -Handler_update 1 -Variable_name Value -Handler_delete 1 diff --git a/mysql-test/r/mix2_myisam.result b/mysql-test/r/mix2_myisam.result index ee10f265933..cabc4de8d21 100644 --- a/mysql-test/r/mix2_myisam.result +++ b/mysql-test/r/mix2_myisam.result @@ -1415,7 +1415,6 @@ set @a=repeat(' ',20); insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a)); Warnings: Note 1265 Data truncated for column 'v' at row 1 -Note 1265 Data truncated for column 'c' at row 1 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+ *+*+ * diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index bed43bd9801..d7c5f00564d 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -2458,52 +2458,6 @@ SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't2'; DROP TABLE t2; DROP TABLE t1; # End 34920 test -# -# Bug #29507 TRUNCATE shows to many rows effected -# -CONNECTION default; -CREATE TABLE t1 (c1 int default NULL, - c2 int default NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; - ---enable_info -TRUNCATE TABLE t1; - -INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); -TRUNCATE TABLE t1; - ---disable_info -DROP TABLE t1; -# -# Bug#35537 Innodb doesn't increment handler_update and handler_delete. -# --- disable_query_log --- disable_result_log - -CONNECT (c1,localhost,root,,); - -DROP TABLE IF EXISTS bug35537; -CREATE TABLE bug35537 ( - c1 int -) ENGINE=InnoDB; - -INSERT INTO bug35537 VALUES (1); - --- enable_result_log - -SHOW SESSION STATUS LIKE 'Handler_update%'; -SHOW SESSION STATUS LIKE 'Handler_delete%'; - -UPDATE bug35537 SET c1 = 2 WHERE c1 = 1; -DELETE FROM bug35537 WHERE c1 = 2; - -SHOW SESSION STATUS LIKE 'Handler_update%'; -SHOW SESSION STATUS LIKE 'Handler_delete%'; - -DROP TABLE bug35537; - -DISCONNECT c1; -CONNECTION default; ####################################################################### # # diff --git a/storage/innobase/Makefile.am b/storage/innobase/Makefile.am index 7410bf7e591..563522cd032 100644 --- a/storage/innobase/Makefile.am +++ b/storage/innobase/Makefile.am @@ -15,21 +15,21 @@ # Process this file with automake to create Makefile.in -MYSQLDATAdir= $(localstatedir) -MYSQLSHAREdir= $(pkgdatadir) -MYSQLBASEdir= $(prefix) -MYSQLLIBdir= $(pkglibdir) -pkgplugindir= $(pkglibdir)/plugin -INCLUDES= -I$(top_srcdir)/include -I$(top_builddir)/include \ +MYSQLDATAdir = $(localstatedir) +MYSQLSHAREdir = $(pkgdatadir) +MYSQLBASEdir= $(prefix) +MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(pkglibdir)/plugin +INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/storage/innobase/include \ -I$(top_srcdir)/sql \ - -I$(srcdir) + -I$(srcdir) -DEFS= @DEFS@ +DEFS = @DEFS@ -noinst_HEADERS= include/btr0btr.h include/btr0btr.ic \ +noinst_HEADERS = include/btr0btr.h include/btr0btr.ic \ include/btr0cur.h include/btr0cur.ic \ include/btr0pcur.h include/btr0pcur.ic \ include/btr0sea.h include/btr0sea.ic \ @@ -121,9 +121,9 @@ noinst_HEADERS= include/btr0btr.h include/btr0btr.ic \ include/ut0list.ic include/ut0wqueue.h \ include/ha_prototypes.h handler/ha_innodb.h -EXTRA_LIBRARIES= libinnobase.a -noinst_LIBRARIES= @plugin_innobase_static_target@ -libinnobase_a_SOURCES= btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c \ +EXTRA_LIBRARIES = libinnobase.a +noinst_LIBRARIES = @plugin_innobase_static_target@ +libinnobase_a_SOURCES = btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c \ btr/btr0sea.c buf/buf0buf.c buf/buf0flu.c \ buf/buf0lru.c buf/buf0rea.c data/data0data.c \ data/data0type.c dict/dict0boot.c \ @@ -156,17 +156,17 @@ libinnobase_a_SOURCES= btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c \ handler/ha_innodb.cc libinnobase_a_CXXFLAGS= $(AM_CFLAGS) -libinnobase_a_CFLAGS= $(AM_CFLAGS) +libinnobase_a_CFLAGS = $(AM_CFLAGS) -EXTRA_LTLIBRARIES= ha_innodb.la -pkgplugin_LTLIBRARIES= @plugin_innobase_shared_target@ +EXTRA_LTLIBRARIES = ha_innodb.la +pkglib_LTLIBRARIES = @plugin_innobase_shared_target@ -ha_innodb_la_LDFLAGS= -module -rpath $(pkgplugindir) -ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS) -ha_innodb_la_CFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS) -ha_innodb_la_SOURCES= $(libinnobase_a_SOURCES) +ha_innodb_la_LDFLAGS = -module -rpath $(pkgplugindir) +ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN +ha_innodb_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN +ha_innodb_la_SOURCES = $(libinnobase_a_SOURCES) -EXTRA_DIST= CMakeLists.txt plug.in \ +EXTRA_DIST = CMakeLists.txt plug.in \ pars/make_bison.sh pars/make_flex.sh \ pars/pars0grm.y pars/pars0lex.l diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 2e0cdfd670c..28221f921ef 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -3752,8 +3752,6 @@ ha_innobase::update_row( ut_a(prebuilt->trx == trx); - ha_statistic_increment(&SSV::ha_update_count); - if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE) table->timestamp_field->set_time(); @@ -3843,8 +3841,6 @@ ha_innobase::delete_row( ut_a(prebuilt->trx == trx); - ha_statistic_increment(&SSV::ha_delete_count); - /* Only if the table has an AUTOINC column */ if (table->found_next_number_field && record == table->record[0]) { ulonglong dummy = 0; @@ -5786,13 +5782,6 @@ ha_innobase::info( n_rows++; } - /* Fix bug#29507: TRUNCATE shows too many rows affected. - Do not show the estimates for TRUNCATE command. */ - if (thd_sql_command(user_thd) == SQLCOM_TRUNCATE) { - - n_rows = 0; - } - stats.records = (ha_rows)n_rows; stats.deleted = 0; stats.data_file_length = ((ulonglong) @@ -5803,7 +5792,7 @@ ha_innobase::info( * UNIV_PAGE_SIZE; stats.delete_length = fsp_get_available_space_in_free_extents( - ib_table->space) * 1024; + ib_table->space); stats.check_time = 0; if (stats.records == 0) { diff --git a/storage/innobase/plug.in b/storage/innobase/plug.in index f7d2abed751..b252d471fba 100644 --- a/storage/innobase/plug.in +++ b/storage/innobase/plug.in @@ -15,30 +15,25 @@ MYSQL_PLUGIN_ACTIONS(innobase, [ AC_CHECK_FUNCS(localtime_r) AC_C_BIGENDIAN case "$target_os" in - lin*) - CFLAGS="$CFLAGS -DUNIV_LINUX";; - hpux10*) - CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";; - hp*) - CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";; - aix*) - CFLAGS="$CFLAGS -DUNIV_AIX";; - irix*|osf*|sysv5uw7*|openbsd*) - CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; - *solaris*|*SunOS*) - CFLAGS="$CFLAGS -DUNIV_SOLARIS";; + lin*) + CFLAGS="$CFLAGS -DUNIV_LINUX";; + hpux10*) + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";; + hp*) + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";; + aix*) + CFLAGS="$CFLAGS -DUNIV_AIX";; + irix*) + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; + osf*) + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; + *solaris*|*SunOS*) + CFLAGS="$CFLAGS -DUNIV_SOLARIS";; + sysv5uw7*) + # Problem when linking on SCO + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; + openbsd*) + CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";; esac - INNODB_DYNAMIC_CFLAGS="-DMYSQL_DYNAMIC_PLUGIN" - case "$target_cpu" in - x86_64) - # The AMD64 ABI forbids absolute addresses in shared libraries - ;; - *86) - # Use absolute addresses on IA-32 - INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic" - ;; - esac - AC_SUBST(INNODB_DYNAMIC_CFLAGS) ]) -# vim: set ft=config: diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index f5228618a04..d5ef12d0af2 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -1963,7 +1963,6 @@ row_create_index_for_mysql( ulint err; ulint i, j; ulint len; - char* table_name; #ifdef UNIV_SYNC_DEBUG ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); @@ -1973,11 +1972,6 @@ row_create_index_for_mysql( trx->op_info = "creating index"; - /* Copy the table name because we may want to drop the - table later, after the index object is freed (inside - que_run_threads()) and thus index->table_name is not available. */ - table_name = mem_strdup(index->table_name); - trx_start_if_not_started(trx); /* Check that the same column does not appear twice in the index. @@ -2050,15 +2044,13 @@ error_handling: trx_general_rollback_for_mysql(trx, FALSE, NULL); - row_drop_table_for_mysql(table_name, trx, FALSE); + row_drop_table_for_mysql(index->table_name, trx, FALSE); trx->error_state = DB_SUCCESS; } trx->op_info = ""; - mem_free(table_name); - return((int) err); } diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index 616b442ccbd..9d2e08e0929 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -3577,9 +3577,9 @@ shortcut_fails_too_big_rec: if (trx->isolation_level <= TRX_ISO_READ_COMMITTED && prebuilt->select_lock_type != LOCK_NONE - && trx->mysql_thd != NULL && trx->mysql_query_str != NULL - && *trx->mysql_query_str != NULL) { + && *trx->mysql_query_str != NULL + && trx->mysql_thd != NULL) { /* Scan the MySQL query string; check if SELECT is the first word there */