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...)
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....
optimization of left expression evaluation
more descriptive method name
mysql-test/r/func_in.result:
test of _NEW_ IN behaviour with NULL
mysql-test/r/subselect.result:
test of _NEW_ IN/ALL/ANY/SOME behaviour with NULL
mysql-test/t/func_in.test:
test of _NEW_ IN behaviour with NULL
mysql-test/t/subselect.test:
test of _NEW_ IN/ALL/ANY/SOME behaviour with NULL
sql/item.cc:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/item.h:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/item_cmpfunc.cc:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/item_cmpfunc.h:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/item_subselect.cc:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/item_subselect.h:
_NEW_ IN/ALL/ANY/SOME behaviour with NULL
optimization of left expression evaluation
sql/sql_class.cc:
more descriptive method name
sql/sql_union.cc:
more descriptive method name
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
Fixed 'not initialized' memory error.
mysql-test/mysql-test-run.sh:
Updates to be able to more easily use --valgrind
mysql-test/r/alter_table.result:
Added missing drop table
mysql-test/t/alter_table.test:
Added missing drop table
sql/field.cc:
Simple optimizations
sql/ha_innodb.cc:
Remove copying of parameters as this leads to memory leaks in MySQL.
Should be instead fixed by, in embedded server, make a temporary copy of
all parameters and free them on server-end
sql/log.cc:
Simple optimization
sql/mysql_priv.h:
Move external reference to struct to include file
sql/mysqld.cc:
Added safety asserts
sql/sql_class.cc:
Fixed non fatal 'not initialized memory reference error' in thread init
sql/sql_udf.cc:
Clear current_thd for global thread
strings/strto.c:
Simple optimization
Optimized SELECT DISTINCT ... ORDER BY ... LIMIT
Fixed reference to uninitalized variable
mysql-test/r/distinct.result:
Updated results for new tests
mysql-test/r/func_math.result:
Fixed test of RND()
mysql-test/r/innodb.result:
Updated results for new tests
mysql-test/r/null.result:
Updated results for new tests
mysql-test/t/distinct.test:
New distinct test
mysql-test/t/func_math.test:
Fixed test of RND()
mysql-test/t/innodb.test:
Test for bugs
mysql-test/t/null.test:
TEst for bugs
sql/field.h:
Change of NULL handling to avoid error messages
sql/field_conv.cc:
Change of NULL handling to avoid error messages
sql/item.cc:
Change of NULL handling to avoid error messages
sql/item.h:
Change of NULL handling to avoid error messages
sql/item_cmpfunc.cc:
Change of NULL handling to avoid error messages
sql/item_func.cc:
Change of NULL handling to avoid error messages
sql/item_func.h:
Cleaned up RND() handling
sql/item_timefunc.cc:
Change of NULL handling to avoid error messages
sql/item_timefunc.h:
Change of NULL handling to avoid error messages
sql/opt_range.cc:
Fixed bug in <=> NULL
sql/password.c:
Indentation cleanup
sql/sql_base.cc:
Change of NULL handling to avoid error messages
sql/sql_class.cc:
Fixed reference to uninitalized variable
sql/sql_handler.cc:
Change of NULL handling to avoid error messages
sql/sql_select.cc:
Change of NULL handling to avoid error messages
Optimized SELECT DISTINCT ... ORDER BY ... LIMIT
sql/sql_select.h:
Change of NULL handling to avoid error messages
sql/unireg.cc:
Change of NULL handling to avoid error messages
(This caused the DISTINCT test to fail)
Removed one inline as this caused compiler problems
heap/hp_create.c:
Comment
heap/hp_update.c:
Indentation cleanup
heap/hp_write.c:
Indentation cleanup
mysql-test/mysql-test-run.sh:
Better options for valgrind
sql/item_sum.cc:
Removed inline as this caused compiler problems with gcc 3.2
(Was also non standard usage of inline)
sql/item_sum.h:
Removed inline as this caused compiler problems with gcc 3.2
sql/sql_class.cc:
Fixed reference to uninitialized value
sql/sql_lex.cc:
Indentation cleanup
sql/sql_select.cc:
Fixed bug when creating keys in temporary HEAP tables.
This is required for prepared statements and stored procedures.
BitKeeper/etc/ignore:
Added bkpull.log bkpull.log.2 bkpull.log.3 build.log sql/safe_to_cache_query.txt to the ignore list
sql/item_create.cc:
Moved safe_to_cache_query from thd to lex.
sql/item_func.cc:
Moved safe_to_cache_query from thd to lex.
sql/sql_cache.cc:
Moved safe_to_cache_query from thd to lex.
Note: Query_cache::is_cacheable() has both a thd and lex argument.
We assumed that it's the lex->safe_to_cache_query we should test.
sql/sql_class.cc:
Moved safe_to_cache_query from thd to lex.
sql/sql_class.h:
Moved safe_to_cache_query from thd to lex.
sql/sql_lex.cc:
Moved safe_to_cache_query from thd to lex.
We set it to 1 initially. It's then set to 0 in cases where
it's know not to be safe. (Before this change, it was set to
0 in thd, and then set to 1 before parsing.)
sql/sql_lex.h:
Moved safe_to_cache_query from thd to lex.
sql/sql_parse.cc:
Moved safe_to_cache_query from thd to lex.
No point in setting it here now, it's set in lex_start() later.
sql/sql_prepare.cc:
Moved safe_to_cache_query from thd to lex.
Must set it after lex_start() has been called.
sql/sql_yacc.yy:
Moved safe_to_cache_query from thd to lex.
BitKeeper/etc/gone:
auto-union
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-.my_sys.h.swp~f6a4a7f8dae03f18:
Auto merged
BitKeeper/etc/config:
Auto merged
acconfig.h:
Auto merged
acinclude.m4:
Auto merged
Docs/manual.texi:
Auto merged
client/mysqlcheck.c:
Auto merged
client/mysqlshow.c:
Auto merged
include/myisam.h:
Auto merged
include/violite.h:
Auto merged
isam/pack_isam.c:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/Makefile.am:
Auto merged
myisam/ft_nlq_search.c:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/func_test.result:
Auto merged
mysql-test/r/isam.result:
Auto merged
mysql-test/r/rpl_replicate_do.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/func_test.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
mysys/hash.c:
Auto merged
mysys/tree.c:
Auto merged
scripts/Makefile.am:
Auto merged
sql/Makefile.am:
Auto merged
sql/filesort.cc:
Auto merged
sql/gen_lex_hash.cc:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/hash_filo.h:
Auto merged
sql/hostname.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/lex.h:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/mini_client.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_analyse.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_rename.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/share/danish/errmsg.txt:
Auto merged
sql/share/dutch/errmsg.txt:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/german/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/italian/errmsg.txt:
Auto merged
sql/share/japanese/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/table.h:
Auto merged
sql/unireg.cc:
Auto merged
sql-bench/server-cfg.sh:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/polish/errmsg.txt:
Auto merged
sql/share/portuguese/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/russian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
sql/share/spanish/errmsg.txt:
Auto merged
sql/share/swedish/errmsg.txt:
Auto merged
sql/share/ukrainian/errmsg.txt:
Auto merged
sql/ha_myisam.cc:
Merge with 4.0
Removed some commented code
sql/sql_db.cc:
Merge with 4.0
Optimized the logging of the drop db call a bit
sql/sql_update.cc:
Added comment
New operators MOD and DIV
SELECT ... FROM DUAL
TRUE = 1 and FALSE = 0
include/mysqld_error.h:
New warning message
mysql-test/r/func_system.result:
Added testing of new functions
mysql-test/r/func_test.result:
Added testing of new functions
mysql-test/r/type_blob.result:
Added testing of new functions
mysql-test/t/func_system.test:
Added testing of new functions
mysql-test/t/func_test.test:
Added testing of new functions
mysql-test/t/type_blob.test:
Added testing of new functions
sql/item_func.cc:
Added function DIV
sql/item_func.h:
Added function DIV
sql/lex.h:
New keywords
sql/share/czech/errmsg.txt:
New warning message
sql/share/danish/errmsg.txt:
New warning message
sql/share/dutch/errmsg.txt:
New warning message
sql/share/english/errmsg.txt:
New warning message
sql/share/estonian/errmsg.txt:
New warning message
sql/share/french/errmsg.txt:
New warning message
sql/share/german/errmsg.txt:
New warning message
sql/share/greek/errmsg.txt:
New warning message
sql/share/hungarian/errmsg.txt:
New warning message
sql/share/italian/errmsg.txt:
New warning message
sql/share/japanese/errmsg.txt:
New warning message
sql/share/korean/errmsg.txt:
New warning message
sql/share/norwegian-ny/errmsg.txt:
New warning message
sql/share/norwegian/errmsg.txt:
New warning message
sql/share/polish/errmsg.txt:
New warning message
sql/share/portuguese/errmsg.txt:
New warning message
sql/share/romanian/errmsg.txt:
New warning message
sql/share/russian/errmsg.txt:
New warning message
sql/share/serbian/errmsg.txt:
New warning message
sql/share/slovak/errmsg.txt:
New warning message
sql/share/spanish/errmsg.txt:
New warning message
sql/share/swedish/errmsg.txt:
New warning message
Translated a lot of error messages
sql/share/ukrainian/errmsg.txt:
New warning message
sql/sql_class.cc:
Added support for warnings during parsing
sql/sql_class.h:
Added support for warnings during parsing
sql/sql_error.cc:
Added support for warnings during parsing
sql/sql_lex.cc:
Fixed comment
sql/sql_parse.cc:
Added automatic conversion from CHAR(length) to BLOB when length > 255
Added support for BLOB(length)
sql/sql_yacc.yy:
New operators MOD and DIV
SELECT ... FROM DUAL
TRUE = 1 and FALSE = 0
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
BitKeeper/etc/ignore:
added autom4te.cache/* bdb/dist/autom4te.cache/* innobase/autom4te.cache/*
include/my_alloc.h:
Small improvement to alloc_root
libmysql/libmysql.c:
Removed compiler warning
myisam/mi_page.c:
Better DBUG message
mysql-test/r/multi_update.result:
Added test with lock tables
mysql-test/r/rpl_replicate_do.result:
Update results
mysql-test/r/rpl_rotate_logs.result:
Make test independent of if t1 exists
mysql-test/t/multi_update.test:
Added test with lock tables
mysql-test/t/rpl_rotate_logs.test:
Make test independent of if t1 exists
mysys/my_alloc.c:
Small imprevement to alloc_root
(Don't free blocks less than ALLOC_MAX_BLOCK_ROOT (4K)
sql/ha_innodb.cc:
More debug messages
sql/ha_myisam.cc:
Safety change
sql/lex.h:
Add support for LIMIT # OFFSET #
sql/lock.cc:
Added assertion
sql/mysql_priv.h:
Change of lock handling
sql/mysqld.cc:
Added function clear_error_messages()
sql/sql_base.cc:
Change lock handling by open_ltable() and open_and_lock_tables()
sql/sql_class.cc:
Split THD::THD to two functions
Move some code from cleanup() to ~THD:THD
Add THD::change_user()
sql/sql_class.h:
Prototype changes in class THD
sql/sql_delete.cc:
Remove locking argument from mysql_delete()
Locking type is now stored in TABLE_LIST
Small code change to not call query_cache_invalidate() twice for transactional tables.
sql/sql_insert.cc:
Remove locking argument from mysql_insert()
Locking type is now stored in TABLE_LIST
Small code change to not call query_cache_invalidate() twice for transactional tables.
Don't use bulk insert if bulk_insert_buff_size is 0
sql/sql_parse.cc:
Changes to make mysql_change_user() work as close+connect
Changed command statistics to use statstics_increment to get more speed
Update code to handle that locks is now stored in TABLE_LIST
sql/sql_update.cc:
Remove locking argument from mysql_update()
Locking type is now stored in TABLE_LIST
Small code change to not call query_cache_invalidate() twice for transactional tables.
sql/sql_yacc.yy:
Locking type is now stored in TABLE_LIST
Added support for LIMIT # OFFSET # syntax
Removed some wrong (never true) checks for SQLCOM_MULTI_UPDATE
mysql-test/t/rpl_replicate_do-slave.opt:
Changed tables to use t1,t2,...
mysql-test/t/rpl_replicate_do.test:
Changed tables to use t1,t2,...
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
mysql-test/r/subselect.result:
test of cyclic reference
mysql-test/t/subselect.test:
test of cyclic reference
sql/sql_parse.cc:
fixed layout
fixed bug in cyclic reference refinition
fixed bug in error handling
mysql-test/r/subselect.result:
test of error handling
test of derived tables inside subselect
mysql-test/t/subselect.test:
test of error handling
test of derived tables inside subselect
sql/sql_class.cc:
fixed error handling error
sql/sql_lex.h:
fifex layout
sql/sql_parse.cc:
fixed processing of derived tables
sql/sql_select.cc:
more quick abort on error
BitKeeper/etc/gone:
auto-union
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-skipkeys~207548ca813d5081:
'Auto converge rename'
libmysqld/lib_sql.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.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_table.cc:
Auto merged
client/mysqlbinlog.cc:
Portability fix
configure.in:
Added use of ASFLAGS (For Solaris with Forte 5.0)
include/my_global.h:
Portability fix
include/myisam.h:
Portability fix
include/queues.h:
Portability fix
innobase/include/ut0ut.h:
Portability fix
innobase/log/log0log.c:
Portability fix
innobase/rem/rem0cmp.c:
Portability fix
innobase/trx/trx0sys.c:
Portability fix
isam/pack_isam.c:
Portability fix
myisam/ft_boolean_search.c:
Portability fix
myisam/mi_dynrec.c:
Code change to go around bug in Forte 5.0
myisam/sort.c:
Portability fix
mysys/my_aes.c:
Portability fix
scripts/Makefile.am:
Support for ASFLAGS
scripts/mysqlbug.sh:
Support for ASFLAGS
sql/field.cc:
Portability fix
sql/filesort.cc:
Portability fix
sql/gen_lex_hash.cc:
Portability fix
sql/ha_innodb.cc:
Portability fix
Changed SHOW INNODB STATUS to return error instead of writing message to log file.
sql/ha_isammrg.cc:
Portability fix
sql/ha_myisam.cc:
Portability fix
sql/ha_myisammrg.cc:
Portability fix
sql/hash_filo.h:
Portability fix
sql/hostname.cc:
Portability fix
sql/item_cmpfunc.h:
Indentation change
sql/item_func.cc:
Portability fix
sql/item_func.h:
Portability fix
sql/log.cc:
Portability fix
sql/log_event.cc:
Portability fix
sql/mysql_priv.h:
Portability fix
sql/mysqld.cc:
Portability fix
Fixed bug with rpl_recovery_rank command line option on 64 bit systems
sql/opt_range.cc:
Portability fix
sql/repl_failsafe.cc:
Portability fix
sql/slave.cc:
Portability fix
sql/slave.h:
Portability fix
sql/sql_acl.cc:
Portability fix
sql/sql_base.cc:
Portability fix
sql/sql_cache.cc:
Portability fix
sql/sql_cache.h:
Portability fix
sql/sql_class.cc:
Portability fix
sql/sql_delete.cc:
Portability fix
sql/sql_insert.cc:
Portability fix
sql/sql_manager.cc:
Portability fix
sql/sql_parse.cc:
Portability fix
BUILD/compile-solaris-sparc-forte:
C
sql/sql_udf.cc:
Portability fix
sql/sql_update.cc:
Portability fix
strings/Makefile.am:
Portability fix
strings/bmove_upp-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/str_test.c:
Cleanup
strings/strappend-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strend-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strmake-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strmov-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strnmov-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strstr-sparc.s:
Fix so that this works on 32 and 64 bit sparcs
strings/strxmov-sparc.s:
Fixes to make this more portable, but it's still not usable on 64 bit systems :(
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
small Item_ref fix
mysql-test/r/subselect.result:
DISTINCT in subselect test
mysql-test/t/subselect.test:
DISTINCT in subselect test
sql/sql_class.cc:
fixed DISTINCT in subselect bug