bug #6515: count(distinct...) crashes the server)
mysql-test/r/count_distinct.result:
A test case (bug #6515: count(distinct...) crashes the server)
mysql-test/r/func_gconcat.result:
A test case (bug #6475: Another server crash in 5.0.2)
mysql-test/t/count_distinct.test:
A test case (bug #6515: count(distinct...) crashes the server)
mysql-test/t/func_gconcat.test:
A test case (bug #6475: Another server crash in 5.0.2)
sql/sql_select.cc:
A fix (bug #6475: Another server crash in 5.0.2
bug #6515: count(distinct...) crashes the server)
In order to prevent repeated setup() call in the JOIN::make_sum_func_list(),
the code was splitted: new setup_sum_funcs() was introduced.
Note: we don't call setup_sum_funcs() in the opt_range.cc:get_best_group_min_max().
locks all rows (BUG #3300). When using innobase_locks_unsafe_for_binlog
option InnoDB does not take locks for those rows which do not
belong to the result set or werent changed by the query. This fix removes
unnecessary locks also from SELECT and DELETE queries.
innobase/include/row0mysql.h:
Added prototype for row_unlock_for_mysql() function which does an unlock of
a row for MySQL.
innobase/include/trx0trx.h:
Added a field trx_create_lock to a transaction structure. This field is
TRUE if we have created a new lock for a record accessed.
innobase/lock/lock0lock.c:
Set lock create flag if lock is created and reset this flag before
transaction requests a lock.
innobase/row/row0mysql.c:
Add support for unlocking a row in InnoDB. If we are using
innobase_locks_unsafe_for_binlog option then all those record
locks obtained by SQL-query which do not belong to result set
or were not modified are unlocked i.e. we remove the lock from
those records.
sql/ha_innodb.cc:
Added support for a unlock_row interface in InnoDB.
sql/ha_innodb.h:
Added prototype for a function unlock_row().
mysql-test/r/multi_update.result:
test with multiupdate reopening tables
mysql-test/t/multi_update.test:
test with multiupdate reopening tables
sql/item.cc:
processor for cleunuping items in item tree
sql/item.h:
processor for cleunuping items in item tree
sql/sql_update.cc:
fixed case when lock reopened tables
sql/table.cc:
methos for cleunup view itema of table if they are present
sql/table.h:
methos for cleunup view itema of table if they are present
Removed duplicate code where defaults in handler.h will work just as well.
sql/examples/ha_archive.cc:
Fixed build errors, and removed duplicate code.
sql/examples/ha_archive.h:
Removed duplicate code (we will let the default values in handler.h handle these cases).
sql/sql_select.cc:
Fix the client_test failure (due to failing cursors tests after the merge):
move some code around, use set_n_backup calls instead of by-hand
setup.
and blank after function name".
Crop fruits of copy-paste programming: pre-caching of stored functions
wasn't performed for prepared statements just because implementation
of prepared statements is done as an add-on to the main execution flow,
and the preload was originally implemented for main execution branch
only (mysql_execute_command).
mysql-test/r/ps.result:
Test results fixed: bug#6102
mysql-test/t/ps.test:
A test case for Bug#6102 "Server crash with prepared statement
and blank after functionname"
sql/sql_prepare.cc:
A fix for Bug#6102 "Server crash with prepared statement and blank
after functionname": we need to preload stored functions from system tables
before we open any other tables.
- open and create derived tables
- detect which tables should be locked for write
- lock and fill derived tables
some unitialized variables fixed
mysql-test/r/lock_multi.result:
correct results returned
mysql-test/r/multi_update.result:
correct results returned
mysql-test/r/view.result:
correct results returned
mysql-test/t/multi_update.test:
correct results returned
mysql-test/t/view.test:
correct results returned
sql/mysql_priv.h:
derived tables processing splited on table creation and table filling
sql/sql_base.cc:
derived tables processing splited on table creation and table filling
sql/sql_class.h:
function to detect when we need fill derived tables
sql/sql_derived.cc:
derived tables processing splited on table creation and table filling
sql/sql_lex.cc:
fixed uninitialized value
sql/sql_load.cc:
fixed uninitialized value
sql/sql_parse.cc:
initialization muved (will be done for all queries)
sql/sql_prepare.cc:
preparation of multiupdate changed a bit because new locking procedure
sql/sql_update.cc:
new lock for multiupdate:
- open and create derived tables
- detect which tables should be locked for write
- lock and fill derived tables
sql/table.h:
place to store select_result between creation and filling tables
_all_ versions. It tries to remove "Docs/Images/Makefile*" as part of the actions to
correct bug number 6350. If the source tree does not contain a dummy file matching
that pattern, this "rm" will fail, and so "Bootstrap" will fail.
The "Makefile.am" introduced with this changeset is identical to the one that will
arrive in the 5.0 tree when "joerg:1.2057" is propagated from 4.0 via 4.1 to here,
so this separate introduction here is just to allow "Bootstraps" in the meantime.
- No RESTICT|CASCADE in DROP SP (since it's not implemented)
- Added optional "noise" to FETCH: [[NEXT] FROM]
- At least one statement required in all block constructs except BEGIN-END
(where zero is allowed)
mysql-test/r/sp.result:
Modified test cases for optional [[NEXT] FROM] in FETCH.
mysql-test/t/sp.test:
Modified test cases for optional [[NEXT] FROM] in FETCH.
sql/sql_yacc.yy:
Various syntax fixes for stored procedures:
- No RESTICT|CASCADE in DROP SP (since it's not implemented)
- Added optional "noise" to FETCH: [[NEXT] FROM]
- At least one statement required in all block constructs except BEGIN-END
(where zero is allowed)
BitKeeper/etc/ignore:
auto-union
mysql-test/r/grant2.result:
Auto merged
mysql-test/r/sql_mode.result:
Auto merged
mysql-test/t/grant2.test:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
FOUND is not a reserved keyword anymore
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
BUILD/SETUP.sh:
Portability fix
client/mysqltest.c:
Portability fix
mysql-test/r/drop.result:
updated results
mysql-test/r/func_str.result:
New warnings (after merge)
mysql-test/r/insert.result:
Updated tests
mysql-test/r/join_nested.result:
Updated results (because of new column types in 5.0)
mysql-test/r/lock_multi.result:
Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
mysql-test/r/multi_update.result:
Temporary fix until Sanja fixes multi-update locking
mysql-test/r/ps_1general.result:
Update of results after merge
mysql-test/r/ps_2myisam.result:
Update of results after merge
mysql-test/r/ps_3innodb.result:
Update of results after merge
mysql-test/r/ps_4heap.result:
Update of results after merge
mysql-test/r/ps_5merge.result:
Update of results after merge
mysql-test/r/ps_6bdb.result:
Update of results after merge
mysql-test/r/query_cache.result:
Update of results after merge
mysql-test/r/range.result:
New results for new tests
mysql-test/r/rpl_auto_increment.result:
Update with new 4.0 information
mysql-test/r/rpl_charset.result:
After merge fixes
mysql-test/r/subselect.result:
After merge fixes
mysql-test/r/view.result:
Temporary fix until multi-update-locking is fixed
mysql-test/t/drop.test:
Safety fix
mysql-test/t/multi_update.test:
Temporary fix until multi-update-locking is fixed
mysql-test/t/rpl_charset.test:
More comments
mysql-test/t/sp-error.test:
Updated comments
mysql-test/t/view.test:
Temporary fix until multi-update-locking is fixed
scripts/mysql_fix_privilege_tables.sh:
Better error message
sql-common/client.c:
More debugging
sql/ha_ndbcluster.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
Simple optimization of creating item
After merge fixed
Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
sql/item.h:
Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
sql/item_cmpfunc.cc:
Mark fields compared as binary to not be substituted.
sql/item_func.cc:
After merge fix
sql/log_event.cc:
After merge fix
sql/mysql_priv.h:
After merge fix
sql/opt_range.cc:
After merge fix
sql/protocol.cc:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol.h:
Made flags uint instead of int (as it's used as a bit mask)
sql/protocol_cursor.cc:
Made flags uint instead of int (as it's used as a bit mask)
Indentation cleanups
sql/sp.cc:
After merge fixes
Removed compiler warnings
sql/sp_head.cc:
After merge fixes
sql/sql_base.cc:
After merge fixes
Removed 'send_error' from 'insert_fields()' as the error is sent higher up
sql/sql_class.cc:
Give assert if set_n_backup_item_arena is used twice
sql/sql_class.h:
Give assert if set_n_backup_item_arena is used twice
After merge fixes
Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
sql/sql_handler.cc:
After merge fixes
sql/sql_parse.cc:
After merge fixes
sql/sql_prepare.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Moved 'build_equal_items' to optimize_cond() (logical place)
sql/sql_table.cc:
After merge fixes
sql/sql_trigger.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
(This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
sql/sql_view.cc:
After merge fixes
sql/sql_yacc.yy:
After merge fixes
Don't have FOUND as a reserved keyword
mysql-test/r/group_min_max.result:
Test results for BUG#6303
mysql-test/t/group_min_max.test:
Ucommented tests for BUG#6303
sql/opt_range.cc:
Comment fix