- 07 Dec, 2006 1 commit
-
-
unknown authored
Bug#4968 "Stored procedure crash if cursor opened on altered table" Bug#19733 "Repeated alter, or repeated create/drop, fails" Bug#19182 "CREATE TABLE bar (m INT) SELECT n FROM foo; doesn't work from stored procedure." Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing" Bug#22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server" Test cases for bugs 4968, 19733, 6895 will be added in 5.0. Re-execution of CREATE DATABASE, CREATE TABLE and ALTER TABLE statements in stored routines or as prepared statements caused incorrect results (and crashes in versions prior to 5.0.25). In 5.1 the problem occured only for CREATE DATABASE, CREATE TABLE SELECT and CREATE TABLE with INDEX/DATA DIRECTOY options). The problem of bugs 4968, 19733, 19282 and 6895 was that functions mysql_prepare_table, mysql_create_table and mysql_alter_table were not re-execution friendly: during their operation they used to modify contents of LEX (members create_info, alter_info, key_list, create_list), thus making the LEX unusable for the next execution. In particular, these functions removed processed columns and keys from create_list, key_list and drop_list. Search the code in sql_table.cc for drop_it.remove() and similar patterns to find evidence. The fix is to supply to these functions a usable copy of each of the above structures at every re-execution of an SQL statement. To simplify memory management, LEX::key_list and LEX::create_list were added to LEX::alter_info, a fresh copy of which is created for every execution. The problem of crashing bug 22060 stemmed from the fact that the above metnioned functions were not only modifying HA_CREATE_INFO structure in LEX, but also were changing it to point to areas in volatile memory of the execution memory root. The patch solves this problem by creating and using an on-stack copy of HA_CREATE_INFO (note that code in 5.1 already creates and uses a copy of this structure in mysql_create_table()/alter_table(), but this approach didn't work well for CREATE TABLE SELECT statement). mysql-test/r/ps.result: Update test results (Bug#19182, Bug#22060) mysql-test/t/ps.test: Add a test case for Bug#19182, Bug#22060 (4.1-only parts) sql/mysql_priv.h: LEX::key_list and LEX::create_list were moved to LEX::alter_info. Update declarations to use LEX::alter_info instead of these two members. sql/sql_class.h: Replace pair<columns, keys> with an instance of Alter_info in select_create constructor. We create a new copy of Alter_info each time we re-execute SELECT .. CREATE prepared statement. sql/sql_insert.cc: Adjust to a new signature of create_table_from_items. sql/sql_lex.cc: Implement Alter_info::Alter_info that would make a "deep" copy of all definition lists (keys, columns). sql/sql_lex.h: Move key_list and create_list to class Alter_info. Implement Alter_info::Alter_info that can be used with PS and SP. sql/sql_list.h: Implement a copy constructor of class List that makes a deep copy of all list nodes. sql/sql_parse.cc: Adjust to new signatures of mysql_create_table, mysql_alter_table, select_create. Functions mysql_create_index and mysql_drop_index has become identical after initialization of alter_info was moved to the parser, and were merged. Flag enable_slow_log was not updated for SQLCOM_DROP_INDEX, which is a bug. Just like CREATE INDEX, DROP INDEX is currently done via complete table rebuild and is rightfully a slow administrative statement. sql/sql_show.cc: Adjust mysqld_show_create_db to a new signature. sql/sql_table.cc: Adjust mysql_alter_table, mysql_recreate_table, mysql_create_table, mysql_prepare_table to new signatures. sql/sql_yacc.yy: LEX::key_list and LEX::create_list moved to class Alter_info
-
- 29 Nov, 2006 3 commits
- 28 Nov, 2006 2 commits
-
-
unknown authored
into bodhi.local:/opt/local/work/mysql-4.1-runtime libmysql/libmysql.c: Auto merged libmysqld/lib_sql.cc: Auto merged sql/item_sum.cc: Auto merged
-
unknown authored
If using \$(srcdir)/mysql.info in action, use same in rule. Docs/Makefile.am: If using \$(srcdir)/mysql.info in action, use same in rule.
-
- 27 Nov, 2006 3 commits
-
-
unknown authored
into mysql.com:/home/kent/bk/mysql-4.1-merge
-
unknown authored
BSD compatibility Docs/Makefile.am: BSD compatibility
-
unknown authored
Fix undefined behaviour. Many files: Reenabled build outside ource tree bdb/dist/gen_rec.awk: Fix undefined behaviour. acinclude.m4: Reenabled build outside ource tree configure.in: Reenabled build outside ource tree libmysql_r/Makefile.am: Reenabled build outside ource tree libmysqld/Makefile.am: Reenabled build outside ource tree ndb/config/common.mk.am: Reenabled build outside ource tree ndb/config/type_kernel.mk.am: Reenabled build outside ource tree ndb/config/type_ndbapi.mk.am: Reenabled build outside ource tree ndb/config/type_ndbapitest.mk.am: Reenabled build outside ource tree ndb/config/type_ndbapitools.mk.am: Reenabled build outside ource tree ndb/config/type_util.mk.am: Reenabled build outside ource tree ndb/src/kernel/Makefile.am: Reenabled build outside ource tree
-
- 24 Nov, 2006 1 commit
-
-
unknown authored
mysql-test/lib/mtr_unique.pl: - add info message to mtr_require_unique_id_and_wait as suggested - fix for security issue - locks for pids of processes that don't exist anymore are reused, if ps is present and working as expected
-
- 22 Nov, 2006 3 commits
-
-
unknown authored
-
unknown authored
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug21635 tests/mysql_client_test.c: Manual merge.
-
unknown authored
expression cols. The problem was that MYSQL_FIELD::org_name was set for MIN() and MAX() functions (COUNT() is also mentioned in the bug report but was already fixed). After this patch for expressions MYSQL_FIELD::name is set to either expression itself or its alias, and other data origin fields of MYSQL_FILED (db, org_table, table, org_name) are empty strings. sql/item_sum.cc: For expressions only col_name should be non-empty string. tests/mysql_client_test.c: Add test case for bug#21635: MYSQL_FIELD struct's member strings seem to misbehave for expression cols.
-
- 21 Nov, 2006 2 commits
-
-
unknown authored
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23159
-
unknown authored
Make Prepared_stmt_count a global status variable, accessible via SHOW STATUS LIKE 'Prepared_stmt_count';. Documentation should be updated. mysql-test/r/ps.result: Update result for bug#16365: Prepared Statements: DoS with too many open statements, according to bug#23159: prepared_stmt_count should be status variable. mysql-test/t/ps.test: Update test case for bug#16365: Prepared Statements: DoS with too many open statements, according to bug#23159: prepared_stmt_count should be status variable. sql/mysqld.cc: Add Prepared_stmt_count as global status variable. sql/set_var.cc: Remove prepared_stmt_count as system variable.
-
- 17 Nov, 2006 4 commits
-
-
unknown authored
mysql-test/lib/mtr_unique.pl: Library file used by mysql-test-run.pl to determine unique test run identifiers.
-
unknown authored
include/mysql_h.ic: this one should actually be removed from the ABI
-
unknown authored
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23383
-
unknown authored
mysql_stmt_affected_rows() The problem was that affected_rows for prepared statement wasn't updated in the client library on the error. The solution is to always update affected_rows, which will be equal to -1 on the error. libmysql/libmysql.c: Update status variables even in the case of an error. Some variables have a defined value on the error (like affected_rows is -1), others are undefined, so updating them won't harm. libmysqld/lib_sql.cc: Update status variables even in the case of an error. Some variables have a defined value on the error (like affected_rows is -1), others are undefined, so updating them won't harm. tests/mysql_client_test.c: Add test for bug#23383: mysql_affected_rows() returns different values than mysql_stmt_affected_rows().
-
- 16 Nov, 2006 7 commits
-
-
unknown authored
into trift2.:/MySQL/M41/push-4.1
-
unknown authored
-
unknown authored
-
unknown authored
into mysql.com:/home/hf/work/mysql-4.1-mrg include/mysql.h: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/t/rename.test: Auto merged mysql-test/t/subselect.test: Auto merged sql-common/client.c: Auto merged sql/sql_class.h: Auto merged Makefile.am: merging client/mysqltest.c: merging mysql-test/t/mysql_client.test: merging
-
unknown authored
support-files/mysql.spec.sh: Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB) replace "mysql-shared" (as distributed by SuSE) to allow easy upgrading (bug#22081).
-
unknown authored
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
-
unknown authored
The problem was that some functions (namely IN() starting with 4.1, and CHAR() starting with 5.0) were returning NULL in certain conditions, while they didn't set their maybe_null flag. Because of that there could be some problems with 'IS NULL' check, and statements that depend on the function value domain, like CREATE TABLE t1 SELECT 1 IN (2, NULL);. The fix is to set maybe_null correctly. mysql-test/r/func_in.result: Add result for bug#17047: CHAR() and IN() can return NULL without signaling NULL result. mysql-test/t/func_in.test: Add test case for bug#17047: CHAR() and IN() can return NULL without signaling NULL result. sql/item_cmpfunc.cc: Remove assignment to maybe_null, as it was already set in fix_fields() based on all arguments, not only on the first.
-
- 15 Nov, 2006 3 commits
-
-
unknown authored
support-files/mysql.spec.sh: Switch from "make test*" to explicit calls of the test suite, so that "report features" can be used.
-
unknown authored
into mysql.com:/home/bk/MERGE/mysql-4.1-merge
-
unknown authored
mending windows test. mysql-test/r/rpl_packet.result: results changed mysql-test/t/rpl_packet.test: removing because of the connection with windows client can be lost instead of the error code back (source: manual).
-
- 14 Nov, 2006 2 commits
- 13 Nov, 2006 3 commits
-
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/autopush/B19216-4.1-opt
-
unknown authored
into mysql.com:/home/bk/MERGE/mysql-4.1-merge
-
unknown authored
The server sends a number of columns to the client. It uses a limited "fast" function for that instead of the general one. This fast function cannot send numbers larger than 2 bytes. This causes the client to expect smaller number of columns. The client writes outside of the allocated memory buffer as a result. Fixed the server to use the general function to send column count. Fixed the client to check the column count before writing column data. mysql-test/t/mysql_client.test: Bug #19216: Client crashes on long SELECT - test case sql/protocol.cc: Bug #19216: Client crashes on long SELECT - renamed the function for bether comprehention and made it local - used the right (non-local) function to transfer the column count in Protocol::send_fields sql/protocol.h: Bug #19216: Client crashes on long SELECT - made optimized net_store_length local sql-common/client.c: Bug #19216: Client crashes on long SELECT - fixed the client to check for older servers (without the fix).
-
- 12 Nov, 2006 2 commits
-
-
unknown authored
comments are fixed as was suggested in reviews. sql/log_event.h: fixing comments sql/slave.cc: fixing comments sql/sql_repl.cc: fixing comments
-
unknown authored
bugs/wls in cset's comments. The targetted BUG's or WL's identifier must be specified the first in the comments. The referred bugs wls can be typed in same as the targeted clickable format. If the the target of the fix is a WL and there are some references to bugs then the first found reference is regarded as "co-target" so that the bug's identifier comes up on the subject line along with the WL's and commit mail will update the bug page. The latter feature can be disarmed (if there is no need to update the referred bug's page) with typing the first a pseudo-bug pattern (bug#0). This paticular cset will generate subject line containing bug#0 (as it was the first referred) whereas the old version would put in the subject line the last referred pattern (e.g bug#2147483648). BitKeeper/triggers/post-commit: fixing greedyness of old extraction
-
- 11 Nov, 2006 1 commit
-
-
unknown authored
Test for base directory when a RPM install corrected mysql-test/mysql-test-run.pl: Test for base directory when a RPM install corrected
-
- 10 Nov, 2006 3 commits