Handling of large signed/unsigned values was not consistent, so some string functions could return bogus results.
The current fix is to simply patch up the val_str() methods for those string items.
It would be good clean this code up in general, to make similar problems much harder to make. This is left as an exercise for the reader.
mysql-test/r/func_str.result:
Update test results for bug #24947
mysql-test/t/func_str.test:
Add test case for bug #24947
sql/item_strfunc.cc:
Adjust some string function Items' val_str() methods to handle large signed/unsigned arguments properly
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Bugs fixed:
- Bug #21468: InnoDB crash during recovery with corrupted data pages: XA bug?
- Bug #24299: Identifiers in foreign keys cannot contain U+0160, U+0360, ..., U+FF60
- Bug #24386: Performance degradation caused by instrumentation in mutex_struct
- Bug #24712: SHOW TABLE STATUS for file-per-table showing incorrect time fields
innobase/dict/dict0dict.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1030:
branches/5.0: Replace isspace() with a wrapper ib_isspace(), because on
Win32 isspace(0xa0) appears to hold. (Bug #24299)
innobase/include/sync0rw.h:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
innobase/include/sync0sync.h:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
innobase/include/sync0sync.ic:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
innobase/log/log0recv.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1076:
branches/5.0: Remove the unintentionally committed change to univ.i in r1075.
Fix assertion failure sync0sync.c line 1239
(the latter ut_error in sync_thread_reset_level())
in crash recovery when UNIV_SYNC_DEBUG is enabled.
Revision r1079:
branches/5.0: recv_recovery_from_checkpoint_finish(): Add 1 sec delay
before switching on the sync order checks in crash recovery, so that
file I/O threads have time to suspend themselves.
innobase/srv/srv0start.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1075:
branches/5.0: Fix assertion failure sync0sync.c line 1239
(the latter ut_error in sync_thread_reset_level())
in crash recovery when UNIV_SYNC_DEBUG is enabled.
Revision r1077:
branches/5.0: innobase_start_or_create_for_mysql(): Remove unnecessary delay
now that we moved the setting sync_order_checks_on=TRUE to log0recv.c,
to the start of the rollback phase in crash recovery.
innobase/sync/sync0rw.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
innobase/sync/sync0sync.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
innobase/trx/trx0roll.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1067:
branches/5.0: trx_rollback_for_mysql(), trx_commit_for_mysql():
Protect the creation of trx_dummy_sess with kernel_mutex.
This error was introduced in r1046 and r1050.
Revision r1050:
branches/5.0: trx_rollback_for_mysql(): Fix the comment introduced in r1046.
trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
transaction in XA recovery, just in case our code would need the session
object also in that case (does not seem to need it right now).
Revision r1048:
branches/5.0: trx_rollback_for_mysql(): Do not set trx->sess back to NULL.
This bug was introduced in r1046.
Revision r1046:
branches/5.0: trx_rollback_for_mysql(): Ensure that trx->sess is non-NULL
when calling trx_general_rollback_for_mysql(). This removes a segmentation
fault when rolling back a prepared transaction in XA recovery. (Bug #21468)
innobase/trx/trx0trx.c:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1067:
branches/5.0: trx_rollback_for_mysql(), trx_commit_for_mysql():
Protect the creation of trx_dummy_sess with kernel_mutex.
This error was introduced in r1046 and r1050.
Revision r1050:
branches/5.0: trx_rollback_for_mysql(): Fix the comment introduced in r1046.
trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
transaction in XA recovery, just in case our code would need the session
object also in that case (does not seem to need it right now).
sql/ha_innodb.cc:
Applied innodb-5.0-ss1040 and innodb-5.0-ss1099 snapshots.
Revision r1040:
branches/5.0: Port r1039 from trunk:
Port r1034 from branches/zip: Remove some instrumentation and reduce
the output of SHOW MUTEX STATUS in non-debug builds. (Bug #24386)
Revision r1099:
branches/5.0: Merge revision 1098 from trunk: Fix bug #24712: SHOW TABLE
STATUS for file-per-table showing incorrect time fields
Fix the move of "mysqlmanager" to section 8: Directory name was wrong.
support-files/mysql.spec.sh:
Fix the move of "mysqlmanager" to section 8: Directory name was wrong.
The Docs team has two new manpages for the "server" RPM: "my_print_defaults" and "mysql_tzinfo_to_sql".
support-files/mysql.spec.sh:
The Docs team has two new manpages for the "server" RPM: "my_print_defaults" and "mysql_tzinfo_to_sql".
scripts/Makefile.am:
pass --sysconfdir to scripts
scripts/mysqlaccess.sh:
use --sysconfdir instead of hardcoded /etc
scripts/mysqld_multi.sh:
use --sysconfdir instead of hardcoded /etc
Remove DBUG_ENTER in my_end
client/mysqltest.c:
Call 'mysql_server_end' as last function in 'free_used_memory'
Don't use DBUG_VOID_RETURN after mysql_server_end in free_used_memory
Only call mysql_server_end if mysql_server_init has been called
The problem is that the GEOMETRY NOT NULL can't automatically set
any value as a default one. We always tried to complete LOAD DATA
command even if there's not enough data in file. That doesn't work
for GEOMETRY NOT NULL. Now Field_*::reset() returns an error sign
and it's checked in mysql_load()
mysql-test/r/gis.result:
test result
mysql-test/t/gis.test:
testcase
sql/field.cc:
reset() now returns error sign
sql/field.h:
Field_*::reset() now returns error sign if the field can't be reset
sql/sql_load.cc:
check if field can't be reset and return error if it's so