Change the fix for Bug#32440 to show bytes instead of kilobytes in
INFORMATION_SCHEMA.TABLES.DATA_FREE.
Suggested by: Domas Mituzas <domas@mysql.com>
Approved by: Heikki
HA_CREATE_USED_ROW_FORMAT before comparing row_type. Previously,
the comparison was incorrectly guarded by the presence of an
AUTO_INCREMENT attribute.
new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
the assertion where it crashed previously, since the type has now changed
to unsigned, it doesn't make sense to check for < 0. Added new tests, to
check for overflow, for the different INT types supported for both
signed and unsigned.
Fixes Bug# 34335
Fix Bug#34053:
* In CREATE TABLE and DROP TABLE check whether the table in question is one
of the magic innodb_monitor tables and whether the user has enough rights
to mess with it before doing anything else.
* Implement a mysql-test testcase.
Approved by: Heikki
Rename the user visible parameter innodb-use-adaptive-hash-indexes to
innodb-adaptive-hash-index so that it is in sync with MySQL 5.0.
Suggested by: Heikki
Approved by: Heikki
Fix formatting of the autoinc-lock-mode command line parameter.
Old view (./mysqld --help --verbose):
--innodb-autoinc-lock-mode=#
The AUTOINC lock modes supported by InnoDB:
0 => Old
style AUTOINC locking (for backward compatibility)
1 =>
New style AUTOINC locking
2 => No AUTOINC locking
(unsafe for SBR)
New view:
--innodb-autoinc-lock-mode=#
The AUTOINC lock modes supported by InnoDB:
0 => Old style AUTOINC locking (for backward
compatibility)
1 => New style AUTOINC locking
2 => No AUTOINC locking (unsafe for SBR)
Looks like these strings are "automatically" wrapped by MySQL in the
following way:
* newlines (\n) in the string are ignored
* newline separator (\n) is inserted every 57 or so characters.
* lots of white space is appended to each inserted new line.
Approved by: Heikki
Introduce retry/sleep logic as a workaround for a transient bug
where ::open fails for partitioned tables randomly if we are using
one file per table.
Reviewed by: Heikki
Merge r2177 from trunk/:
Fix Bug#29157 "UPDATE, changed rows incorrect":
Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
columns were updated.
Merge r2166:2168 from trunk/:
Bug#32440:
Put information about the free space in a tablespace in
INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
removed it from there recently.
The stored value is in kilobytes.
This can be considered as a permanent workaround to
http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
data missing from TABLE_COMMENT and this is actually not solved.
is an exact match of a MySQL BitKeeper tree.
Apply r2116:
------------------------------------------------------------------------
r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
Set trx->mysql_query_str to NULL at transaction commit.
It could be a problem if someone looks at it after that because MySQL may
have free()d it then.
Approved by: Heikki (via IM)
------------------------------------------------------------------------
innodb.test, innodb.result:
Add some tests that were apparently accidentally removed in
ChangeSet@1.2598.2.6 2007-11-06 15:42:58-07:00 tsmith@hindu.god
Apply snapshot innodb-5.1-ss1989
ha_innodb.cc: Add a decorative comment.
Revert r2116:
------------------------------------------------------------------------
r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
Set trx->mysql_query_str to NULL at transaction commit.
It could be a problem if someone looks at it after that because MySQL may
have free()d it then.
Approved by: Heikki (via IM)
------------------------------------------------------------------------
innodb.test, innodb.result:
Remove some tests that were apparently accidentally removed in
ChangeSet@1.2598.2.6 2007-11-06 15:42:58-07:00 tsmith@hindu.god
Apply snapshot innodb-5.1-ss1989
ha_innodb.cc: Remove a decorative comment.
This tree should be an exact match of the following MySQL source tree:
bk://mysql.bkbits.net/mysql-5.1
ROOTKEY=3985cf0cwNRCED_XNSCA7RvkLPer2Q
TIPKEY=47447c7cTrSPx22mH8PXNmurrycaaw
bkf changes | head
ChangeSet@1.2634.1.2, 2007-11-21 19:42:50+01:00, df@pippilotta.erinye.com +1 -0
Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
MERGE: 1.1810.3425.2
ChangeSet@1.1810.3425.2, 2007-11-21 19:41:13+01:00, df@pippilotta.erinye.com +1 -0
add wrong warning to suppression file
ChangeSet@1.2634.1.1, 2007-11-21 19:33:27+01:00, df@pippilotta.erinye.com +1 -0
Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
into pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
MERGE: 1.1810.3425.1
ChangeSet@1.1810.3425.1, 2007-11-21 18:11:08+01:00, df@pippilotta.erinye.com +1 -0
ignore readline warnings
ChangeSet@1.2635, 2007-11-21 15:06:38+01:00, mleich@five.local.lan +6 -0
Merge five.local.lan:/work/merge/mysql-5.0-build-30418
into five.local.lan:/work/merge/mysql-5.1-build-31610
MERGE: 1.1810.3284.72
ChangeSet@1.2598.6.1 2007-11-07 12:59:22-07:00 tsmith@hindu.god
Cast away compiler warning on Windows.
ha_innodb.cc:
Cast away a compiler warning; some functions return ulong or ulint for
errors, and some use int. Let's hope these all fit in an int.
ChangeSet@1.2528.116.44 2007-09-12 18:16:50-07:00 antony@xiphis.org
Changes for pushbuild test runs and VSC compile warnings
ha_innodb.cc:
resolve a VSC++ typecast compile warning.
ChangeSet@1.2528.116.42 2007-09-08 20:26:12-07:00 antony@xiphis.org
Bug#30919
"Rows not deleted from innodb partitioned tables if
--innodb_autoinc_lock_mode=0"
Due to a previous bugfix which initializes a previously uninitialized
variable, ha_partition::get_auto_increment() may fail to operate
correctly when the storage engine reports that it is only reserving
one value and one or more partitions have a different 'next-value'.
Currently, only affects Innodb's new-style auto-increment code which
reserves larger blocks of values and has less inter-thread contention.
ha_innodb.cc:
Bug30919
Only set *first_value if it is less than autoinc value. This allows
a higher value to be hinted when operating as a partitioned table.
ChangeSet@1.2528.116.40 2007-09-08 11:19:35-07:00 acurtis@xiphis.org
Bug#30907
"Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
Bug#28430
"Failure in replication of innodb partitioned tables on row/mixed format"
Bug#30888
"Innodb table + stored procedure + row deletion = server crash"
Apply Oracle patch from Sunny
Include tests cases by Omer
Ensure that innobase_read_and_init_auto performs table autoinc lock when
lock_mode = 0
No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
it already performs same check.
Make autoinc_lock_mode variable read-only for duration of running
mysqld process.
ha_innodb.cc:
Bug30907/28430
"Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
"Failure in replication of innodb partitioned tables on row/mixed format"
Apply Oracle patch from Sunny
Ensure that innobase_read_and_init_auto performs table autoinc lock when
lock_mode = 0
No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
it already performs same check.
Make autoinc_lock_mode variable read-only for duration of running
mysqld process.
"Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
When unknown find_flag is encountered in convert_search_mode_to_innobase()
do not call assert(0); instead queue a MySQL error using my_error() and
return the error code PAGE_CUR_UNSUPP. Change the functions that call
convert_search_mode_to_innobase() to handle that error code by "canceling"
execution and returning appropriate error code further upstream.
Approved by: Heikki (via IM)
changes were made by MySQL.
ChangeSet@1.1810.467.1 2005-08-11 19:19:20+03:00 jani@omakaista.fi
Fix error message so that it conforms to " InnoDB: Error: ...".
ChangeSet@1.2528.115.30 2007-08-28 10:17:15-06:00 tsmith@hindu.god
Fix another compiler warning on Windows in InnoDB.
ha_innodb.cc:
Fix compiler warning: ::get_auto_increment takes a ulonglong
for nb_desired_values, but InnoDB's trx struct stores it as
a ulint (unsigned long). Probably harmless, as a single
statement won't be asking for more than 2^32 rows.
ChangeSet@1.2528.115.25 2007-08-27 18:18:14-06:00 tsmith@hindu.god
Fix some Windows compiler warnings.
dict0mem.c: Fix compiler warning with a cast.
ha_innodb.cc: Change type to fix a compiler warning.
log for r1850:
Implement this feature request:
http://bugs.mysql.com/30706
* Add a function that returns the number of microseconds since
epoch - ut_time_us().
* Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
* Add UT_WAIT_FOR() macro that waits for a specified condition to occur
until a timeout elapses.
* Using all of the above, handle the replication thread specially in
srv_conc_enter_innodb().
http://bugs.mysql.com/30706
* Add a function that returns the number of microseconds since
epoch - ut_time_us().
* Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
* Add UT_WAIT_FOR() macro that waits for a specified condition to occur
until a timeout elapses.
* Using all of the above, handle the replication thread specially in
srv_conc_enter_innodb().
Approved by: Heikki
retry of autoinc read semantics. We always reread the table's autoinc counter
after attempting to initialize it i.e., we want to guarantee that a read of
autoinc valus that is returned to the caller is always covered by the
AUTOINC locking mechanism.
Bug# 30907: We don't rely on *first_value to be 0 when checking whether
get_auto_increment() has been invoked for the first time in a multi-row
INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
inside ha_innobase::start_stmt() too.
Bug# 30888: While adding code for the low level read of the AUTOINC value
from the index, the case for MEDIUM ints which are 3 bytes was missed
triggering an assertion.
trx->n_mysql_tables_in_use only after row_lock_table_for_mysql()
returns DB_SUCCESS. A timeout on LOCK TABLES would lead to an
inconsistent state, which would cause trx_free() to print a warning.
This was later reported as Bug #31444.
pending and/or granted on a table. We peek at this value to determine whether
a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to
acquire the AUTOINC lock or not. This change is related to Bug# 16979.
AUTOINC locking. There are three modes, 0 for backward compatibility, 1 for the
new style locking (default, safe for statement-based replication) and
2 for no AUTOINC locking (unsafe for statement-based replication).
adding column definitions to tables.
dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
allocation. Allow it and "name" to be NULL. These parameters are NULL
when creating dummy indexes.
dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
dict_table_get_col_name(): Allow table->col_names to be NULL.
dict_table_add_system_columns(), dict_table_add_to_cache():
Add the parameter "heap".
---
Additional changes that had to be merged from branches/zip:
dict_table_add_system_columns(): New function, factored out from
dict_table_add_to_cache().
mlog_parse_index(): Add some consistency checks, and make use of
dict_table_add_system_columns().
ha_innodb.cc. This cleanup was made possible as of r1550:
Merge changes from MySQL AB:
ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
WL#3817: Simplify string / memory area types and make things more consistent
(first part)
The following type conversions was done:
- Changed byte to uchar
...
ChangeSet@1.1810.3176.1 2007-07-20 14:17:15+03:00 gkodinov@magare.gmz
Bug #29644: alter table hangs if records locked in share mode
by long running transaction
On Windows opened files can't be deleted. There was a special
upgraded lock mode (TL_WRITE instead of TL_WRITE_ALLOW_READ)
in ALTER TABLE to make sure nobody has the table opened
when deleting the old table in ALTER TABLE. This special mode
was causing ALTER TABLE to hang waiting on a lock inside InnoDB.
This special lock is no longer necessary as the server is
closing the tables it needs to delete in ALTER TABLE.
Fixed by removing the special lock.
Note that this also reverses the fix for bug 17264 that deals with
another consequence of this special lock mode being used.
ha_innodb.cc@1.202.46.1 2007-07-20 14:17:14+03:00 gkodinov@magare.gmz
Bug #29644: reverse the (now excessive) fix
for bug 17264 (but leave the test case).
ChangeSet@1.2567, 2007-07-27 14:44:31+05:00, svoj@june.mysql.com +3 -0
Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
into mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
MERGE: 1.1810.2871.44
One test case in innodb.test fails because of auto-increment
changes in r1562:1653:
$diff innodb.result innodb.reject
504c504
< 3 test2 this will work
---
> 4 test2 this will work