likely() and unlikely() branch prediction compiler hint macros
clean-up of comments
include/my_global.h:
added likely() and unlikely() macros to help some compilers optimize
the code for architecture-specific branch prediction policies
include/my_sys.h:
coverted my_b_append_tell() from macro to a function as it needed to be more
complex to avoid a potential race condition
mysql-test/mysql-test-run.sh:
hostname-independent relay log name to have consistent SHOW SLAVE STATUS
output
mysql-test/r/rpl000014.result:
result update
mysql-test/r/rpl000015.result:
result update
mysql-test/r/rpl000016.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/t/rpl000017-slave.sh:
proper cleanup of old logs
mysys/mf_iocache.c:
cosmetic changes + more debugging asserts
mysys/mf_iocache2.c:
my_b_append_tell()
cleanup of comments
sql/log.cc:
fix potential bug - do not rotate log in the middle of event
sql/slave.cc:
do not write stop events when the server does not actually stop but just
rotates the log
fixed race between queue_event() and show_slave_status()
clean-up of comments
sql/slave.h:
added ignore_stop_event flag to SLAVE_LOG_INFO
fixed a couple of bugs with SEQ_READ_APPEND cache
rpl000016 still has non-deterministic result, but I am going to commit and
push since what I have is now better than what is in the main repository
client/mysqltest.c:
added wait_for_slave_to_stop
cleaned up TODO and comments
include/my_sys.h:
fixed race in flush_io_cache in SEQ_READ_APPEND cache
mysql-test/r/rpl000016.result:
updated result
mysql-test/t/rpl000016.test:
use wait_for_slave_to_stop to have deterministic slave behaviour for the test
mysys/mf_iocache.c:
fixed race in flush_io_cache()
fixed failure to unlock mutex in my_b_append()
sql/log.cc:
be compatible with 3.23 master
sql/log_event.cc:
3.23 master compat
sql/slave.cc:
3.23 master compat
sql/sql_class.h:
compat with 3.23 master
fixed too quick timeout in mysql-test-run which caused a race with the
new server getting started before the old one completely finished
shutdown. This should fix the pid warning we've been getting as well as
inconsistent results when running tests with the manager
libmysqld/lib_sql.cc:
post-merge fix
mysql-test/mysql-test-run.sh:
fixed start/stop timeout and cleanup of log directory
mysql-test/r/rpl000014.result:
post-merge fix
mysql-test/r/rpl000015.result:
post-merge fix
mysql-test/r/rpl000016.result:
post-merge fix
mysql-test/r/rpl_log.result:
post-merge fix
sql/log_event.cc:
post-merge fix
sql/slave.cc:
post-merge fix
sql/slave.h:
post-merge fix
sql/sql_class.h:
post-merge fix
tools/mysqlmanager.c:
added debug message
before I can push
BitKeeper/etc/ignore:
auto-union
Makefile.am:
Auto merged
include/my_sys.h:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/t/rpl_log.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
mysys/mf_iocache2.c:
Auto merged
mysys/thr_mutex.c:
Auto merged
sql/item_func.cc:
Auto merged
sql/lex.h:
Auto merged
sql/mini_client.cc:
Auto merged
sql/mini_client.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/stacktrace.c:
Auto merged
sql/structs.h:
Auto merged
mysql-test/r/rpl000014.result:
merge
mysql-test/r/rpl000015.result:
merge
mysql-test/r/rpl000016.result:
merge
mysql-test/r/rpl_log.result:
merge
sql/log.cc:
merge
sql/log_event.cc:
merge
sql/log_event.h:
merge
sql/mysqld.cc:
merge
sql/slave.cc:
merge
sql/slave.h:
merge
sql/sql_class.h:
merge
sql/sql_parse.cc:
merge
sql/sql_repl.cc:
merge
sql/sql_yacc.yy:
merge
first pull, merge,test, and get it to work.
The main change is the new replication code - now we have two slave threads
SQL thread and I/O thread. I have also re-written a lot of the code to
prepare for multi-master implementation.
I also documented IO_CACHE quite extensively and to some extend, THD class.
Makefile.am:
moved tags target script into a separate file
include/my_sys.h:
fixes in IO_CACHE for SEQ_READ_APPEND + some documentation
libmysqld/lib_sql.cc:
updated replication locks, but now I see I did it wrong and it won't compile. Will fix
before the push.
mysql-test/r/rpl000014.result:
test result update
mysql-test/r/rpl000015.result:
test result update
mysql-test/r/rpl000016.result:
test result update
mysql-test/r/rpl_log.result:
test result update
mysql-test/t/rpl000016-slave.sh:
remove relay logs
mysql-test/t/rpl000017-slave.sh:
remove relay logs
mysql-test/t/rpl_log.test:
updated test
mysys/mf_iocache.c:
IO_CACHE updates to make replication work
mysys/mf_iocache2.c:
IO_CACHE update to make replication work
mysys/thr_mutex.c:
cosmetic change
sql/item_func.cc:
new replication code
sql/lex.h:
new replication
sql/log.cc:
new replication
sql/log_event.cc:
new replication
sql/log_event.h:
new replication
sql/mini_client.cc:
new replication
sql/mini_client.h:
new replication
sql/mysql_priv.h:
new replication
sql/mysqld.cc:
new replication
sql/repl_failsafe.cc:
new replication
sql/slave.cc:
new replication
sql/slave.h:
new replication
sql/sql_class.cc:
new replication
sql/sql_class.h:
new replication
sql/sql_lex.h:
new replication
sql/sql_parse.cc:
new replication
sql/sql_repl.cc:
new replication
sql/sql_repl.h:
new replication
sql/sql_show.cc:
new replication
sql/sql_yacc.yy:
new replication
sql/stacktrace.c:
more robust stack tracing
sql/structs.h:
new replication code
BitKeeper/etc/ignore:
Added mysql-test/r/rpl000002.eval mysql-test/r/rpl000014.eval mysql-test/r/rpl000015.eval mysql-test/r/rpl000016.eval mysql-test/r/slave-running.eval mysql-test/r/slave-stopped.eval to the ignore list
Fixed bug in multi-table-delete
Docs/manual.texi:
Changelog
include/mysql_com.h:
Define MAX_CHAR_WIDTH
myisam/mi_extra.c:
Cleanup
mysql-test/r/bdb.result:
Bug test
mysql-test/r/group_by.result:
Bug test
mysql-test/t/bdb.test:
Bug test
mysql-test/t/group_by.test:
Bug test
sql/ha_berkeley.cc:
More debug statements
sql/handler.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/records.cc:
More DBUG statements
sql/sql_analyse.cc:
Cleanup
sql/sql_base.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/sql_delete.cc:
Fixed bug in multi-table-delete
Cleanup
sql/sql_select.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/sql_update.cc:
Move HA_EXTRA_NO_READCHECK to ha_open
sql/sql_class.h:
small optimisations for MULTI-TABLE UPDATE's
sql/sql_parse.cc:
Could not look at that if () at the start of execute_command, and as
Monty evidently did not have time, so I optimised it away in the best
fashion I know of.
sql/sql_update.cc:
Some optimisations for MULTI-TABLE UPDATE's
Add ISAM to Windows version
Fix of test results
Fixes for NULL keys in HEAP tables.
Docs/manual.texi:
Changelog
heap/hp_open.c:
Add support for NULL=NULL in keys (for GROUP BY)
heap/hp_rkey.c:
Cleanup
heap/hp_write.c:
Cleanup
include/config-win.h:
Add ISAM to Windows version
include/my_base.h:
Add support for NULL=NULL in keys (for GROUP BY)
libmysqld/Makefile.am:
Rename of innobase to innodb
myisam/mi_write.c:
Add support for NULL=NULL in keys (for GROUP BY)
BitKeeper/etc/ignore:
Added libmysqld/ha_innodb.cc to the ignore list
mysql-test/r/group_by.result:
Test of NULL keys in HEAP tables
mysql-test/r/heap.result:
Test of NULL keys in HEAP tables
mysql-test/r/null.result:
Cleanup
mysql-test/r/order_by.result:
Fix for result of new ORDER BY optimization
mysql-test/t/group_by.test:
Test of NULL keys in HEAP tables
mysql-test/t/heap.test:
Test of NULL keys in HEAP tables
mysql-test/t/null.test:
Cleanup
sql/ha_heap.cc:
Add support of NULL keys
sql/item_strfunc.h:
Fix for BINARY and CAST functions
sql/item_timefunc.h:
Fix for BINARY and CAST functions
sql/sql_parse.cc:
Cleanup
sql/sql_select.cc:
Add support for NULL=NULL in keys (for GROUP BY)
incorporations of the new stuff.
When Monty approves / corrects it, I will "port" it to multi-table
updates.
sql/sql_insert.cc:
A small bug fix
sql/sql_update.cc:
query cache invalidation
Added ORDER BY optimization
Docs/manual.texi:
Added ORDER BY optimisation section
heap/_check.c:
Cleanup
heap/heapdef.h:
Added support of null keys in HEAP tables
heap/hp_hash.c:
Added support of null keys in HEAP tables
heap/hp_open.c:
Added support of null keys in HEAP tables
heap/hp_test2.c:
Added support of null keys in HEAP tables
heap/hp_write.c:
Added support of null keys in HEAP tables
include/heap.h:
Added support of null keys in HEAP tables
include/my_base.h:
Support for hash algoritm
isam/static.c:
Cleanup
myisam/mi_static.c:
Cleanup
sql/Makefile.am:
Rename innobase -> innodb
sql/ha_berkeley.cc:
Added ORDER BY optimization
sql/ha_berkeley.h:
Added ORDER BY optimization
sql/ha_heap.cc:
Added support for NULL keys
sql/ha_heap.h:
Added support for NULL keys
sql/ha_isam.cc:
Added ORDER BY optimization
sql/ha_isam.h:
Added ORDER BY optimization
sql/ha_isammrg.h:
Added ORDER BY optimization
sql/ha_myisam.cc:
Added ORDER BY optimization
sql/ha_myisam.h:
Added ORDER BY optimization
sql/ha_myisammrg.cc:
Added ORDER BY optimization
sql/ha_myisammrg.h:
Added ORDER BY optimization
sql/handler.cc:
Rename innobase -> innodb
sql/handler.h:
Rename innobase -> innodb
sql/ha_innodb.cc:
Rename innobase -> innodb
sql/ha_innodb.h:
Rename innobase -> innodb
sql/mysqld.cc:
Rename innobase -> innodb
sql/sql_delete.cc:
Rename innobase -> innodb
sql/sql_select.cc:
Added ORDER BY optimization
sql/sql_select.h:
Added ORDER BY optimization
mysql-test/r/query_cache.result:
Test changed according with new block sizes
mysql-test/t/query_cache.test:
Test changed according with new block sizes
libmysql/libmysql.def:
For to have the same order of the 3.23.XX stuff
libmysqld/lib_load.cc:
For to have the file extension for VC++
libmysqld/lib_sql.cc:
The VC++ compiler returns duplication define from
net_serv.cc. If the same happens with Unix then
those lines should be removed.
VC++ file extension.
sql/mysqld.cc:
Changes for Win32 Embedded Server.
sql/net_serv.cc:
Sanja Fixes.
sql/sql_cache.cc:
To avoid the crash on Win9x
Fix for new bug in CREATE TABLE when sorting keys.
Docs/manual.texi:
Added FOUND_ROWS() section.
include/my_base.h:
Spatial index
include/myisam.h:
Spatial index
include/mysql_com.h:
Spatial index
myisam/ft_dump.c:
Remove warnings.
mysys/hash.c:
Fix for SUNPRO_C (Sun's Fortre compiler)
sql/sql_cache.cc:
Fix for FLUSH QUERY CACHE.
sql/sql_cache.h:
Fix for FLUSH QUERY CACHE.
sql/sql_table.cc:
Fix for new bug when sorting keys.
Docs/manual.texi:
Some small changes to the MySQL-PostgreSQL comparison.
sql/item_timefunc.cc:
Fixed typo.
sql/sql_cache.cc:
More debugging
sql/sql_cache.h:
More debugging
Cleanup of multi-table-delete in sql_yacc.yy
Changed syntax of MAXIMUM QUERIES PER HOUR to MAX_QUERIES_PER_HOUR to
not get too many reserved words.
Docs/manual.texi:
Updated information about CAST
mysql-test/r/bigint.result:
New CAST syntax
mysql-test/r/create.result:
New CAST syntax
mysql-test/r/variables.result:
Fix after merge with 3.23
mysql-test/t/bigint.test:
New CAST syntax
mysql-test/t/create.test:
New CAST syntax
sql/item_create.cc:
New CAST syntax
sql/item_func.h:
New CAST syntax
sql/item_timefunc.cc:
New CAST syntax
sql/item_timefunc.h:
New CAST syntax
sql/lex.h:
Changed syntax to MAX_QUERIES_PER_HOUR to not get too many reserved words.
sql/mysql_priv.h:
Cleanup multi-delete
sql/sql_parse.cc:
Cleanup multi-delete
sql/sql_yacc.yy:
Cleanup multi-delete.
New CAST syntax.
Removed some restricted words.
Docs/manual.texi:
Auto merged
sql/item_func.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
BitKeeper/deleted/.del-global.h~e80d28157acfdcb5:
Auto merged
Docs/manual.texi:
Auto merged
client/client_priv.h:
Auto merged
extra/resolveip.c:
Auto merged
innobase/btr/btr0sea.c:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/rem/rem0cmp.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
mysys/my_bitmap.c:
Auto merged
sql/ha_innobase.cc:
Auto merged
sql/ha_innobase.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_do.cc:
Auto merged
sql/sql_select.cc:
Auto merged
client/mysqldump.c:
Use local version in 4.0
configure.in:
Use 4.0 code
Fixes for building MySQL with gcc 3.0
Added SIGNED / UNSIGNED casts
Fixed core dump bug in net_clear() with libmysqld.
Back to using semaphores in query cache.
Added 'Null' and 'Index_type' to SHOW INDEX.
BUILD/FINISH.sh:
Fixes for gcc 3.0
BUILD/SETUP.sh:
Fixes for gcc 3.0
Docs/manual.texi:
Changelog + SIGNED/UNSIGNED casts.
Makefile.am:
include BUILD scripts in source distribution.
client/Makefile.am:
Fixes for gcc 3.0
client/mysql.cc:
Cleanup
client/mysqldump.c:
Changed 'K' to mean 'disable-keys' instead of 'no-disabled-keys'
client/readline.cc:
Cleanup
configure.in:
Include BUILD in source distrbution
extra/my_print_defaults.c:
Cleanup
include/my_global.h:
Fix for HPUX and setrlimit.
Portability fix.
Added macros for nice TIMESPEC usage.
innobase/include/dyn0dyn.h:
Fix for AIX
libmysql/Makefile.shared:
Added strxmov to libmysqld
libmysqld/examples/Makefile.am:
Fixes for gcc 3.0
libmysqld/lib_vio.c:
Cleanup
myisam/ft_dump.c:
Portability fixes
myisam/ftdefs.h:
Portability fixes
mysql-test/r/bdb.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/bigint.result:
New test for SIGNED/UNSIGNED
mysql-test/r/fulltext.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/heap.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/innodb.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/isam.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/key.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/myisam.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/query_cache.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/select.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/show_check.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/r/type_ranges.result:
Cleanup results after adding 2 columns to SHOW KEYS
mysql-test/t/bigint.test:
New test for SIGNED/UNSIGNED
mysql-test/t/key.test:
New test for SIGNED/UNSIGNED
mysql-test/t/query_cache.test:
Test for FOUND_ROWS()
sql-bench/crash-me.sh:
Safety fixes
sql/derror.cc:
Cleanup
sql/ha_berkeley.h:
New test for SIGNED/UNSIGNED
sql/ha_heap.h:
New test for SIGNED/UNSIGNED
sql/ha_innobase.cc:
New test for SIGNED/UNSIGNED
sql/ha_innobase.h:
New test for SIGNED/UNSIGNED
sql/ha_isam.h:
New test for SIGNED/UNSIGNED
sql/ha_myisam.cc:
New test for SIGNED/UNSIGNED
sql/ha_myisam.h:
New test for SIGNED/UNSIGNED
sql/handler.h:
New test for SIGNED/UNSIGNED
sql/item_func.cc:
Cleanup TIMESPEC usage
sql/item_func.h:
Added SIGNED / UNSIGNED casts
sql/lex.h:
Added SIGNED / UNSIGNED casts
sql/mysqld.cc:
Cleanup TIMESPEC usage
sql/net_pkg.cc:
Cleanup
sql/net_serv.cc:
Fixed core dump bug in net_clear()
sql/slave.cc:
Cleanup
sql/sql_cache.cc:
Back to using semaphores
sql/sql_cache.h:
Back to using semaphores
sql/sql_insert.cc:
Cleanup TIMESPEC usage
sql/sql_manager.cc:
Cleanup TIMESPEC usage
sql/sql_parse.cc:
Cleanup
sql/sql_repl.cc:
Cleanup TIMESPEC usage
sql/sql_show.cc:
Added 'Null' and 'Index_type' to SHOW INDEX.
sql/sql_table.cc:
Sort keys in table in a more logical order.
sql/sql_yacc.yy:
Support for SIGNED/UNSIGNED casts.
creates proper column types, out of any function, expression or from
other tables.
mysql-test/r/create.result:
This is a result for the test which creates all proper column types
out of CREATE ... SELECT ...
One more notice:
limiting number of queries per hour for different users has been done
on 4.0.1 , but I can port it to 3.23.*
This will require only certain changes, like number of columns in user
table.
I will also make a test case for it, after it is approved by Monty,
as result file will depend on the error message text.
BitKeeper/etc/ignore:
auto-union
libmysqld/lib_sql.cc:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/item_timefunc.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_acl.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/lex.h:
Changes for BitKeeper resolve...
sql/sql_class.h:
Changes for BitKeeper resolve...
sql/sql_lex.h:
Changes for BitKeeper resolve...
sql/sql_parse.cc:
Changes for BitKeeper resolve...
sql/sql_yacc.yy:
Changes for BitKeeper resolve...
* multi-table updates
* new paid feature for limiting number of queries per hour for users
* optional syntax for multi-table deletes
* optimization for SQL_CALC_FOUND_ROWS
* a small addition for CREATE .. SELECT that will be of future use
I know that all this will require many additions to documentation,
which I have not done, but I am at Arjen's disposal to help him document
all this.
libmysqld/lib_sql.cc:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
mysql-test/r/multi_update.result:
Change of the result to accomodate multi-table updates
mysql-test/t/multi_update.test:
Change in multi-table tests to accomodate multi-table updates
BitKeeper/etc/ignore:
Added 50 sql/new.cc to the ignore list
scripts/mysql_install_db.sh:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/item_timefunc.h:
This is a small feature that will be of use later in the proper
creation of the tables out of CREATE ... SELECT...
Further changes will come after this resolve/push/test passes ..
sql/lex.h:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/mysql_priv.h:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/mysqld.cc:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/sql_acl.cc:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/sql_acl.h:
This is a small change required due to new paid feature of limiting
number of queries per hour for each user.
sql/sql_class.h:
These are changes required for multi-table updates.
sql/sql_lex.h:
Changes required for both multi-table updates and limiting number of
queries per hour (paid feature).
sql/sql_parse.cc:
Ha ! So many changes.
* multi-table updates
* limiting number of queries per hour for users
sql/sql_select.cc:
Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single
table, without WHERE or GROUP clause
sql/sql_update.cc:
multi-table updates
sql/sql_yacc.yy:
Many things :
* multi-table updates
* limiting number of queries per hour for users
* new optional syntax for multi-table deletes. This one is different
from the one demanded by user. USING clause MUST include ALL tables,
not just the ones that are used and not deleted from.
Changed default of file_io_threads to 4 and lock_wait_timeout to 50 seconds
Added a missing break: if not specified, innodb_fast_shutdown got the same value as ..flush_log_at_trx commit
sql/mysqld.cc:
Changed default of file_io_threads to 4 and lock_wait_timeout to 50 seconds
Increase table comment print size to 500 bytes to be able to print more foreign key constraint infos
ha_innobase.h:
Change max key len back to 500 bytes because MySQL interpreter cannot handle more
sql/ha_innobase.h:
Change max key len back to 500 bytes because MySQL interpreter cannot handle more
sql/ha_innobase.cc:
Increase table comment print size to 500 bytes to be able to print more foreign key constraint infos
Fix problem with query cache and database names
mysql-test/mysql-test-run.sh:
Portability fixes
mysql-test/r/query_cache.result:
More tests when using different databases
mysql-test/t/query_cache.test:
More tests when using different databases
sql-bench/test-wisconsin.sh:
Portability fix
sql/sql_cache.cc:
Fix problem with query cache and database names
sql/sql_parse.cc:
Remove pre and end space in query.
sql/sql_table.cc:
Limit created keys to MAX_KEY_LENGTH.