Expanded the mysql.proc table, reworked the find/create/drop functions
completely, added new functions for FUNCTIONs (lotta functions here :),
got rid of some unnecessary use of Item_strings while at it. Extended
the parser correspondingly, and fiddled around a bit to make SP FUNCTIONs
coexist with UDFs.
Can now CREATE and DROP FUNCTIONs. Invoking yet to come...
Docs/sp-implemented.txt:
Updated with info about CASCADE/RESTICT and METHOD, and some answers to questions.
include/mysqld_error.h:
New error message for misuse of RETURN.
mysql-test/install_test_db.sh:
Added enum field to mysql.proc to distinguish between FUNCTION and PROCEDURE.
mysql-test/r/sp.result:
New test for creating and dropping FUNCTIONS.
mysql-test/t/sp.test:
New test for creating and dropping FUNCTIONS.
scripts/mysql_install_db.sh:
Added enum field to mysql.proc to distinguish between FUNCTION and PROCEDURE.
sql/lex.h:
De-UDFed some symbol names, as they are now used for SPs as well.
Added RETURN_SYM.
sql/share/czech/errmsg.txt:
New error message for misuse of RETURN.
sql/share/danish/errmsg.txt:
New error message for misuse of RETURN.
sql/share/dutch/errmsg.txt:
New error message for misuse of RETURN.
sql/share/english/errmsg.txt:
New error message for misuse of RETURN.
sql/share/estonian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/french/errmsg.txt:
New error message for misuse of RETURN.
sql/share/german/errmsg.txt:
New error message for misuse of RETURN.
sql/share/greek/errmsg.txt:
New error message for misuse of RETURN.
sql/share/hungarian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/italian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/japanese/errmsg.txt:
New error message for misuse of RETURN.
sql/share/korean/errmsg.txt:
New error message for misuse of RETURN.
sql/share/norwegian-ny/errmsg.txt:
New error message for misuse of RETURN.
sql/share/norwegian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/polish/errmsg.txt:
New error message for misuse of RETURN.
sql/share/portuguese/errmsg.txt:
New error message for misuse of RETURN.
sql/share/romanian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/russian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/serbian/errmsg.txt:
New error message for misuse of RETURN.
sql/share/slovak/errmsg.txt:
New error message for misuse of RETURN.
sql/share/spanish/errmsg.txt:
New error message for misuse of RETURN.
sql/share/swedish/errmsg.txt:
New error message for misuse of RETURN.
sql/share/ukrainian/errmsg.txt:
New error message for misuse of RETURN.
sql/sp.cc:
Major rehack to accomodate FUNCTIONs, and to make it easier to add
future in-memory cache of prepared SPs.
sql/sp.h:
Major rehack to accomodate FUNCTIONs, and to make it easier to add
future in-memory cache of prepared SPs.
sql/sp_head.cc:
Now creates FUNCTIONs too. (And got rid of some unnecessary Item_string use.)
sql/sp_head.h:
Now creates FUNCTIONs too. (And got rid of some unnecessary Item_string use.)
sql/sql_lex.h:
New stored FUNCTION commands.
sql/sql_parse.cc:
Added FUNCTION support ("drop" merged with the old UDF code), and made some
additional changes for better error handling (following the sp.cc rehacking).
sql/sql_yacc.yy:
Some former UDF specific symbols renamed.
Added CREATE FUNCTION parsing.
DROP FUNCTION had to be partly merged with the old UDF code, because of the similar
syntax.
RETURN statement added, but still a no-op.
reorganized the sp.test file.
mysql-test/r/sp.result:
New results from the reorganized sp.test file.
mysql-test/t/sp.test:
Reorganized the tests, and added a few new ones. ("fac" and more "select into")
sql/sql_class.cc:
Unlock tables and set thd->lock=0 in select_export::send_eof() and
select_dump::send_eof().
This fixes a problem with an assert() in lock_tables(), and made
SELECT ... INTO OUTFILE and ... INTO DUMPFILE work in stored procedures.
sql/sql_class.cc:
Unlock tables after a SELECT INTO variables, or an assert() in lock_tables() fails.
Note: This might be a problem with other SELECT variants too.
sql/sql_yacc.yy:
Make all bison versions work (hopefully).
BitKeeper/etc/gone:
auto-union
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
configure.in:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/r/connect.result:
Auto merged
mysql-test/r/insert.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/insert.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/Makefile.am:
Auto merged
sql/item.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
"syntax error".
sql/mysqld.cc:
Test for "syntax error" in yyerror() as well.
They've changed the "parse error" string into "syntax error" in bison 1.875.
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
configure.in:
Auto merged
include/my_pthread.h:
Auto merged
include/mysql.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/libmysqld.c:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/rpl000001.result:
Auto merged
mysql-test/r/rpl000004.result:
Auto merged
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/rpl000001.test:
Auto merged
mysys/my_init.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/structs.h:
Auto merged
Makefile.am:
Merge with 4.0.11
mysql-test/mysql-test-run.sh:
Merge with 4.0.11
mysql-test/r/rpl_log.result:
Use local version (needs to be updated)
mysql-test/t/type_blob.test:
Merge with 4.0.11
sql/mysqld.cc:
Merge with 4.0.11
sql/protocol.cc:
Use local version
Reverted wrong patch for mysqld_safe.sh
client/mysqldump.c:
Patch for novell.
scripts/mysqld_safe.sh:
Reverted wrong patch.
(We must delete the files first as otherwise we will get a problem if the files has the wrong permissions or if the machine went down without removing the socket file)
fixed destroing not well constructed analize object
fixed wrong detection of unions in derived tables
sql/sql_analyse.h:
fixed destroing not well constructed analize object
sql/sql_derived.cc:
fixed wrong detection of unions in derived tables
sql/sql_lex.cc:
fixed excluding st_select_lex from global select list
tests/client_test.c:
Updated tests for MYSQL_FIELD members for misc cases
libmysql/libmysql.c:
Remove the assignment from stmt->fields to stmt->mysql->fields
Fixed problem with LIKE and BINARY
BitKeeper/etc/ignore:
added scripts/fill_help_tables
client/mysqltest.c:
Better error messages
libmysql/libmysql.c:
Simple code cleanup
Simplified connect() and change_user() by using sub function
libmysqld/lib_sql.cc:
Ensure that new fields in MYSQL_FIELD structure is used
mysql-test/r/rpl_user_variables.result:
Cleaned up test
mysql-test/r/type_blob.result:
New test
mysql-test/t/rpl_user_variables.test:
Cleaned up test
mysql-test/t/type_blob.test:
New test
sql/item.cc:
Fixed that Item_ref returns the right character set
sql/item_cmpfunc.cc:
Fixed problem with LIKE and BINARY
sql/item_func.cc:
Don't store end ASCII(0) for string user variables
(Made some other code easier)
sql/log_event.cc:
Don't store end ASCII(0) for string user variables.
Fixed comment style
Some optimizations
sql/log_event.h:
Optimized type
sql/mini_client.cc:
Indentation changes
sql/mysql_priv.h:
Made is_update_query extern
sql/protocol.cc:
Simple code cleanup
sql/sql_acl.cc:
Code cleanup
Fixed problem when connecting to user without a password.
sql/sql_lex.h:
Fixed problem with uninitialized memory
sql/sql_parse.cc:
Fixed problem with user without passwords
Fixed some connect problems.
sql/time.cc:
removed reference to uninitialized memory
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.1
BUILD/FINISH.sh:
Auto merged
client/mysqldump.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_class.cc:
Auto merged
BitKeeper/deleted/.del-world.sql~6603b5c62c5bac53:
Auto merged
libmysql/libmysql.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/field.cc:
Auto merged
sql/lex.h:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Fixed a few typos from last patch
configure.in:
Updated script to handle 1 digit numbers in MySQL version
libmysqld/libmysqld.c:
Added mysql_get_server_version
sql/sql_parse.cc:
Fixed typo in last patch
sql/sql_yacc.yy:
Fixed typo in last patch
Portability fixes
Added new client function: mysql_get_server_version()
New server help code (From Victor Vagin)
Fixed wrong usage of binary()
Disabled RTREE usage for now.
BitKeeper/etc/ignore:
added scripts/fill_help_tables.sql
client/mysql.cc:
Some fixes when using 'help'
cmd-line-utils/libedit/compat.h:
Portability fix
cmd-line-utils/libedit/fgetln.c:
Portability fix
include/mysql.h:
Added new client function: mysql_get_server_version()
libmysql/libmysql.c:
Added new client function: mysql_get_server_version()
libmysqld/libmysqld.c:
Fixed prototype
mysql-test/install_test_db.sh:
Added creation of help tables
mysql-test/r/connect.result:
Added help tables
mysql-test/r/myisam.result:
Test of RTREE index
mysql-test/r/type_ranges.result:
updated results
mysql-test/t/myisam.test:
Test of RTREE index
mysql-test/t/type_ranges.test:
Updated test
mysys/charset.c:
Indentation change
mysys/my_symlink.c:
Removed compiler warning
scripts/fill_help_tables.sh:
Update for new help tables
sql/field.cc:
Indentation changes
sql/filesort.cc:
Optimized character set usage
sql/item_cmpfunc.cc:
Fix wrong usage of binary()
sql/item_cmpfunc.h:
Fix wrong usage of binary()
sql/item_func.cc:
Fix wrong usage of binary()
sql/item_func.h:
Fix wrong usage of binary()
sql/item_strfunc.cc:
Fix wrong usage of binary()
sql/item_sum.cc:
Fix wrong usage of binary()
sql/item_sum.h:
Fix wrong usage of binary()
sql/key.cc:
Indentation change
sql/lex.h:
HELP -> HELP_SYM
sql/mysql_priv.h:
Make get_field() more general
sql/password.c:
Indentation change + variable initialisation moved
sql/sql_acl.cc:
Make get_field() more general
sql/sql_base.cc:
Added comments + assertion for double call to mysql_lock_tables
sql/sql_cache.cc:
Indentation changes
sql/sql_class.h:
Added need_strxnfrm to SORT_FIELD to be able to optimise character set handling in filesort
sql/sql_derived.cc:
Renamed variables
sql/sql_help.cc:
New help functions (from Victor Vagin)
sql/sql_lex.cc:
Removed variables that doesn't have to be initialized for each query
sql/sql_lex.h:
Removed not used variable (olap)
sql/sql_parse.cc:
Fixed (not fatal) access of unitialized memory
Indentation / code cleanup
sql/sql_prepare.cc:
Indentaion cleanup
sql/sql_table.cc:
Disabled RTREE until 5.0
sql/sql_udf.cc:
Make get_field() more general
sql/sql_yacc.yy:
Removed access to uninitialized memory
Always set offset_limit and select_limit when using LIMIT (removed warnings)
Allow usage of 'help week'
sql/table.cc:
Make get_field() more general
More comments
sql/table.h:
Fixded type of TABLE_LIST->derived
sql/time.cc:
Stricter date / datetime handling (to be able to handle timestamps with days and microseconds)
strings/ctype-bin.c:
Added cha
sql/sp.cc:
Added DBUG statements.
sql/sp_head.cc:
Added DBUG statements.
sql/sql_parse.cc:
Changed returns into DBUG_RETURNs in mysql_execute_command().
sql/sql_yacc.yy:
Small optimization: Don't generate sp_instr_stmt instructions for empty
SET_OPTIONs. (Which happened if there were only local variables in the SET
statement.)
Replaced mysql.de.texi in mysql-4.0 tree with dummy placeholder.
Moved world.sql sample database to mysqldoc tree.
BitKeeper/deleted/.del-world.sql~6603b5c62c5bac53:
Delete: Docs/world.sql
Docs/manual.de.texi:
Moved mysql.de.texi from mysql-4.0 tree to mysqldoc tree.
Replaced mysql.de.texi in mysql-4.0 tree with dummy placeholder.
sql/sql_class.cc:
backporting Peter's fix for better RAND() initialization from 4.0
to see what it does try
perl -e 'while($N=shift) { printf "N=%-10d",$N; @b=@c=(); for (1..$N) { @a=split(" ",`mysql -BNe "select rand(), rand(), rand(), rand()"`); for(0..3) { $b[$_]+=$a[$_]; $c[$_]+=$a[$_]*$a[$_]; }} for (0..3) { printf "%15.14f ",($c[$_]-$b[$_]*$b[$_]/$N)/$N } print "\n" }' 10 10 10 100 100 10 100 1000
before and after the fix