Repair crashes mysql when table has fulltext index.
myisam/sort.c:
Use static ft_buf instead of dynamic mergebuf. Latter could be NULL if record has long words.
mysql-test/r/fulltext.result:
Test case for BUG#11684 - repair crashes mysql when table has fulltext index.
mysql-test/t/fulltext.test:
Test case for BUG#11684 - repair crashes mysql when table has fulltext index.
needed to be fixed in earlier versions)
Fixed the iteration of how substrings are handled with negative indexes in
SUBSTRING_INDEX
mysql-test/r/func_str.result:
New results for the fix to substring_index
mysql-test/t/func_str.test:
Added tests for fix to substring_index, various lenth search patterns. Also included
are the queuries the user who reported the bug listed in the bug report
sql/item_strfunc.cc:
Fix to BUG 11104
Took out the offset-=delimiter_length-1 out of the for loop. It was causing
basically this:
select substring_index('the king of the the hill', 'the', -2) to not work.
The first iteration, offset would be initialised to 24, then strstr would
point at 'the king of the the* hill' ('*'means right before the
character following), returning a offset of 16. The for loop would then
decrement offset by two (3 - 1), to 14, now pointing at
"the king of th*e the hill", _skipping_ past the 'e' in the second to last
'the', and therefore strstr would never have a chance of matching the
second to last 'the', then moving on to the 'the' at the begginning of the
string!
In a nutshell, offset was being decremented by too great a value, preventing
the second to last 'the' from being ever found, hence the result of
'king of the the hill' from the query that is reported in the bug report
Fixed portability problem with bool in C programs
Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
my_sleep() -> pthread_cond_timedwait()
include/thr_lock.h:
bool -> my_bool (bool is not portable in C programs)
mysys/thr_lock.c:
bool -> my_bool (bool is not portable in C programs)
sql/lock.cc:
Added comment
Don't use | on bool variable
sql/mysql_priv.h:
Added comment
sql/slave.cc:
Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
sql/sql_base.cc:
Added comments
my_sleep() -> pthread_cond_timedwait() to get less code and potentitally faster loop
BitKeeper/etc/ignore:
added ac_available_languages_fragment
make_win_src_distribution are created, but not installed
- removed make_win_binary_distribution.sh as it's obsolete and outdated
BitKeeper/deleted/.del-make_win_binary_distribution.sh~e0fbb0a75af0dcd3:
Delete: scripts/make_win_binary_distribution.sh
scripts/Makefile.am:
- Make sure the scripts make_binary_distribution, make_sharedlib_distribution and
make_win_src_distribution are created, but not installed. This is the proper fix
for what I began in the previous ChangeSet
- removed make_win_binary_distribution.sh from the distribution, as it's obsolete
and outdated
sql/lock.cc:
Used flags immediately in call
sql/mysql_priv.h:
Added RTFC (short for remove_table_from_cache)
for constants and used hex syntax to clarify it is bits
in the flags
sql/sql_base.cc:
Use flags parameter immediately and use flags immediately in call
Change to other variant of eternal loop variant
sql/sql_table.cc:
Use flags immediately in call
they're not needed outside of the source tree (BUG#12057)
- Removed some more unneeded files from "make install" along the way
scripts/Makefile.am:
- don't install the following files with "make install", as they are
not needed to be installed:
make_win_src_distribution, make_win_binary_distribution,
make_binary_distribution, make_sharedlib_distribution
support-files/MacOSX/Makefile.am:
- don't install the Mac OS X support files when running "make install" -
they're not needed outside of the source tree (BUG#12057)
support-files/Makefile.am:
- don't install the RPM spec files with "make install" - they are not
needed outside of the source tree
remove_table_from_cache fails to signal other thread and gets
blocked when other thread also gets blocked
include/thr_lock.h:
Report if any threads was signalled
mysys/thr_lock.c:
Report if any threads was signalled
sql/lock.cc:
Report if any threads was signalled
Use new interface for remove_table_from_cache
sql/mysql_priv.h:
New interface for remove_table_from_cache
+ mysql_lock_abort_for_thread
sql/sql_base.cc:
Use new interface of remove_table_cache
Rewrote remove_table_from_cache to fix bug
sql/sql_table.cc:
Use new interface of remove_table_from_cache
- create a "mysql" user group and assign the mysql user account to that group
in the server postinstall section. (BUG 10984)
- backported some changes from the 4.1 RPM spec file (cleanups: removed the incomplete
Brazilian translations, more consequent use of macros)
support-files/mysql.spec.sh:
- create a "mysql" user group and assign the mysql user account to that group
in the server postinstall section. (BUG 10984)
- backported some changes from the 4.1 RPM spec file (cleanups: removed the incomplete
Brazilian translations, more consequent use of macros)
Only reproducable in 5.1-wl2325, although the missing code is missing from 4.0 and up.
sql/slave.cc:
Clean up after slave sql thread when exiting.
Wasn't calling close_thread_tables().
This was causing a crashing bug in the 5.1-wl2325 tree. It is conceivable that this
could cause a problem in earlier versions, but we have not been able to reproduce.
all versions: added an option "--machine" that allows to override the autodetected
architecture string (e.g. "i386") that becomes part of the binary package name with
a different one
- moved the removal of the BASE directory to the end of the make_binary_distribution
script
scripts/make_binary_distribution.sh:
- backported and fixed a change from 5.0 for easier building of all versions: added an
option "--machine" that allows to override the autodetected architecture string
(e.g. "i386") that becomes part of the binary package name with a different one
- moved the removal of the BASE directory to the end of the script
BitKeeper/deleted/.del-generate-flag-images~f77476753fff8186:
Delete: Docs/Support/generate-flag-images
Docs/Makefile.am:
- fixed node names for the new info file
Docs/Support/generate-text-files.pl:
- stop printing if the index was reached
BUG#10675 - MySQL fails to build with --openssl on Mac OS X 10.4
BUG#11150 - HP-UX yaSSL/OpenSSL configure/header problem
Remove obsolete code.
include/my_global.h:
Obsolete code removed. OpenSSL doesn't have crypt anymore (it was dropped in ~2003).
This patch fixes compilation failures with both OpenSSL and yaSSL on systems where
crypt was defined in unistd.h.
Conclusion is we do not use OpenSSL's crypt unless it wasn't defined in
unistd.h/crypt.h and it was defined in old OpenSSL.
After review fix
Copy from internal state to share state only when in lock write
mode (happens only when lock table x write has been performed since
update_state_info is only called when holding a TL_READ_NO_INSERT
lock normally. Previous patch would have failed in combination with
delayed writes.
Analyze table corrupts the state on
data_file_length, records, index_file_length...
by writing the shared state when there is an updated internal
state due to inserts or deletes
Fixed by synching the shared state with the internal state before
writing it to disk
Added test cases of 2 error cases and a normal case in new
analyze test case
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Bug #11064 some read error not detected in replication on 64-bit platform
sql/sql_repl.cc:
Bug #11064 some read error not detected in replication on 64-bit platform
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
- removed obsolete mysql-max.spec.sc RPM spec file (Max is built out of the standard
spec file)
BitKeeper/deleted/.del-mysql-max.spec.sh~ca055d86585c1010:
Delete: support-files/mysql-max.spec.sh
configure.in:
- removed references to some obsolete files
scripts/make_binary_distribution.sh:
- removed references to some obsolete files
1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Used the new option in create_table_from_items().
It is necessary to prevent the SELECT table from being reopend.
It would get new storage assigned for its fields, while the
SELECT part of the command would still use the old (freed) storage.
2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
3.) Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.
mysql-test/r/create.result:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added test results.
mysql-test/t/create.test:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added tests which do not require concurrency.
sql/lock.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Changed the parameter list.
Removed two unnecessary functions. Their functionality is included in
wait_if_global_read_lock() and start_waiting_global_read_lock().
sql/mysql_priv.h:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Changed the declaration of mysql_lock_tables().
Added definitions for the new options.
sql/sql_acl.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_base.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_handler.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_insert.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.
Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_parse.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
sql/sql_table.cc:
Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
Adjusted mysql_lock_tables() calls to the new argument list.
Used the new option in create_table_from_items().
(bug#10674, bug#10681)
support-files/mysql.spec.sh:
Added a missing "make clean" which had caused the original 4.1.12 RPMs to be broken.
(bug#10674, bug#10681)
The problem: base_list::remove didn't modify base_list::last when removing
the last list element.
The fix: If we remove the last element, find the element before it (by walking
from the beginning of the list) and set base_list::last accordingly.
The list gets corrupted in both 4.0 and 4.1. There are no visible problems in
current 4.1 because current 4.1 doesn't call where_cond->fix_fields() after
constant propagation step.
mysql-test/r/select.result:
Testcase for BUG#10095
mysql-test/t/select.test:
Testcase for BUG#10095
sql/sql_list.h:
Fix for BUG#10095: {wrong query results because of incorrect constant propagation}
The problem: base_list::remove didn't modify base_list::last when removing
the last list element.
The fix: If we remove the last element, find the element before it (by walking
from the beginning of the list) and set base_list::last accordingly.
myisam/mi_key.c:
Fixed wrong buffer usage for auto-increment key with blob part that caused
CHECK TABLE to report that the table was wrong. (Bug #10045)
mysql-test/r/auto_increment.result:
New test case
mysql-test/t/auto_increment.test:
New test case
Count null_bits separately from field offsets and adjust them in case of primary key parts.
(Previously a CREATE TABLE with a lot of null fields that was part of a primary key caused MySQL to wrongly count the number of bytes needed to store null bits)
This is a more complete bug fix for #6236
mysql-test/r/alter_table.result:
More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
mysql-test/t/alter_table.test:
More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
sql/handler.h:
Add counter for null fields
sql/sql_table.cc:
Change create_field->offset to store offset from start of fields, independent of null bits.
Count null_bits separately from field offsets and adjust them in case of primary key parts.
sql/unireg.cc:
Change create_field->offset to store offset from start of fields, independent of null bits.
Count null_bits separately from field offsets and adjust them in case of primary key parts.
Fix bug + include test case.
Enable outfile tests.
mysql-test/t/outfile.test:
Reenable outfile tests
Add test for Bug#8191
sql/sql_yacc.yy:
Fix Bug#8191
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted