reset mysql->net.last_error": the solution is to clear
MYSQL->net error before performing COM_CLOSE: if the call
succeeds, the connection is usable for other statements.
More comprehensive fix is to clear MYSQL->net for all
recoverable errors at the time they happen, it will be
implemented in 5.0 as it introduces incompatibility in behavior.
libmysql/libmysql.c:
A simple fix for Bug#7990 "mysql_stmt_close doesn't reset
mysql->net.last_error"
tests/mysql_client_test.c:
A test case for Bug#7990 " mysql_stmt_close doesn't reset
mysql->net.last_error"
reset mysql->net.last_error": the solution is to clear
MYSQL->net error before performing COM_CLOSE: if the call
succeeds, the connection is usable for other statements.
More comprehensive fix is to clear MYSQL->net for all
recoverable errors at the time they happen, it will be
implemented in 5.0 as it introduces incompatibility in behavior.
libmysql/libmysql.c:
Fix for bug#8330 "mysql_stmt_execute crashes": we need to bail out
from mysql_stmt_execute if mysql->net is occupied with a result set of
another statement. Otherwise on the next attempt to use net we get
a crash, as it's freed in case of error.
tests/mysql_client_test.c:
A test case for Bug#8330 "mysql_stmt_execute craches" (libmysql)
(After review of cs georg:1.1800 by Monty)
VC++Files/libmysqld/libmysqld.dsp:
removed ha_isammrg.cpp (doesn't exist anymore)
VC++Files/mysqldemb/mysqldemb.dsp:
removed ha_isammrg.cpp (doesn't exist anymore)
extra/comp_err.c:
renamed DATADIR to DATADIRECTORY (DATADIR is a windows internal
enumeration type)
innobase/ut/ut0ut.c:
gettimeofday is not available under Windows. Added conditional define
which uses GetLocalTime for windows
libmysql/libmysql.c:
fixed prototype for setup_one_fetch_function which differed from
function declaration.
Fixed not supported unsigned __int64 to double conversion
sql/field.h:
fixed typecast error (windows)
sql/item_sum.cc:
fixed typecast errors (windows)
sql/key.cc:
fixed typecast errors (windows)
sql/opt_range.cc:
fixed not supported unsigned __int64 to double conversion
sql/sql_acl.cc:
fixed typecast errors (windows)
sql/table.cc:
fixed typecast errors (windows)
BitKeeper/etc/ignore:
auto-union
include/my_global.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/examples/Makefile.am:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/mysqld.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
- renamed the tests that use the embedded server (client_test ->
mysql_client_test_embedded, mysqltest -> mysql_test_embedded
and changed some Makefiles and scripts so they are installed in $bindir
(required to be able to run the test suite against the embedded server)
tests/mysql_client_test.c:
Rename: tests/client_test.c -> tests/mysql_client_test.c
libmysql/libmysql.c:
- renamed client_test.c to mysql_client_test.c in a comment
libmysqld/examples/Makefile.am:
- renamed client_test -> mysql_client_test_embedded
- renamed mysqltest -> mysqltest_embedded
- both will be installed in $bindir
scripts/make_binary_distribution.sh:
- install mysql_client_test, mysql_client_test_embedded and mysqltest_embedded
into bin directory
tests/Makefile.am:
- renamed client_test to mysql_client_test
BitKeeper/etc/ignore:
Added tests/mysql_client_test to the ignore list
- renamed the tests that use the embedded server (client_test ->
mysql_client_test_embedded, mysqltest -> mysql_test_embedded
and changed some Makefiles and scripts so they are installed in $bindir
(required to be able to run the test suite against the embedded server)
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/mi_open.c:
Auto merged
mysql-test/r/order_by.result:
Auto merged
sql/filesort.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/t/order_by.test:
Merge
sql/sql_lex.cc:
Merge
sql/sql_yacc.yy:
Use local copy
After merge fixes
libmysql/libmysql.c:
Fixed a bug in prepared statements error handling introduced by me on a recent patch
mysql-test/r/delayed.result:
Updated results
mysql-test/t/delayed.test:
Bigger timeout needed when using --ps-protocol (don't understand why yet)
Added output of not_flushed_dealyed_rows for easier debugging
sql/sql_base.cc:
USE tables_share fix for prepared statements
sql/sql_prepare.cc:
After merge fix
Add support for warnings for prepare of prepared statements
Fixed test to work with --ps-protocol
Fixed some test results
libmysql/libmysql.c:
Add support for warnings for prepare of prepared statements
mysql-test/r/func_concat.result:
After merge fixes
mysql-test/r/select.result:
Delete conflicting tables form previous tests
mysql-test/r/view.result:
New code from 4.1 fixed old error
mysql-test/t/create.test:
Ensure that --ps-protocol return same results as normal test
mysql-test/t/func_group.test:
Remove not needed --disable_ps_protocol
mysql-test/t/func_time.test:
Ensure that --ps-protocol return same results as normal test
mysql-test/t/having.test:
Ensure that --ps-protocol return same results as normal test
mysql-test/t/insert_select.test:
Remove not needed --disable_ps_protocol
mysql-test/t/select.test:
Ensure that --ps-protocol return same results as normal test
mysql-test/t/sp.test:
Fixed comment
mysql-test/t/system_mysql_db_fix.test:
Fix that results is same as from system_mysql_db.test
mysql-test/t/trigger.test:
Added comment
mysql-test/t/type_blob.test:
Remove not needed --disable_ps_protocol
mysql-test/t/union.test:
Run most of the test with --ps-protocol
mysql-test/t/user_limits.test:
Ensure that --ps-protocol return same results as normal test
mysql-test/t/view.test:
Removed --error as bug is now fixed
mysql-test/t/warnings.test:
Ensure that --ps-protocol return same results as normal test
ndb/include/Makefile.am:
Don't automaticly use SCCS files
sql/ha_ndbcluster.cc:
Removed compiler warning
sql/log_event.cc:
After merge fix
sql/sql_class.h:
After merge fix
sql/sql_insert.cc:
After merge fix
sql/sql_load.cc:
After merge fix
sql/sql_prepare.cc:
Add support for warnings for prepare of prepared statements
sql/sql_update.cc:
After merge fixes
BitKeeper/etc/logging_ok:
auto-union
client/mysqltest.c:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
libmysql/errmsg.c:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/mi_write.c:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/show_check.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/tztime.h:
Auto merged
Changed my_error() to print error messages, which come from
arbitrary registered ranges of error messages. Messages can
be unregistered (and should be at end of the program).
Added registration of handler error messages.
Added a new mi_print_error() macro and a new
mi_report_error() function, which supply error
messages with a table name.
Added calls to mi_print_error() or mi_report_error()
at all places in MyISAM, where table corruption is detected.
extra/comp_err.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added prints for ER_ERROR_FIRST and ER_ERROR_LAST.
Removed print for ER_ERROR_MESSAGES.
include/errmsg.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added declaration for a new function.
Added first and last error number defines.
include/my_base.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added first and last error number defines.
include/my_sys.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Removed obsolete defines.
Removed a global variable, which held pointers to the error message arrays.
Added declarations for new functions.
include/mysys_err.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Removed an obsolete define.
Changed two defines to use the new defines.
Added first and last error number defines.
libmysql/errmsg.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Replaced global array initialization by proper registration
and unregistration of client error messages.
libmysql/libmysql.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added a call for unregistration of client error messages.
myisam/mi_delete.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
Added a debugging call to test undefined error numbers in case a special
debug string is set.
myisam/mi_extra.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_info.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added the error logging function.
myisam/mi_key.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_keycache.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_locking.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_open.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/mi_page.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_range.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_rkey.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_search.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
myisam/mi_update.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/mi_write.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added calls to the new error logging function at all places, where
corruption is detected.
Added a debugging call to pretend MyISAM corruption in case a special
debug string is set.
myisam/myisamdef.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added the declaration of the new error logging function
and a new macro.
mysql-test/r/merge.result:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed test results. These come from the changed error reporting
in openfrm().
mysql-test/r/repair.result:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed test results. These come from the changed error reporting
in openfrm().
mysql-test/t/merge.test:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changederror numbers. These come from the changed error reporting
in openfrm().
mysys/errors.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Dropped the assignment of the global errors to the
dropped global pointer array.
mysys/my_error.c:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed my_error() from using a static array of pointers to
error message arrays to using a linked list of structures
with pointers to array message arrays.
Added functions for registering and unregistering error
message arrays to the chain.
sql/derror.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed reading of mysqld error messages to using the new
registering and unregistering functions.
sql/handler.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Added initialization and deinitialization of handler error messages.
Included more handler error messages in the mapping to
mysqld error messages.
sql/mysqld.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed deinitialization of error messages to proper
unregistration.
sql/table.cc:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed error reporting in openfrm() so that error messages from
handler::ha_open() are reported by handler::print_error(). This
changed messages from "Can't open 't1.MYI' (errno: 130)" to
"Incorrect file format 't1'" for example.
sql/unireg.h:
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed two defines to use the new defines.
Changed my_error() to print error messages, which come from
arbitrary registered ranges of error messages. Messages can
be unregistered (and should be at end of the program).
Added registration of handler error messages.
Added a new mi_print_error() macro and a new
mi_report_error() function, which supply error
messages with a table name.
Added calls to mi_print_error() or mi_report_error()
at all places in MyISAM, where table corruption is detected.
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
Build-tools/Do-compile:
Auto merged
VC++Files/sql/mysqld.dsp:
Auto merged
client/Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
Auto merged
client/mysqltest.c:
Auto merged
include/my_base.h:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/dict/dict0load.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
libmysql/libmysql.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_rnext_same.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/ctype_ucs.result:
Auto merged
mysql-test/r/ctype_ujis.result:
Auto merged
mysql-test/r/gis-rtree.result:
Auto merged
mysql-test/r/group_by.result:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/r/metadata.result:
Auto merged
mysql-test/r/ndb_alter_table.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/insert_update.result:
Auto merged
mysql-test/r/timezone2.result:
Auto merged
mysql-test/r/type_enum.result:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/ps_1general.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/system_mysql_db_fix.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
ndb/include/ndbapi/NdbConnection.hpp:
Auto merged
ndb/include/ndbapi/NdbDictionary.hpp:
Auto merged
ndb/src/common/util/version.c:
Auto merged
ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbacc/Makefile.am:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionary.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Auto merged
ndb/src/ndbapi/NdbOperationExec.cpp:
Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
ndb/test/ndbapi/Makefile.am:
Auto merged
scripts/make_win_src_distribution.sh:
Auto merged
scripts/mysql_install_db.sh:
Auto merged
sql/field.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/handler.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_create.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_geofunc.cc:
Auto merged
sql/item_row.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/password.c:
Auto merged
sql/protocol.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_derived.cc:
Auto merged
sql/sql_do.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/strfunc.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/tztime.h:
Auto merged
sql/udf_example.cc:
Auto merged
sql/unireg.cc:
Auto merged
Makefile.am:
Simple merge
client/mysqldump.c:
Simple merge
configure.in:
Simple merge
libmysqld/lib_sql.cc:
Automatic merge
mysql-test/r/func_str.result:
Automatic merge
mysql-test/r/grant.result:
simple merge
mysql-test/r/multi_update.result:
automatc merge
mysql-test/r/ps.result:
automatic merge
mysql-test/r/ps_2myisam.result:
Automatic merge
mysql-test/r/ps_3innodb.result:
Automatic merge
mysql-test/r/ps_4heap.result:
Automatic merge
mysql-test/r/ps_5merge.result:
Automatic merge
mysql-test/r/ps_6bdb.result:
Automatic merge
mysql-test/r/ps_7ndb.result:
Automatic merge
mysql-test/r/show_check.result:
Automatic merge
mysql-test/r/subselect.result:
Automatic merge
mysql-test/t/grant.test:
Automatic merge
mysql-test/t/multi_update.test:
Automatic merge
mysql-test/t/ps.test:
Automatic merge
mysql-test/t/show_check.test:
Automatic merge
ndb/docs/wl2077.txt:
merge
ndb/src/mgmsrv/main.cpp:
merge
scripts/mysql_fix_privilege_tables.sh:
merge
sql/item.cc:
Merge (difficult)
sql/item.h:
simple merge
sql/item_cmpfunc.h:
Automatic merge
sql/item_subselect.cc:
Simple merge
sql/item_subselect.h:
Automatic merge
sql/mysql_priv.h:
Simple merge
sql/slave.h:
Automatic merge
sql/sql_base.cc:
Removed code that was backported to 4.1
sql/sql_class.h:
Merge (some code moved to sql_insert.cc)
sql/sql_db.cc:
simple merge
sql/sql_insert.cc:
Merge (difficult as logic had changed both in 4.1 and 5.0)
Some coded moved here from sql_class.h
sql/sql_parse.cc:
Merge (difficult)
sql/sql_prepare.cc:
Simple merge
sql/sql_select.cc:
Automatic merge
sql/sql_table.cc:
Simple merge
sql/sql_update.cc:
Difficult merge because of different logic for multi-updates
sql/sql_yacc.yy:
Simple merge
tests/client_test.c:
Simple merge
libmysql/libmysql.c:
More post-review fixes for truncation patch:
- use my_strtoll10
- workaround for Intel FPU executive precision feature
- one case when we didn't report possible truncation fixed.
strings/my_strtoll10.c:
Fix a comment.
tests/client_test.c:
One more test now passes
include/mysql.h:
Adding an option for data truncations feature.
libmysql/libmysql.c:
No 'smart' behaviour now for data truncations: they are always
reported, unless switched off with
mysql_options(mysql, MYSQL_REPORT_DATA_TRUNCATION, (my_bool*) &(option=1));
sql-common/client.c:
Add support for report-data-truncation variable in my.cnf
tests/client_test.c:
A test for MYSQL_REPORT_DATA_TRUNCATION option.
fixes. Still to do:
- deploy my_strtoll10 in limbysql.c
- add mysql_options option to switch MYSQL_DATA_TRUNCATED on and off.
include/my_time.h:
More calls are shared between client and server (libmysql now performs
more intelligent date->number and number->date conversions).
TODO: rename those which are not starting with 'my_'
include/mysql.h:
MYSQL_BIND:
- more elaborated comment
- some of the ex-private members were given public names -
it's sometimes convenient to set bind->error to &bind->error_value.
However Monty questions the idea, so it should be given
more thought in future.
- added new members to support data truncation.
Added new return value of mysql_stmt_fetch, MYSQL_DATA_TRUNCATED.
libmysql/libmysql.c:
- added support for data truncation during fetch
- implementation for is_binary_compatible: now conversion functions
are used less frequently
- we now use number_to_datetime and TIME_to_ulonglong for date->number and
number->date conversions
sql-common/my_time.c:
- added implementation of date->number and number->date calls shared
between client and server (moved from time.cc).
sql/field.cc:
- implemented Field_time::store_time() to better support date->time
conversions in prepared mode. After-review fixes.
sql/field.h:
- Field::store_time now returns int
sql/mysql_priv.h:
- removed date->number and number->date conversion functions headers
(moved to my_time.h)
sql/time.cc:
- removed implementation of date->number and number->date conversion
functions (moved to my_time.c)
tests/client_test.c:
- added a test case for data truncation; other test cases adjusted.
- fixed my_process_stmt_result to set STMT_ATTR_UPDATE_MAX_LENGTH (tables
are now printed out prettier).
connect to an external server with mysqld.
libmysql/libmysql.c:
fix for bug #7285: Disable start of embedded server when need to
connect to an external server with libmysqld.
Calling mysql_server_init with a negative value for argc will not
start the embedded server.
include/errmsg.h:
New libmysql error status code CR_NO_STMT_METADATA
libmysql/errmsg.c:
Error message for CR_STMT_NO_METADATA.
Adding an empty line to shorten further diffs when new error
messages are added (as suggested by Monty).
libmysql/libmysql.c:
Return error from mysql_stmt_bind_result() if the statement contains
no metadata.
A few comments fixed.
tests/client_test.c:
Tests fixed: mysql_stmt_bind_result now returns error if there is no
metadata.