summaryrefslogtreecommitdiff
path: root/sql
Commit message (Collapse)AuthorAgeFilesLines
* Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maintunknown2007-01-192-6/+21
|\ | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/ram/work/bug22533/my50-bug22533 mysql-test/r/select.result: Auto merged mysql-test/t/select.test: Auto merged
| * Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maintunknown2007-01-182-6/+21
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/ram/work/bug22533/my50-bug22533 mysql-test/r/type_bit.result: Auto merged mysql-test/t/select.test: Auto merged sql/field.cc: Auto merged sql/item.cc: Auto merged
| | * after merge fix.unknown2007-01-181-0/+2
| | |
| | * after merge fix.unknown2007-01-181-2/+2
| | |
| | * Merge mysql.com:/usr/home/ram/work/bug22533/my41-bug22533unknown2007-01-181-6/+19
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/ram/work/bug22533/my50-bug22533 mysql-test/r/select.result: resolve skipped mysql-test/t/range.test: merging mysql-test/t/select.test: merging sql/item.cc: merging
| | | * Fix for bug #22533: Traditional: Too-long bit value not rejected.unknown2006-12-061-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: storing >=8 byte hexadecimal values we don't check data. Fix: check if the data fits the {u}longlong range. mysql-test/r/select.result: Fix for bug #22533: Traditional: Too-long bit value not rejected. - test result. mysql-test/t/range.test: Fix for bug #22533: Traditional: Too-long bit value not rejected. - adjusted. mysql-test/t/select.test: Fix for bug #22533: Traditional: Too-long bit value not rejected. - test case. sql/item.cc: Fix for bug #22533: Traditional: Too-long bit value not rejected. - limit storing value to {U}LONGLONG_MAX in numeric context.
* | | | Merge siva.hindu.god:/home/tsmith/m/bk/mrg-jan17/50unknown2007-01-1820-506/+1842
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into siva.hindu.god:/home/tsmith/m/bk/mrg-jan17/maint/50 client/mysqlbinlog.cc: Auto merged include/my_pthread.h: Auto merged mysql-test/r/sp.result: Auto merged mysql-test/t/mix_innodb_myisam_binlog.test: Auto merged mysql-test/t/sp.test: Auto merged sql/mysqld.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_parse.cc: Manual merge
| * | | Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rplunknown2007-01-1710-250/+1450
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge sql/item_timefunc.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sp_head.cc: Auto merged sql/sql_parse.cc: Auto merged
| | * \ \ Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rplunknown2007-01-1210-250/+1450
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge client/mysqlbinlog.cc: Auto merged client/mysqldump.c: Auto merged include/my_pthread.h: Auto merged mysql-test/t/disabled.def: Auto merged mysys/my_thr_init.c: Auto merged sql/item_timefunc.cc: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/log_event.h: Auto merged sql/mysql_priv.h: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/sp_head.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_locale.cc: Auto merged sql/sql_parse.cc: Auto merged
| | | * \ \ Merge cbell@bk-internal.mysql.com:/home/bk/mysql-5.0-rplunknown2007-01-102-30/+44
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into suse.vabb.com:/home/Chuck/development/mysql-5.0-rpl
| | | | * | | BUG#22645 - LC_TIME_NAMES: Statement not replicatedunknown2007-01-102-30/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is an additional code change to the get_str_len_and_pointer method in log_events.cc. This change is necessary to correct a problem encountered on 64-bit SUSE where the auto_increment_* variables were being overwritten. The change corrects a cast mismatch which caused the problem. sql/log_event.cc: BUG#22645 - LC_TIME_NAMES: Statement not replicated This patch is an additional code change to the get_str_len_and_pointer, copy_str_and_move methods and the Query_leg_event constructor to correct a type mismatch encountered during testing on SUSE 64-bit. The patch changes the data type of the buffer variables was changed to a new typedef defined in the Log_event class. The new type is: typedef unsigned char Byte; The variables changed include: pos, start, end, and data_buf sql/log_event.h: BUG#22645 - LC_TIME_NAMES: Statement not replicated This patch adds a new type definition to the Log_event class. The new type is typedef unsigned char Byte. It is used in place of the uchar and usigned char definitions in the Query_log_event constructor to eliminate type conversion problems encountere on SUSE 64-bit.
| | | * | | | Fix for BUG#19725 "Calls to SF in other database are not replicatedunknown2007-01-081-0/+2
| | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | correctly in some cases". In short, calls to a stored function located in another database than the default database, may fail to replicate if the call was made by SET, SELECT, or DO. Longer: when a stored function is called from a statement which does not go to binlog ("SET @a=somedb.myfunc()", "SELECT somedb.myfunc()", "DO somedb.myfunc()"), this crafted statement is binlogged: "SELECT myfunc();" (accompanied with a mention of the default database if there is one). So, if "somedb" is not the default database, the slave would fail to find myfunc(). The fix is to specify the function's database name in the crafted binlogged statement, like this: "SELECT somedb.myfunc();". Test added in rpl_sp.test. mysql-test/r/rpl_sp.result: Because I moved the SHOW BINLOG EVENTS down a bit, big portions of its output move. Also, the function's database name appears in SELECT statements. mysql-test/t/rpl_sp.test: Adding test for BUG#19725. Moving the SHOW BINLOG EVENTS down, it is run at the very end to test everything. sql/sp_head.cc: When binlogging a "SELECT myfunc()" (when a stored function is executed inside a statement which does not go to the binlog (like a SET, SELECT, DO), we need to write "SELECT db_of_myfunc().myfunc()", because the function may be in a database which is not the default database.
| | | * | | log_event.cc:unknown2006-12-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After merge fix sql/log_event.cc: After merge fix
| | | * | | After merge fix for bug N22645unknown2006-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/t/mysqlbinlog.test: After merge fix sql/log_event.cc: Fixing comment, thanks to Andrei for suggestion
| | | * | | Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rplunknown2006-12-142-4/+40
| | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b22645 mysql-test/t/disabled.def: Auto merged sql/log_event.cc: Auto merged sql/log_event.h: Auto merged mysql-test/r/mysqlbinlog.result: After merge fix mysql-test/t/mysqlbinlog.test: After merge fix
| | | | * | | Bug#22645 LC_TIME_NAMES: Statement not replicatedunknown2006-12-072-4/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing event based replication of LC_TIME_NAMES for 5.0 (as a replacement of previously made ONE_SHOT replication) mysql-test/r/mysqlbinlog.result: Fixing results mysql-test/r/rpl_locale.result: Fixing results mysql-test/t/disabled.def: Enabling rpl_locale mysql-test/t/mysqlbinlog.test: Check "mysqlbinlog | mysql" reproduces lc_time_names correctly. mysql-test/t/rpl_locale.test: Adding new test: that setting lc_time_names back to en_US works fine. sql/log_event.cc: Implementing event based replication of LC_TIME_NAMES for 5.0 (as a replacement of previously made ONE_SHOT replication) sql/log_event.h: Adding new Q_*_CODE Adding "lc_time_names_number" members into Query_log_event and PRINT_EVENT_INFO
| | | * | | | Merge mysql.com:/home/bkroot/mysql-5.0-rplunknown2006-12-0810-216/+1363
| | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/bk/MERGE/mysql-5.0-merge client/mysqldump.c: Auto merged include/my_pthread.h: Auto merged mysql-test/r/mysqldump.result: Auto merged mysql-test/r/rpl_timezone.result: Auto merged mysql-test/t/disabled.def: Auto merged mysql-test/t/mysqldump.test: Auto merged mysys/my_thr_init.c: Auto merged sql/item_timefunc.cc: Auto merged sql/log.cc: Auto merged sql/mysql_priv.h: Auto merged sql/set_var.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_parse.cc: Auto merged
| | | | * \ \ \ Merge quant.(none):/ext/mysql/bkroot/mysql-5.0-rplunknown2006-12-081-1/+1
| | | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into quant.(none):/ext/mysql/bk/mysql-5.0-bug24507 sql/sql_acl.cc: Auto merged
| | | | | * \ \ \ Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rplunknown2006-12-081-1/+1
| | | | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b24158
| | | | | | * | | | Bug#24158 SET PASSWORD in binary log fails under ANSI_QUOTESunknown2006-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ``SET PASSWORD FOR foo@localhost'' was written into binary log using double quites: ``SET PASSWORD FOR "foo"@"localhost"...''. If sql_mode was set to ANSI_QUOTES, parser on slave considered "foo" and "localhost" as identifiers instead of strigns constants, so it failed to parse, generated syntax error and slave then stopped. Fix: changing binary log entries to use single quotes: ``SET PASSWORD FOR 'foo'@'localhost'...'' not to depend on ANSI_QUOTES. mysql-test/r/rpl_do_grant.result: Adding test case mysql-test/t/rpl_do_grant.test: Adding test case sql/sql_acl.cc: Using single quotes instead of double quotes, not to fails when sql_mode=ANSI_QUOTES.
| | | | * | | | | | Merge quant.(none):/ext/mysql/bkroot/mysql-5.0-rplunknown2006-12-089-215/+1362
| | | | |\ \ \ \ \ \ | | | | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into quant.(none):/ext/mysql/bk/mysql-5.0-bug24507 client/mysqlbinlog.cc: Auto merged client/mysqldump.c: Auto merged mysql-test/t/disabled.def: Auto merged sql/item_timefunc.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_parse.cc: Auto merged
| | | | | * | | | | Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rplunknown2006-12-085-130/+1275
| | | | | |\ \ \ \ \ | | | | | | | |/ / / | | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b20396
| | | | | | * | | | Merging bug#22645 "LC_TIME_NAMES: Statement not replicated" from 4.1.unknown2006-12-052-328/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/t/disabled.def: Disabling test in 5.0 temporarily sql/mysql_priv.h: Adding number_par agrument to constructor sql/sql_locale.cc: Using constructor, instead of structure initialization.
| | | | | | * | | | Merge mysql.com:/usr/home/bar/mysql-4.1.b22645unknown2006-12-055-129/+1272
| | | | | | |\ \ \ \ | | | | | | | |/ / / | | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b22645 mysql-test/r/variables.result: Auto merged mysql-test/t/variables.test: Auto merged sql/mysql_priv.h: Auto merged sql/sql_parse.cc: Auto merged sql/log.cc: Removing one_shot from 5.0. sql/sql_locale.cc: After merge fix sql/set_var.cc: After merge fix sql/set_var.h: After merge fix
| | | | | | | * | | Bug#22645 LC_TIME_NAMES: Statement not replicatedunknown2006-12-056-130/+1176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: replication of LC_TIME_NAMES didn't work. Thus, INSERTS or UPDATES using date_format() always worked with en_US on the slave side. Fix: adding ONE_SHOT implementation for LC_TIME_NAMES. mysql-test/r/variables.result: Adding various tests with LC_TIME_NAMES and string and numeric constants and expressions. mysql-test/t/variables.test: Adding various tests with LC_TIME_NAMES and string and numeric constants and expressions. sql/log.cc: Adding ONE_SHOT trick for lc_time_names. sql/mysql_priv.h: Adding new member "number" - for unique locale IDs. Adding prototype for my_locale_by_number(). sql/set_var.cc: Modifying lc_time_names variable to understand both: - string valyes (using locale name) - number values (using locale IDs) sql/set_var.h: - Marking lc_time_names as ONE_SHOT capable. - Marking lc_time_names as INT_RESULT compatible. sql/sql_locale.cc: - adding local IDs - better layout for locale data declarations (splitting long lines into short ones) - adding DBUG_ASSERT into my_locale_by_name() and moving this function towards the end of file - after "my_locales" declaration - adding my_locale_by_number() implementation sql/sql_parse.cc: Adding initialization of lc_time_names to its default value (en_US) mysql-test/r/rpl_locale.result: Adding test case mysql-test/t/rpl_locale.test: Adding test case
| | | | | | | * | | Merge mysql.com:/usr/home/bar/mysql-4.1.b22646unknown2006-11-201-47/+36
| | | | | | | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-4.1-rpl sql/item_timefunc.cc: Auto merged
| | | | | * | | | | | Bug#20396 Bin Log does not get DELIMETER cmd - Recover StoredProc failsunknown2006-11-282-31/+44
| | | | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: when loading mysqlbinlog dumps, CREATE PROCEDURE having semicolons in their bodies failed. Fix: Using safe delimiter "/*!*/;" to dump log entries. client/mysqlbinlog.cc: - Adding PRINT_EVENT_INFO argument to dump_xxx_log_entries() - Setting delimiter to "/*!*/;" before calling dump functions mysql-test/r/ctype_ucs_binlog.result: Fixing test results mysql-test/r/mix_innodb_myisam_binlog.result: Fixing test results mysql-test/r/mysqlbinlog.result: Fixing test results Adding test case mysql-test/r/mysqlbinlog2.result: Fixing test results mysql-test/r/rpl_charset.result: Fixing test results mysql-test/r/rpl_timezone.result: Fixing test results mysql-test/r/user_var-binlog.result: Fixing test results mysql-test/t/mix_innodb_myisam_binlog.test: Fixing LIKE expression mysql-test/t/mysqlbinlog.test: Adding test case sql/log_event.cc: Using print_event_info->delimiter instead of hard-coded semicolon as a query end marker. sql/log_event.h: Adding new member to store delimiter.
| | | | | * | | | | Merge mysql.com:/usr/home/bar/mysql-4.1.b22646unknown2006-11-201-48/+36
| | | | | |\ \ \ \ \ | | | | | | | |/ / / | | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b22646 mysql-test/t/ctype_utf8.test: Auto merged mysql-test/r/ctype_utf8.result: After merge fix sql/item_timefunc.cc: After merge fix
| | | | | | * | | | Bug#22646 LC_TIME_NAMES: Assignment to non-UTF8 target failsunknown2006-11-081-47/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: After introducing of LC_TIME_NAMES variable, the function date_format() can return international non-ascii characters in month and weekday names. Thus, it cannot return a binary string anymore, because inserting a result of date_format() into a column with non-utf8 character set produces garbage. Fix: date_format() now returns a character string, using "collation_connection" to detect character set and collation for the returned value. This allows to insert results of date_format() properly into columns with various character sets. mysql-test/r/ctype_utf8.result: Adding test case. Fixing old result. mysql-test/t/ctype_utf8.test: Adding test case. sql/item_timefunc.cc: DATE_FORMAT() now returns a character string instead of binary string: - make_date_time() now converts localte data from UTF8 to the character set of "str" argument, instead of copying as is. - fix_dec_and_length() now uses "collation_connection" instead of "binary" for the result, it also now multiplies to mbmaxlen when calculating max_length
| | | | | * | | | | Merge mysql.com:/usr/home/bar/mysql-5.0-rplunknown2006-11-162-6/+7
| | | | | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/usr/home/bar/mysql-5.0.b23619 sql/log_event.cc: Auto merged
| | | | | | * | | | | Bug#23619 Incorrectly escaped multibyte characters in binary log break ↵unknown2006-11-092-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replication Problem: when embedding a character string with introducer with charset X into a SQL query which is generally in character set Y, the string constants were escaped according to their own character set (i.e.X), then after reading such a "mixed" query from binlog, the string constants were unescaped using character set of the query (i.e. Y), instead of X, which gave wrong results or even syntax errors with tricky charsets (e.g. sjis) Fix: when embedding a string constant of charset X into a query of charset Y, the string constant is now escaped according to character Y, instead of its own character set X. mysql-test/r/ctype_cp932_binlog.result: Fixing test results. sql/log_event.cc: Using character set "csinfo" instead of the string character set. sql/sp_head.cc: - adding "thd" argument to sp_get_item_value() to have access to thd->variables.character_set_client - using character_set_client for escaping, instead of the string character set mysql-test/r/rpl_charset_sjis.result: Adding test case mysql-test/t/rpl_charset_sjis.test: Adding test case
| * | | | | | | | | | Disable symlinks under valgrind builds (again), with a comment.unknown2007-01-171-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sql/mysqld.cc: Once again, disable symlink.test under valgrind builds. symlink.test fails deep in mi_repair - the result of this having been disabled for almost 5 years.
| * | | | | | | | | | Merge bodhi.local:/opt/local/work/mysql-4.1-runtimeunknown2007-01-171-1/+1
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-5.0-runtime-debug-max sql/sql_parse.cc: SCCS merged
| | * | | | | | | | | | Fix a failure of lowercase_tables2 test on powermacg5, introducedunknown2007-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by the patch for Bug#4968 sql/sql_parse.cc: Fix lowercase_tables2 test failure on powermacg5: table_case_name() function needed create_info.alias if lowercase_table_names=2, which was not set for the stack copy of HA_CREATE_INFO. Move the update of create_info.alias from create_table_precheck to mysql_execute_command, so that it is done on the right object.
| * | | | | | | | | | | Fix a ps.test failure in 5.0-runtime tree.unknown2007-01-171-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/r/ps.result: Update result files. mysql-test/t/ps.test: Disable result ouptut of SHOW CREATE TABLE: DATA DIRECTORY option may be present or absent from the output depending on the build otpions and the operating system, so the output is not consistent across supported platforms. sql/mysqld.cc: Remove a tricky #ifdef dependency of --use-symbolic-links on PURIFY added in 2002: DEBUG options should not influence server functionality. This backfired by producing different output of SHOW CREATE TABLE depending on the build options (see also Bug#25677 "With --skip-symbolic-links option on, DATA DIRECTORY clause is silently ignored".
| * | | | | | | | | | | Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtimeunknown2007-01-161-0/+1
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2
| | * \ \ \ \ \ \ \ \ \ \ Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtimeunknown2007-01-151-0/+1
| | |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2 sql/sql_select.cc: Auto merged
| | | * | | | | | | | | | | Fix for bug#20390 "SELECT FOR UPDATE does not release locksunknown2007-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of untouched rows in full table scans". SELECT ... FOR UPDATE/LOCK IN SHARE MODE statements as well as UPDATE/DELETE statements which were executed using full table scan were not releasing locks on rows which didn't satisfy WHERE condition. This bug surfaced in 5.0 and affected NDB tables. (InnoDB tables intentionally don't support such unlocking in default mode). This problem occured because code implementing join didn't call handler::unlock_row() for rows which didn't satisfy part of condition attached to this particular table/level of nested loop. So we solve the problem adding this call. Note that we already had this call in place in 4.1 but it was lost (actually not quite correctly placed) when we have introduced nested joins. Also note that additional QA should be requested once this patch is pushed as interaction between handler::unlock_row() and many recent MySQL features such as subqueries, unions, views is not tested enough. mysql-test/r/ndb_lock.result: Enabled back part of the test that covers bug #20390 "SELECT FOR UPDATE does not release locks of untouched rows in full table scans". Adjusted test in such way that it now covers both execution paths in which we unlock non-matching rows inspected during table scan. mysql-test/t/ndb_lock.test: Enabled back part of the test that covers bug #20390 "SELECT FOR UPDATE does not release locks of untouched rows in full table scans". Adjusted test in such way that it now covers both execution paths in which we unlock non-matching rows inspected during table scan. sql/sql_select.cc: evaluate_join_record() should call handler::unlock_row() for records which don't satisfy condition which was pushed-down to this table/level of nested loop. We just put back the thing that we already have in 4.1 and which was lost when we have introduced nested joins.
| * | | | | | | | | | | | | Merge bodhi.local:/opt/local/work/mysql-4.1-runtimeunknown2007-01-151-0/+1
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / / | |/| | / / / / / / / / / / | | | |/ / / / / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-5.0-runtime sql/sql_parse.cc: Auto merged
| | * | | | | | | | | | | A post-merge fix.unknown2007-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sql/sql_parse.cc: A post-merge fix (broken alter_table.test): restore Svoj's fix for Bug#23404 lost during merge.
| | * | | | | | | | | | | Merge bk-internal.mysql.com:/home/bk/mysql-4.1-runtimeunknown2007-01-1510-444/+373
| | |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-4.1-4968-to-push sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Manual merge. sql/sql_table.cc: Manual merge.
| | * \ \ \ \ \ \ \ \ \ \ \ Merge bk-internal.mysql.com:/home/bk/mysql-4.1unknown2007-01-121-2/+3
| | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-4.1-runtime
| | | * \ \ \ \ \ \ \ \ \ \ \ Merge bk-internal.mysql.com:/home/bk/mysql-4.1unknown2007-01-111-2/+3
| | | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-4.1-runtime sql/item_func.cc: Auto merged
| | | | * \ \ \ \ \ \ \ \ \ \ \ Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-runtimeunknown2007-01-091-2/+3
| | | | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-bug23443
| | * | | \ \ \ \ \ \ \ \ \ \ \ \ Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-optunknown2007-01-103-8/+37
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into olga.mysql.com:/home/igor/mysql-4.1-opt
| * | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Manual merge.unknown2007-01-1510-253/+382
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_list.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged
| | * | | | | | | | | | | | | | | | | Post-merge fixes for Bug#4968 "Stored procedure crash if cursor opened unknown2006-12-125-34/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on altered table" and Bug#19733 "Repeated alter, or repeated create/drop, fails" mysql-test/r/ps.result: Post-merge fixes: update results with new tests. mysql-test/r/sp.result: Post-merge fixes: update results. mysql-test/t/ps.test: Add more test cases for Bug#4968 and related. mysql-test/t/sp.test: A post-merge fix: add more testcases for Bug#4968 and related. sql/sql_insert.cc: Post-merge fixes: update comments, fix errors of the manual merge. sql/sql_lex.cc: Fix a manual merge error. sql/sql_parse.cc: Fix a few errors of the manual merge, style. sql/sql_table.cc: Post-merge fixes, fix a few errors of the manual merge, fix style. sql/sql_yacc.yy: A post-merge fix.
| | * | | | | | | | | | | | | | | | | Merge bodhi.local:/opt/local/work/mysql-4.1-4968unknown2006-12-1210-228/+362
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | |_|_|_|_|/ / / / / / / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bodhi.local:/opt/local/work/mysql-5.0-4968-pull-from-4.1 sql/sql_insert.cc: Auto merged mysql-test/r/ps.result: Manual merge. mysql-test/t/ps.test: Manual merge. sql/mysql_priv.h: Manual merge. sql/sql_class.h: Manual merge. sql/sql_lex.cc: Manual merge. sql/sql_lex.h: Manual merge. sql/sql_list.h: Manual merge. sql/sql_parse.cc: Manual merge. sql/sql_show.cc: Manual merge. sql/sql_table.cc: Manual merge. sql/sql_yacc.yy: Manual merge.
| | | * | | | | | | | | | | | | | | | A fix and test cases forunknown2006-12-0810-441/+372
| | | | |_|_|/ / / / / / / / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | | | | | | | | | | | | Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0unknown2007-01-1722-196/+648
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint mysys/my_read.c: Auto merged scripts/make_binary_distribution.sh: Auto merged sql/field.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged