mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
revert the following CS on grounds of "right patch, wrong time":
"Apply InnoDB snapshot innodb-5.1-ss2438. Addresses the following bugs: Change the fix for Bug#32440 to show bytes instead of kilobytes in INFORMATION_SCHEMA.TABLES.DATA_FREE. branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected In InnoDB, the row count is only a rough estimate used by SQL optimization. InnoDB is now return row count 0 for TRUNCATE operation. branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update and handler_delete Add the calls to ha_statistic_increment() in ha_innobase::delete_row() and ha_innobase::update_row(). Fix Bug#36169 create innodb compressed table with too large row size crash Sometimes it is possible that row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in row_create_index_for_mysql() when the index object is freed so copy the table name to a safe place beforehand and use the copy. Fix Bug#36434 ha_innodb.so is installed in the wrong directory Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been forgotten in this commit: http://lists.mysql.com/commits/40206" mysql-test/r/innodb.result: revert InnoDB snapshot innodb-5.1-ss2438 mysql-test/r/mix2_myisam.result: merge-fixes: undoing previous unspecified post-merge fixes by kaa a/o 2008/2/13 (1.7) mysql-test/t/innodb.test: revert InnoDB snapshot innodb-5.1-ss2438 storage/innobase/Makefile.am: revert InnoDB snapshot innodb-5.1-ss2438 storage/innobase/handler/ha_innodb.cc: revert InnoDB snapshot innodb-5.1-ss2438 storage/innobase/plug.in: revert InnoDB snapshot innodb-5.1-ss2438 storage/innobase/row/row0mysql.c: revert InnoDB snapshot innodb-5.1-ss2438 storage/innobase/row/row0sel.c: revert InnoDB snapshot innodb-5.1-ss2438
This commit is contained in:
@ -3263,22 +3263,3 @@ AUTO_INCREMENT
|
|||||||
200
|
200
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
DROP TABLE t1;
|
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
|
|
||||||
|
@ -1415,7 +1415,6 @@ set @a=repeat(' ',20);
|
|||||||
insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
|
insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1265 Data truncated for column 'v' at row 1
|
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;
|
select concat('*',v,'*',c,'*',t,'*') from t1;
|
||||||
concat('*',v,'*',c,'*',t,'*')
|
concat('*',v,'*',c,'*',t,'*')
|
||||||
*+ *+*+ *
|
*+ *+*+ *
|
||||||
|
@ -2458,52 +2458,6 @@ SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't2';
|
|||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# End 34920 test
|
# 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;
|
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# #
|
# #
|
||||||
|
@ -15,21 +15,21 @@
|
|||||||
|
|
||||||
# Process this file with automake to create Makefile.in
|
# Process this file with automake to create Makefile.in
|
||||||
|
|
||||||
MYSQLDATAdir= $(localstatedir)
|
MYSQLDATAdir = $(localstatedir)
|
||||||
MYSQLSHAREdir= $(pkgdatadir)
|
MYSQLSHAREdir = $(pkgdatadir)
|
||||||
MYSQLBASEdir= $(prefix)
|
MYSQLBASEdir= $(prefix)
|
||||||
MYSQLLIBdir= $(pkglibdir)
|
MYSQLLIBdir= $(pkglibdir)
|
||||||
pkgplugindir= $(pkglibdir)/plugin
|
pkgplugindir = $(pkglibdir)/plugin
|
||||||
INCLUDES= -I$(top_srcdir)/include -I$(top_builddir)/include \
|
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
|
||||||
-I$(top_srcdir)/regex \
|
-I$(top_srcdir)/regex \
|
||||||
-I$(top_srcdir)/storage/innobase/include \
|
-I$(top_srcdir)/storage/innobase/include \
|
||||||
-I$(top_srcdir)/sql \
|
-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/btr0cur.h include/btr0cur.ic \
|
||||||
include/btr0pcur.h include/btr0pcur.ic \
|
include/btr0pcur.h include/btr0pcur.ic \
|
||||||
include/btr0sea.h include/btr0sea.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/ut0list.ic include/ut0wqueue.h \
|
||||||
include/ha_prototypes.h handler/ha_innodb.h
|
include/ha_prototypes.h handler/ha_innodb.h
|
||||||
|
|
||||||
EXTRA_LIBRARIES= libinnobase.a
|
EXTRA_LIBRARIES = libinnobase.a
|
||||||
noinst_LIBRARIES= @plugin_innobase_static_target@
|
noinst_LIBRARIES = @plugin_innobase_static_target@
|
||||||
libinnobase_a_SOURCES= btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c \
|
libinnobase_a_SOURCES = btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c \
|
||||||
btr/btr0sea.c buf/buf0buf.c buf/buf0flu.c \
|
btr/btr0sea.c buf/buf0buf.c buf/buf0flu.c \
|
||||||
buf/buf0lru.c buf/buf0rea.c data/data0data.c \
|
buf/buf0lru.c buf/buf0rea.c data/data0data.c \
|
||||||
data/data0type.c dict/dict0boot.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
|
handler/ha_innodb.cc
|
||||||
|
|
||||||
libinnobase_a_CXXFLAGS= $(AM_CFLAGS)
|
libinnobase_a_CXXFLAGS= $(AM_CFLAGS)
|
||||||
libinnobase_a_CFLAGS= $(AM_CFLAGS)
|
libinnobase_a_CFLAGS = $(AM_CFLAGS)
|
||||||
|
|
||||||
EXTRA_LTLIBRARIES= ha_innodb.la
|
EXTRA_LTLIBRARIES = ha_innodb.la
|
||||||
pkgplugin_LTLIBRARIES= @plugin_innobase_shared_target@
|
pkglib_LTLIBRARIES = @plugin_innobase_shared_target@
|
||||||
|
|
||||||
ha_innodb_la_LDFLAGS= -module -rpath $(pkgplugindir)
|
ha_innodb_la_LDFLAGS = -module -rpath $(pkgplugindir)
|
||||||
ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||||
ha_innodb_la_CFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
ha_innodb_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||||
ha_innodb_la_SOURCES= $(libinnobase_a_SOURCES)
|
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/make_bison.sh pars/make_flex.sh \
|
||||||
pars/pars0grm.y pars/pars0lex.l
|
pars/pars0grm.y pars/pars0lex.l
|
||||||
|
|
||||||
|
@ -3752,8 +3752,6 @@ ha_innobase::update_row(
|
|||||||
|
|
||||||
ut_a(prebuilt->trx == trx);
|
ut_a(prebuilt->trx == trx);
|
||||||
|
|
||||||
ha_statistic_increment(&SSV::ha_update_count);
|
|
||||||
|
|
||||||
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE)
|
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE)
|
||||||
table->timestamp_field->set_time();
|
table->timestamp_field->set_time();
|
||||||
|
|
||||||
@ -3843,8 +3841,6 @@ ha_innobase::delete_row(
|
|||||||
|
|
||||||
ut_a(prebuilt->trx == trx);
|
ut_a(prebuilt->trx == trx);
|
||||||
|
|
||||||
ha_statistic_increment(&SSV::ha_delete_count);
|
|
||||||
|
|
||||||
/* Only if the table has an AUTOINC column */
|
/* Only if the table has an AUTOINC column */
|
||||||
if (table->found_next_number_field && record == table->record[0]) {
|
if (table->found_next_number_field && record == table->record[0]) {
|
||||||
ulonglong dummy = 0;
|
ulonglong dummy = 0;
|
||||||
@ -5786,13 +5782,6 @@ ha_innobase::info(
|
|||||||
n_rows++;
|
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.records = (ha_rows)n_rows;
|
||||||
stats.deleted = 0;
|
stats.deleted = 0;
|
||||||
stats.data_file_length = ((ulonglong)
|
stats.data_file_length = ((ulonglong)
|
||||||
@ -5803,7 +5792,7 @@ ha_innobase::info(
|
|||||||
* UNIV_PAGE_SIZE;
|
* UNIV_PAGE_SIZE;
|
||||||
stats.delete_length =
|
stats.delete_length =
|
||||||
fsp_get_available_space_in_free_extents(
|
fsp_get_available_space_in_free_extents(
|
||||||
ib_table->space) * 1024;
|
ib_table->space);
|
||||||
stats.check_time = 0;
|
stats.check_time = 0;
|
||||||
|
|
||||||
if (stats.records == 0) {
|
if (stats.records == 0) {
|
||||||
|
@ -23,22 +23,17 @@ MYSQL_PLUGIN_ACTIONS(innobase, [
|
|||||||
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
|
||||||
aix*)
|
aix*)
|
||||||
CFLAGS="$CFLAGS -DUNIV_AIX";;
|
CFLAGS="$CFLAGS -DUNIV_AIX";;
|
||||||
irix*|osf*|sysv5uw7*|openbsd*)
|
irix*)
|
||||||
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
||||||
|
osf*)
|
||||||
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
||||||
*solaris*|*SunOS*)
|
*solaris*|*SunOS*)
|
||||||
CFLAGS="$CFLAGS -DUNIV_SOLARIS";;
|
CFLAGS="$CFLAGS -DUNIV_SOLARIS";;
|
||||||
|
sysv5uw7*)
|
||||||
|
# Problem when linking on SCO
|
||||||
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
||||||
|
openbsd*)
|
||||||
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
||||||
esac
|
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:
|
|
||||||
|
@ -1963,7 +1963,6 @@ row_create_index_for_mysql(
|
|||||||
ulint err;
|
ulint err;
|
||||||
ulint i, j;
|
ulint i, j;
|
||||||
ulint len;
|
ulint len;
|
||||||
char* table_name;
|
|
||||||
|
|
||||||
#ifdef UNIV_SYNC_DEBUG
|
#ifdef UNIV_SYNC_DEBUG
|
||||||
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
|
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";
|
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);
|
trx_start_if_not_started(trx);
|
||||||
|
|
||||||
/* Check that the same column does not appear twice in the index.
|
/* 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);
|
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->error_state = DB_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
trx->op_info = "";
|
trx->op_info = "";
|
||||||
|
|
||||||
mem_free(table_name);
|
|
||||||
|
|
||||||
return((int) err);
|
return((int) err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3577,9 +3577,9 @@ shortcut_fails_too_big_rec:
|
|||||||
|
|
||||||
if (trx->isolation_level <= TRX_ISO_READ_COMMITTED
|
if (trx->isolation_level <= TRX_ISO_READ_COMMITTED
|
||||||
&& prebuilt->select_lock_type != LOCK_NONE
|
&& 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_query_str != NULL
|
||||||
|
&& trx->mysql_thd != NULL) {
|
||||||
|
|
||||||
/* Scan the MySQL query string; check if SELECT is the first
|
/* Scan the MySQL query string; check if SELECT is the first
|
||||||
word there */
|
word there */
|
||||||
|
Reference in New Issue
Block a user