- 05 Jul, 2006 1 commit
-
-
unknown authored
auto_increment breaks binlog": if slave's table had a higher auto_increment counter than master's (even though all rows of the two tables were identical), then in some cases, REPLACE and INSERT ON DUPLICATE KEY UPDATE failed to replicate statement-based (it inserted different values on slave from on master). write_record() contained a "thd->next_insert_id=0" to force an adjustment of thd->next_insert_id after the update or replacement. But it is this assigment introduced indeterminism of the statement on the slave, thus the bug. For ON DUPLICATE, we replace that assignment by a call to handler::adjust_next_insert_id_after_explicit_value() which is deterministic (does not depend on slave table's autoinc counter). For REPLACE, this assignment can simply be removed (as REPLACE can't insert a number larger than thd->next_insert_id). We also move a too early restore_auto_increment() down to when we really know that we can restore the value. mysql-test/r/rpl_insert_id.result: result update, without the bugfix, slave's "3 350" were "4 350". mysql-test/t/rpl_insert_id.test: test for BUG#20188 "REPLACE or ON DUPLICATE KEY UPDATE in auto_increment breaks binlog". There is, in this order: - a test of the bug for the case of REPLACE - a test of basic ON DUPLICATE KEY UPDATE functionality which was not tested before - a test of the bug for the case of ON DUPLICATE KEY UPDATE sql/handler.cc: the adjustment of next_insert_id if inserting a big explicit value, is moved to a separate method to be used elsewhere. sql/handler.h: see handler.cc sql/sql_insert.cc: restore_auto_increment() means "I know I won't use this autogenerated autoincrement value, you are free to reuse it for next row". But we were calling restore_auto_increment() in the case of REPLACE: if write_row() fails inserting the row, we don't know that we won't use the value, as we are going to try again by doing internally an UPDATE of the existing row, or a DELETE of the existing row and then an INSERT. So I move restore_auto_increment() further down, when we know for sure we failed all possibilities for the row. Additionally, in case of REPLACE, we don't need to reset THD::next_insert_id: the value of thd->next_insert_id will be suitable for the next row. In case of ON DUPLICATE KEY UPDATE, resetting thd->next_insert_id is also wrong (breaks statement-based binlog), but cannot simply be removed, as thd->next_insert_id must be adjusted if the explicit value exceeds it. We now do the adjustment by calling handler::adjust_next_insert_id_after_explicit_value() (which, contrary to thd->next_insert_id=0, does not depend on the slave table's autoinc counter, and so is deterministic).
-
- 06 Jun, 2006 3 commits
-
-
unknown authored
added 'order by' to avoid result order difference
-
unknown authored
mark result string using String::mark_as_const() which prevents CONCAT from reusing it as a buffer for concatenation result. mysql-test/r/information_schema.result: Bug#19599 duplication of information_schema column value in a CONCAT expr with user var test case mysql-test/t/information_schema.test: Bug#19599 duplication of information_schema column value in a CONCAT expr with user var test case
-
unknown authored
fix: return db name for I_S.TABLES(and others) in original letter case. if mysql starts with lower_case_table_names=1 | 2 then original db name is converted to lower case(for I_S tables). It happens when we perform add_table_to_list. to avoid this we make a copy of original db name and use the copy hereafter. mysql-test/r/lowercase_table2.result: Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1 test case mysql-test/t/lowercase_table2.test: Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1 test case
-
- 05 Jun, 2006 5 commits
-
-
unknown authored
into hasky.mysql.fi:/home/anjuta/my/mysql-5.0
-
unknown authored
into devsrv-b.mysql.com:/users/msvensson/my50-yassl
-
unknown authored
- Better check of required buffer size when processing incoming record headers extra/yassl/README: Import patch yassl.diff extra/yassl/src/handshake.cpp: Import patch yassl.diff extra/yassl/include/openssl/engine.h: Import patch yassl.diff extra/yassl/include/openssl/pkcs12.h: Import patch yassl.diff
-
unknown authored
into arthur.local:/home/my/mysql-5.0 BitKeeper/etc/ignore: auto-union
-
unknown authored
into arthur.local:/home/my/mysql-5.0-clean
-
- 04 Jun, 2006 1 commit
-
-
unknown authored
Moved the test case to separate non-windows specific file. mysql-test/r/create.result: Moved non-windows specific test case to create_not_windows.test. mysql-test/t/create.test: Moved non-windows specific test case to create_not_windows.test. mysql-test/r/create_not_windows.result: #19479: mysqldump creates invalid dump Moved the non-windows specific test case from create.test. mysql-test/t/create_not_windows.test: #19479: mysqldump creates invalid dump Moved the non-windows specific test case from create.test.
-
- 02 Jun, 2006 2 commits
-
-
unknown authored
into hasky.mysql.fi:/home/anjuta/my/mysql-5.0-clean sql/table.cc: Auto merged
-
unknown authored
The problem was missing break; operator. BitKeeper/etc/ignore: Added client/#mysql.cc# to the ignore list client/mysql.cc: Fixed bug #19363: mysql --no_pager makes core dump. There was break; missing in the case statement.
-
- 01 Jun, 2006 16 commits
-
-
unknown authored
-
unknown authored
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
-
unknown authored
into zippy.(none):/home/cmiller/work/mysql/mysql-5.0
-
unknown authored
into shellback.(none):/home/msvensson/mysql/mysql-5.0
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
-
unknown authored
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
-
unknown authored
-
unknown authored
Only check for FN_DEVCHAR in filenames if FN_DEVCHAR is defined. This allows to use table names with ":" on non windows platforms. On Windows platform get an error if you use table name that contains FN_DEVCHAR include/config-win.h: Moved FN_DEVCHAR to config-win.h include/my_global.h: Moved FN_DEVCHAR to config-win.h mysql-test/r/create.result: Added testcase for Bug#19479:mysqldump creates invalid dump BitKeeper/etc/ignore: Added sql/share/iso639-2.txt sql/share/fixerrmsg.pl to the ignore list mysql-test/t/create.test: Added testcase for Bug#19479:mysqldump creates invalid dump mysys/mf_fn_ext.c: Added checking of BASKSLASH_MBTAIL as dirname_part depends on it. Fixed cast and indentation. sql/table.cc: Only check for FN_DEVCHAR in filenames if FN_DEVCHAR is defined. This allows to use table names with ":" on non windows platforms. On Windows platform get an error if you use table name that contains FN_DEVCHAR
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
-
unknown authored
into mysql.com:/home/marty/MySQL/mysql-5.0
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/50-work ndb/src/kernel/blocks/ERROR_codes.txt: Auto merged ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged ndb/test/ndbapi/testNodeRestart.cpp: Auto merged ndb/test/run-test/daily-basic-tests.txt: Auto merged
-
unknown authored
Dont be too aggressive in Dbtc::nodeFailCheckTransaction let it timeout by 1, so that it does not assert that it has waited too long old impl. set timeotu value to 0, making timeout = (ctcTimer - 0) which could be quite big. ndb/src/kernel/blocks/ERROR_codes.txt: error codes ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: 2 new error inserts 7030 - delay in GCP_PREPARE until checkLocalNodefailComplete is true 7031 - delay in GCP_PREPARE and die ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Dont set api con timer to 0, as this might trigger asserion in timeoutfound lab if state == PREPARE_TO_COMMIT ndb/test/ndbapi/testNodeRestart.cpp: testcase ndb/test/run-test/daily-basic-tests.txt: autotest
-
unknown authored
-
unknown authored
-
unknown authored
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0 BitKeeper/deleted/.del-errmsg.txt~31abf77f9e7b9211: Auto merged BitKeeper/deleted/.del-sql_state.h~4307ea5f1fe99019: Auto merged mysql-test/r/explain.result: Auto merged mysql-test/r/key_cache.result: Auto merged mysql-test/r/preload.result: Auto merged mysql-test/t/explain.test: Auto merged mysql-test/t/select.test: Auto merged scripts/make_win_src_distribution.sh: Auto merged sql/sql_base.cc: Auto merged BitKeeper/deleted/.del-errmsg.txt~11edc4db89248c16: Manual merge BitKeeper/deleted/.del-errmsg.txt~184eb1f09242dc72: Manual merge BitKeeper/deleted/.del-errmsg.txt~2cdeb8d6f80eba72: Manual merge BitKeeper/deleted/.del-errmsg.txt~4617575065d612b9: Manual merge BitKeeper/deleted/.del-errmsg.txt~587903f9311db2d1: Manual merge BitKeeper/deleted/.del-errmsg.txt~606dfaeb9e81aa4e: Manual merge BitKeeper/deleted/.del-errmsg.txt~6bbd9eac7f0e6b89: Manual merge BitKeeper/deleted/.del-errmsg.txt~7397c423c52c6d2c: Manual merge BitKeeper/deleted/.del-errmsg.txt~898865062c970766: Manual merge BitKeeper/deleted/.del-errmsg.txt~8ed1999cbd481dc4: Manual merge BitKeeper/deleted/.del-errmsg.txt~94a93cc742fca24d: Manual merge BitKeeper/deleted/.del-errmsg.txt~9dab24f7fb11b1e1: Manual merge BitKeeper/deleted/.del-errmsg.txt~b44a85a177954da0: Manual merge BitKeeper/deleted/.del-errmsg.txt~b6181e29d8282b06: Manual merge BitKeeper/deleted/.del-errmsg.txt~ba132dc9bc936c8a: Manual merge BitKeeper/deleted/.del-errmsg.txt~e2609fdf7870795: Manual merge BitKeeper/deleted/.del-errmsg.txt~e3183b99fbba0a9c: Manual merge BitKeeper/deleted/.del-errmsg.txt~eeb2c47537ed9c23: Manual merge BitKeeper/deleted/.del-errmsg.txt~ef28b592c7591b7: Manual merge BitKeeper/deleted/.del-errmsg.txt~ef53c33ac0ff8a84: Manual merge BitKeeper/deleted/.del-errmsg.txt~f19bfd5d4c918964: Manual merge BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e: Manual merge BitKeeper/deleted/.del-errmsg.txt~ffe4a0c9e3206150: Manual merge BitKeeper/deleted/.del-mysqld_error.h~9dac75782467aab7: Manual merge
-
- 31 May, 2006 12 commits
-
-
unknown authored
into devsrv-b.mysql.com:/users/msvensson/mysql-5.0
-
unknown authored
- avoid allocating memory for each call to 'EVP_md5' and 'EVP_des_ede3_cbc' which were not released until server was stopped - Those functions are used from the SQL function 'des_encrypt' and 'des_decrypt'. extra/yassl/include/openssl/ssl.h: Import patch yassl.diff extra/yassl/include/yassl_int.hpp: Import patch yassl.diff extra/yassl/src/ssl.cpp: Import patch yassl.diff extra/yassl/src/template_instnt.cpp: Import patch yassl.diff extra/yassl/src/yassl_int.cpp: Import patch yassl.diff
-
unknown authored
extra/yassl/src/Makefile.am: Add defined YASSL_PREFIX when building yassl/src extra/yassl/testsuite/Makefile.am: Add defined YASSL_PREFIX when building yassl/testsuite
-
unknown authored
-
unknown authored
extra/yassl/include/openssl/crypto.h: Import patch yassl.diff extra/yassl/include/openssl/ssl.h: Import patch yassl.diff
-
unknown authored
adapting to pushbuild's custom to switch from default pathes. The name for var directory must be set with MYSQLTEST_VARDIR. mysql-test/t/mysqlbinlog.test: correction of log path since pushbuild uses non-default options.
-
unknown authored
into shellback.(none):/home/msvensson/mysql/mysql-5.0 extra/yassl/include/openssl/ssl.h: Auto merged
-
unknown authored
- Part 1, fixes rpl- and federated-tests where connection is made to 127.0.0.1 client/mysqltest.c: Turn on ssl_verify_server_cert only if host is "localhost"
-
unknown authored
- Include prefix files that renames all public functions in yaSSLs OpenSSL API to ya<function_name>. They will otherwise conflict with OpenSSL functions if loaded by an application that uses OpenSSL as well as libmysqlclient with yaSSL support. client/Makefile.am: Remove $yassl_includes ...and one "suspicious line" config/ac-macros/yassl.m4: Remove yassl_includes as they are the same as "normal" include extra/yassl/include/openssl/crypto.h: Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_* extra/yassl/include/openssl/ssl.h: Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_* libmysql/Makefile.am: Remove yassl_includes libmysql_r/Makefile.am: Remove yassl_includes libmysqld/Makefile.am: Remove yassl_includes And one suspicious line libmysqld/examples/Makefile.am: Remove yassl_includes server-tools/instance-manager/Makefile.am: Remove yassl_includes sql/Makefile.am: Remove yassl_includes tools/Makefile.am: Add link with yaSSL libs vio/Makefile.am: Remove yassl_includes extra/yassl/include/openssl/generate_prefix_files.pl: Add utility script to parse the header files to generate the prefix_* files that renames yaSSL SSL_* functions extra/yassl/include/openssl/prefix_crypto.h: Add prefix file for crypto.h extra/yassl/include/openssl/prefix_ssl.h: Add prefix file for ssl.h
-
unknown authored
into mysql.com:/home/marty/MySQL/mysql-5.0 ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged sql/ha_ndbcluster.cc: Auto merged
-
unknown authored
Two threads both try a shutdown sequence which creates a race to the de-init/free of certain resources. This exists in similar form in the client as 17926: "mysql.exe crashes when ctrl-c is pressed in windows." sql/mysqld.cc: We have three potential ways of hitting the iceberg: - unireg_end() has basic de-init - unireg_abort() has extended de-init - main() has a de-init sequence similar to unireg_abort() In the Windows version of the server, Control-C is handled in a different thread from the one main() is in. The main loop is told to end, then unireg_abort() is called. Its de-init and that of main() will then race each other for mutex- and cond-var-destroys, free(), and finally exit(). This patch introduces a special case for Windows that will eliminate the race by ending the signal-handler via unireg_end() instead if SIGINT is signalled. This seems the least intrusive fix that still fixes user-visible behaviour.
-
unknown authored
missed table to drop after merge from 4.1 mysql-test/r/mysqlbinlog.result: result changed mysql-test/t/mysqlbinlog.test: manual merge post-fix
-