This fixes a problem in replication where RESET SLAVE could crash a running slave.
mysql-test/r/rpl_failsafe.result:
Added missing drop
mysql-test/r/rpl_log_pos.result:
Added slave stop before change master
mysql-test/t/rpl_log_pos.test:
Added slave stop before change master
sql/sql_parse.cc:
reset_slave() sends it's own errors
sql/sql_repl.cc:
reset_slave() sends it own error.
RESET SLAVE and CHANGE MASTER will now give an error if slave is running.
This fixes a problem in replication where RESET SLAVE could crash a running slave.
Fixed backpatching of forward jumps.
Implemented LOOP, WHILE, REPEAT (temporarily known as SPREPEAT).
Known bug: Expression evaluation still not quite ok (e.g. "x > 0"),
which is why IF and CASE is not yet implemented.
sql/Makefile.am:
Added new sp.h/sp.cc file.
sql/item.h:
New deferred result_type() method in Item_splocal.
sql/lex.h:
Temporary fix until REPEAT conflict is solved. Use SPREPEAT for now.
sql/sp_head.cc:
Moved create/find/drop functions to sp.cc.
Fixed the backpatch stuff.
(Also removed some dead code and updated comments.)
sql/sp_head.h:
Moved create/find/drop declarations to sp.h.
Fixed the backpatch stuff.
sql/sp_pcontext.h:
New method: last_label().
sql/sql_parse.cc:
Include sp.h.
sql/sql_yacc.yy:
Fixed backpatching of forward jumps.
Implemented LOOP, WHILE, and REPEAT. (Note: SPREPEAT for now.)
BitKeeper/etc/logging_ok:
auto-union
include/mysql.h:
Auto merged
sql/convert.cc:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
libmysqld/lib_sql.cc:
merging
sql/item_strfunc.cc:
merging
Class for sending data from server to client (Protocol)
This handles both the old ( <= 4.0 ) protocol and then new binary protocol that is used for prepared statements.
libmysql/libmysql.c:
Jump over reserved bits in the binary protocol
libmysqld/Makefile.am:
rename of net_pkg.cc to protocol.cc
mysql-test/r/case.result:
Fixed previously wrong test
mysql-test/r/cast.result:
Fixed previously wrong test
sql/Makefile.am:
Rename of net_pkg.cc to protocol.cc
sql/field.cc:
Binary protocol
Added key handling functions for new VARCHAR type
sql/field.h:
New protocol
sql/ha_berkeley.cc:
New protocol
sql/ha_berkeley.h:
New protocol
sql/ha_innodb.cc:
New protocol
sql/ha_myisam.cc:
New protocol
sql/item.cc:
New protocol
sql/item.h:
New protocol
sql/item_func.cc:
Removed old code from 3.23
sql/item_func.h:
Set cached_result_type as it was previosly used before set
sql/item_subselect.cc:
Standard make_field() is now good enough
sql/item_subselect.h:
Use default make_field()
sql/item_sum.cc:
Clean up Item_sum::make_field()
sql/item_sum.h:
Use standard make_field()
sql/item_timefunc.h:
return correct types for casts()
Use standard make_field()
sql/log_event.cc:
New protocol
sql/log_event.h:
New protocol
sql/mysql_priv.h:
Move things to protocol.h
sql/opt_range.cc:
Indentation cleanups + small optimization
sql/procedure.h:
Use MYSQL_TYPE instead of FIELD_TYPE
sql/protocol.cc:
Class for sending data from server to client.
This handles both the old ( <= 4.0 ) protocol and then new binary protocol that is used for prepared statements.
sql/repl_failsafe.cc:
New protocol
sql/slave.cc:
New protocol
sql/sql_acl.cc:
New protocol
sql/sql_base.cc:
Move send_fields() to protocol.cc
sql/sql_class.cc:
New protocol
sql/sql_class.h:
New protocol
sql/sql_db.cc:
New protocol
sql/sql_error.cc:
New protocol
sql/sql_handler.cc:
New protocol
sql/sql_help.cc:
New protocol
sql/sql_parse.cc:
Remove wrong assert (variable was not initalized at this point)
sql/sql_prepare.cc:
New protocol
sql/sql_repl.cc:
New protocol
sql/sql_select.cc:
New protocol
sql/sql_show.cc:
New protocol
sql/sql_string.h:
New functions used by the protocol functions
sql/sql_table.cc:
New protocol
sql/structs.h:
Make second_part ulong to prepare for ANSI sub-seconds
sql/time.cc:
New convert function needed by the new protocol functions
Implements creation and dropping of PROCEDUREs, IN, OUT, and INOUT parameters,
single-statement procedures, rudimentary multi-statement (begin-end) prodedures
(when the client can handle it), and local variables.
Missing most of the embedded SQL language, all attributes, FUNCTIONs, error handling,
reparses procedures at each call (no caching), etc, etc.
Certainly buggy too, but procedures can actually be created and called....
sql/Makefile.am:
Added SP files.
sql/item.cc:
Added this*_item() methods for Item_splocal. (SP local variable)
sql/item.h:
Added this*_item() methods for SPs in Item, and the new Item_splocal
class (SP local variable).
sql/lex.h:
Added new symbols for SPs. (Note: SPSET is temporary and will go away later.)
sql/sql_class.cc:
Initialize SP runtime context in THD.
sql/sql_class.h:
Add SP runtime context to THD.
sql/sql_lex.cc:
Init. buf pointer to beginning of command (needed by SPs).
Also initialize SP head and parse time context.
sql/sql_lex.h:
New SQLCOM_ tags for SPs, and added pointer to beginning of command pointer and
SP head and parse-time context to LEX.
sql/sql_parse.cc:
Added SQLCOM_CREATE_PROCEDURE, _CALL, _ALTER_PROCEDURE and _DROP_PROCEDURE cases.
(Still rudimentary and lacking proper error handling...)
sql/sql_yacc.yy:
Lots and lots of additions for SPs...
(Still even more missing, and no error messages...)
libmysql/libmysql.c:
Auto merged
libmysql/password.c:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/password.c:
Auto merged
sql/sql_analyse.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql-bench/server-cfg.sh:
Auto merged
sql/sql_yacc.yy:
Auto merged
Added THD to add_to_xxx_list() functions for faster parsing.
heap/_check.c:
After merge fix
mysql-test/r/distinct.result:
After merge fix
mysql-test/r/multi_update.result:
Make timestamp test portable
mysql-test/t/multi_update.test:
Make timestamp test portable
sql/field.cc:
After merge fix
sql/item_sum.cc:
After merge fix
sql/log_event.cc:
Remove compiler warning
sql/mysql_priv.h:
Added THD to add_to_list (Faster parsing)
sql/sql_derived.cc:
Fixed parameters to create_tmp_table()
sql/sql_lex.cc:
Added THD to add_to_list (Faster parsing)
sql/sql_lex.h:
Added THD to add_to_list (Faster parsing)
sql/sql_parse.cc:
Added THD to add_to_list (Faster parsing)
sql/sql_select.cc:
After merge fixes
Fixed return values from JOIN::optimize()
Replaced test_function_query with '!tables_list'
Optimized arguments to create_tmp_table()
sql/sql_select.h:
Removed test_function_query variable
Updated prototypes
sql/sql_union.cc:
Updated argument lists.
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Added THD to all add_xxx_to_list() functions
sql/table.h:
After merge fix
prohibited using procedure inside subquery
fixed error handling of procedure analize
mysql-test/r/subselect.result:
test of PROCEDURE in subselect
test of PROCEDURE of subselect
mysql-test/t/subselect.test:
test of PROCEDURE in subselect
test of PROCEDURE of subselect
sql/sql_analyse.cc:
fixed error handling in procedure analize
sql/sql_parse.cc:
fixed bug of PROCEDURE in same query with subselects
sql/sql_yacc.yy:
prohibited using procedure inside subquery
BitKeeper/etc/ignore:
auto-union
acinclude.m4:
Auto merged
configure.in:
Auto merged
heap/hp_delete.c:
Auto merged
heap/hp_scan.c:
Auto merged
include/my_base.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_rnext_same.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/distinct.result:
Auto merged
mysql-test/r/func_math.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/t/group_by.test:
Auto merged
mysql-test/t/select.test:
Auto merged
mysys/hash.c:
Auto merged
sql/field.h:
Auto merged
sql/field_conv.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_analyse.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/structs.h:
Auto merged
sql/uniques.cc:
Auto merged
strings/strto.c:
Auto merged
vio/vio.c:
Auto merged
BitKeeper/triggers/post-commit:
Add changeset to commit messages
sql-bench/crash-me.sh:
Use version from 4.0
sql-bench/server-cfg.sh:
Use version from 4.0
client/mysqladmin.c:
fix folding
libmysql/libmysql.c:
Minor optimizations
sql/mini_client.cc:
Minor optimizations
sql/password.c:
Optimiations
sql/sql_acl.cc:
Get rid of stage parameter and flag old passwords with '*' instead of zero
sql/sql_acl.h:
fix prototype
sql/sql_parse.cc:
Minor optimizations
This alters not only my code so it looks like I'm not only one adding the spaces.
client/mysqladmin.c:
cut spaces
include/mysql_com.h:
cut soaces
sql/item_strfunc.cc:
cut spaces
sql/mini_client.cc:
cut spaces
sql/mysql_priv.h:
cut spaces
sql/mysqld.cc:
cut spaces
sql/password.c:
cut spaces
sql/sql_parse.cc:
cut spaces
sql/sql_yacc.yy:
cut spaces
into mysql.com:/home/pz/mysql/mysql-4.1
sql/mysql_priv.h:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into sanja.is.com.ua:/home/bell/mysql/work-crash-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_parse.cc:
Auto merged
fix mysql_change_user() for old clients
include/mysql_com.h:
Mover global defines here
libmysql/libmysql.c:
Remove end spaces from all lines
scripts/mysql_fix_privilege_tables.sh:
Move password modification to separate alter table
sql/mini_client.cc:
Defines, fold long lines
sql/mysqld.cc:
Backup old scramble for mysql_change_user to work from old clients
sql/password.c:
Several minor optimizations
sql/sql_acl.cc:
Remove ending spaces
sql/sql_class.h:
Add old scramble for mysql_change_user to work with old clients
sql/sql_parse.cc:
Remove end spaces.
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/subselect.result:
test of using same table for changing and select
mysql-test/t/subselect.test:
test of using same table for changing and select
sql/mysql_priv.h:
new function
sql/sql_base.cc:
new function
Implement mysql_change_user
Get rid of double user search at authentication
Some cleanups
client/mysqladmin.c:
Fix long line
include/mysql_com.h:
Fix long lines
libmysql/libmysql.c:
mysql_change_user() for new auth + some fixes
sql/password.c:
Add author info so who is guilty in errors would be known :)
sql/sql_acl.cc:
Move class definitions to .h
sql/sql_acl.h:
Add class definitions
sql/sql_parse.cc:
Get rid of double user search. Implement mysql_change_user
BitKeeper/etc/logging_ok:
auto-union
client/insert_test.c:
Auto merged
client/select_test.c:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/sql_parse.cc:
Manual merge
New (simpler) internal timestamp handling.
More debuging to heap tables.
Small cleanups to multi-table-delete
false -> 0 and true -> 1 (We should use TRUE and FALSE)
heap/_check.c:
Added checking of rows
heap/hp_delete.c:
Extra debugging
heap/hp_scan.c:
Extra debugging
heap/hp_update.c:
Extra debugging
heap/hp_write.c:
Extra debugging
include/my_base.h:
Added option to disable row cache when using updates
isam/extra.c:
Added option to disable row cache when using updates
myisam/mi_check.c:
Comment cleanup
myisam/mi_extra.c:
Added option to disable row cache when using updates
myisam/sort.c:
Indentaion cleanups
myisammrg/myrg_extra.c:
Added option to disable row cache when using updates
mysql-test/r/multi_update.result:
Updated results
mysql-test/t/multi_update.test:
Cleanup up to only use table names t1, t2,...
mysys/mf_iocache.c:
Safety fix
sql/item_cmpfunc.cc:
change true-> 1 and false -> 0
sql/mysql_priv.h:
Cleaned up SQL_LIST handling
sql/sql_base.cc:
Fixed grant checking if SELECT tablename.*
sql/sql_class.h:
Cleaned up multi-table-update
sql/sql_delete.cc:
Fixed OPTION_SAFE_UPDATE checking in multi-table-delete.
Fixed query-cache invalidation in multi-table-delete
sql/sql_insert.cc:
cleaned up timestamp handling
sql/sql_olap.cc:
false -> 0
sql/sql_parse.cc:
Optimized some list handling.
Moved multi-table-update to sql_update.cc
sql/sql_select.cc:
More comments
Fixed create_tmp_table for multi-table-update
sql/sql_select.h:
New prototypes
sql/sql_union.cc:
false -> 0
Cleaned up timestamp handling
sql/sql_update.cc:
New multi-update-table code
sql/sql_yacc.yy:
false -> 0, true -> 1
Optimized some list handling
sql/table.h:
Added union for temporary values.
Made shared int to be able to store counters.
sql/uniques.cc:
Indentation cleanup
fixed sunction-test select in IN bug
fixed unions in subselect bug
include/mysqld_error.h:
new warning
mysql-test/r/subselect.result:
test of * without tables in IN
test of sunction-test select in IN
test of unions in subselect
mysql-test/t/subselect.test:
test of * without tables in IN
test of sunction-test select in IN
test of unions in subselect
sql/item.cc:
fixed * substitution without tables
sql/item_subselect.cc:
fixed subselect rewriting with function-test subselect
sql/item_subselect.h:
mechanism for subselect removing
sql/share/czech/errmsg.txt:
new warning
sql/share/danish/errmsg.txt:
new warning
sql/share/dutch/errmsg.txt:
new warning
sql/share/english/errmsg.txt:
new warning
sql/share/estonian/errmsg.txt:
new warning
sql/share/french/errmsg.txt:
new warning
sql/share/german/errmsg.txt:
new warning
sql/share/greek/errmsg.txt:
new warning
sql/share/hungarian/errmsg.txt:
new warning
sql/share/italian/errmsg.txt:
new warning
sql/share/japanese/errmsg.txt:
new warning
sql/share/korean/errmsg.txt:
new warning
sql/share/norwegian-ny/errmsg.txt:
new warning
sql/share/norwegian/errmsg.txt:
new warning
sql/share/polish/errmsg.txt:
new warning
sql/share/portuguese/errmsg.txt:
new warning
sql/share/romanian/errmsg.txt:
new warning
sql/share/russian/errmsg.txt:
new warning
sql/share/serbian/errmsg.txt:
new warning
sql/share/slovak/errmsg.txt:
new warning
sql/share/spanish/errmsg.txt:
new warning
sql/share/swedish/errmsg.txt:
new warning
sql/share/ukrainian/errmsg.txt:
new warning
sql/sql_base.cc:
fixed case on no name field in UNION subselect
sql/sql_lex.cc:
mechanisp of removing single subselect for optimisation purposes
sql/sql_lex.h:
mechanisp of removing single subselect for optimisation purposes
sql/sql_parse.cc:
error handling
sql/sql_union.cc:
fixed unions in subselect
sql/sql_yacc.yy:
fixed Lex->describe flag appearence
doing it in sql_yacc.yy does not work
this commit contains fixes for other tests
there are fixes in subselect test which will have to be changed
once fix_fields is fixed to work with aliased derived tables
sql_yacc.yy and sql_parse.cc cleanup
sql/lex.h:
INSERT ... UPDATE syntax
sql/sql_parse.cc:
merged SQLCOM_REPLACE and SQLCOM_INSERT the same way their _SELECT counterparts were merged long time ago - just to remove duplicate code and be consistent :)
now nobody needs SQLCOM_REPLACE* at all :))
sql/sql_yacc.yy:
INSERT ... UPDATE syntax
cleanup
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
Added my_global.h to compile after my_list.h is added to mysql.h
sql_prepare.cc:
Handle close stmt from client
Minor fixups to make SET variable=? to work
sql_parse.cc:
Added missed COM_CLOSE_STMT
mysql_priv.h:
Change mysql_stmt_close to mysql_stmt_free to not to conflict with client type
libmysql.c:
Clean all open stmts during mysql_close() implicitly
libmysql/libmysql.c:
Clean all open stmts during mysql_close() implicitly
sql/mysql_priv.h:
Handle close_stmt from client
Change mysql_stmt_close to mysql_stmt_free to not to conflict with client type
sql/sql_parse.cc:
Added missed COM_CLOSE_STMT
sql/sql_prepare.cc:
Handle close stmt from client
Change mysql_stmt_close to mysql_stmt_free to not to conflict with client type
Minor fixups to make SET variable=? to work
client/insert_test.c:
Added my_global.h to compile after my_list.h is added to mysql.h
client/select_test.c:
Added my_global.h to compile after my_list.h is added to mysql.h
sql/sql_delete.cc:
new order in global select list
sql/sql_derived.cc:
removed recursion from derived tables
sql/sql_insert.cc:
new order in global select list
sql/sql_lex.h:
pointer to global select list
sql/sql_select.cc:
new order in global select list
sql/sql_update.cc:
new order in global select list
mysql-test/r/subselect.result:
Multi-delete with subselect test
mysql-test/t/subselect.test:
Multi-delete with subselect test
sql/sql_parse.cc:
multi-delete with subselects