mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +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
|
||||
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
|
||||
|
@ -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,'*')
|
||||
*+ *+*+ *
|
||||
|
@ -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;
|
||||
|
||||
#######################################################################
|
||||
# #
|
||||
|
@ -159,11 +159,11 @@ libinnobase_a_CXXFLAGS= $(AM_CFLAGS)
|
||||
libinnobase_a_CFLAGS = $(AM_CFLAGS)
|
||||
|
||||
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_CXXFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
ha_innodb_la_CFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
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 \
|
||||
|
@ -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) {
|
||||
|
@ -23,22 +23,17 @@ MYSQL_PLUGIN_ACTIONS(innobase, [
|
||||
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
|
||||
aix*)
|
||||
CFLAGS="$CFLAGS -DUNIV_AIX";;
|
||||
irix*|osf*|sysv5uw7*|openbsd*)
|
||||
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:
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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 */
|
||||
|
Reference in New Issue
Block a user