Add support for LIMIT # OFFSET #
Changed lock handling: Now all locks should be stored in TABLE_LIST instead of passed to functions.
Don't call query_cache_invalidate() twice in some cases
mysql_change_user() now clears states to be equal to close + connect.
Fixed a bug with multi-table-update and multi-table-delete when used with LOCK TABLES
Fixed a bug with replicate-do and UPDATE
Warning handling and initial prepared statement handling (last not complete yet)
Changed a lot of functions that returned 0/1 to my_bool type.
GRANT handling now uses read/write locks instead of mutex
Change basic net functions to use THD instead of NET
(needed for 4.1 protocol)
Use my_sprintf instead of sprintf() + strlen()
Added alloc_query() to be able to chare query initialization code with
prepared statements.
Cleanup handling of SHOW COUNT(*) WARNINGS and SELECT LAST_INSERT_ID()
Note that the following test fails (will be fixed ASAP):
sub_select, union, rpl_rotate_logs and rpl_mystery22
Fixed that GRANT ... REQUIRE options are not forgot when doing new GRANT
Changed fn_ext to point at first '.' after directory.
FLUSH LOGS removed numerical extension for all future update logs.
Fixed the mysqld --help reports right values for --datadir and --bind-address
--log-binary=a.b.c now properly strips of .b.c
Fix that one can DROP UDF functions that was not loaded at startup
Made AND optional in REQUIRE
Added REQUIRE NONE
Check if AND/OR expression can be NULL; Fixed bug in GROUP BY and-or-expression where expression could be NULL
Bug fix for SHOW OPEN TABLES when user didn't have privilege to access all open tables.
Better fix for ALTER TABLE on BDB tables.
Some simple optimzations, more comments and indentation changes.
Add ` around database in 'use database' in binary log.
Moved max_error_count and max_warning_count to variables struct.
Removed SHOW_WARNS_COUNT and SHOW_ERRORS_COUNT calls.
Changed string functions to use character set of first string argument as default return characterset
(Each string function can change the above assumption if needed)
Changed option variables to my_bool (to avoid bugs in my_getopt())
Added new thread specific mutex LOCK_delete to be able to free LOCK_thread_count early.
Changed usage of LOCK_thread_count -> LOCK_status for statistics variables
Made a some new buffers thread specific and changeable.
Resize of key_buffer.
AUTO_COMMIT -> AUTOCOMMIT
Fixed mutex bug in DROP DATABASE
Fixed bug when using auto_increment as second part of a key where first part could include NULL.
Split handler->extra() to extra() and extra_opt() to be able to support thread specific buffers.
Don't write message to error log when slave reconnects becasue of timeout.
Fixed possible update problem when using DELETE/UPDATE on small tables
(In some cases we used index even if table scanning would be better)
A lot of minior code cleanups
new file
Client-server protocol 4.1 changes - Server side:
* Enhanced metadata information:
- SHOW [COUNT(*)] ERRORS [LIMIT [offset,] rows]
- SHOW [COUNT(*)] WARNING [LIMIT [offset,] rows]
- SHOW TABLE TYPES
- SHOW PRIVILEGES
- SHOW COLUMN TYPES (Not fully implemented)
* Prepared execution
* Long data handling in pieces
* And other misc changes
SHOW DATABASES
CREATE TEMPORARY TABLE
LOCK TABLES
REPLICATION SLAVE & REPLICATION CLIENT
SUPER
EXECUTE
All scripts & documentation is updated for this change.
Added better error messages for global privileges
(All commit emails since 4.0.1 checked)
This had to be done now, before the 4.1 tree changes to much, to make it easy to propagate bug fixes to the 4.1 tree.
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.
Patches required by Gemini
Fix to properly detect if there is an active transaction in InnoDB
Fix to not lock thread structure when doing automatic rollback when thread ends
Allow -O lower_case_names=0 on UNIX
Stop event and bugs the test suite could not catch
Did some big restructuring of binlog event classes - most important
change is that now each event class has exec_event method and one does
not need to modify slave core code to add a new event. Slave code is
now much smaller and easier to read
New faster list iterators
Change list code to be simpler and faster
Optimize count(distinct)
New error messages for UNION
Make create_tmp_table more general to be usable by UNION
Remember UNION for ALTER TABLE
Added test for if we are supporting transactions.
Don't allow REPLACE to replace a row when we have generated an auto_increment key
Fixed bug when using BLOB keys
Fixed bug in SET @variable=user.
while slave thread has temp tables - not hard to fix though, but it is time to go to bed
added a new test case for temp table replication and Slave_open_temp_tables
status variable.
Misc fixes
this file needs to be deleted
sql/log_event.cc
fixed warnings
sql/log_event.h
fixed () #define bug
sql/mysqlbinlog.cc
fixed length argument - was supposed to be one less
sql/mysqld.cc
replicate-do/ignore-table now works, wild does not yet
sql/mysql_priv.h
updating argument to add_table_to_list() -- needed for replicate-do/ignore table
sql/slave.cc
changes fore replicate-do/ignore-table
close the socket before going to sleep sleeping after error
bad event was being freed too early
sql/slave.h
changes for replicate-do/ignore-table
sql/sql_class.cc
slave_thread variable to THD
sql/sql_class.h
added slave_thread to THD, fixed bug in end_time()
sql/sql_parse.cc
updating argument to add_tables_to_list()
sql/sql_table.cc
fixed bug in mysql_rm_table()
sql/sql_yacc.yy
fixed up add_table_to_list() calls to accept updating argument
sql/table.h
added updating to TABLE_LIST