From: Date: June 12 2007 10:12pm Subject: bk commit into 5.0 tree (dkatz:1.2533) BUG#28897 List-Archive: http://lists.mysql.com/commits/28606 X-Bug: 28897 Message-Id: <20070612201254.27378489C27@damien-katzs-computer.local> Below is the list of changes that have just been committed into a local 5.0 repository of dkatz. When dkatz does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-06-12 16:12:47-04:00, dkatz@stripped +4 -0 Bug #28897 UUID() returns non-unique values when query cache is enabled Changed UUID() from non-special function in lex.h to a special one parsed by sql_yacc.yy and set Lex->safe_to_cache_query to 0. sql/item_create.cc@stripped, 2007-06-12 16:12:44-04:00, dkatz@stripped +0 -5 removed uncalled code sql/item_create.h@stripped, 2007-06-12 16:12:44-04:00, dkatz@stripped +0 -1 removed uncalled code sql/lex.h@stripped, 2007-06-12 16:12:44-04:00, dkatz@stripped +1 -1 Changed UUID from a non-special, lex function to instead use a rule in sql_yacc.yy sql/sql_yacc.yy@stripped, 2007-06-12 16:12:45-04:00, dkatz@stripped +3 -0 Changed UUID from a non-special, lex function to instead use a rule in sql_yacc.yy and set Lex->safe_to_cache_query to false. # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: dkatz # Host: damien-katzs-computer.local # Root: /Users/dkatz/50_win --- 1.63/sql/item_create.cc 2007-05-09 15:17:20 -04:00 +++ 1.64/sql/item_create.cc 2007-06-12 16:12:44 -04:00 @@ -416,11 +416,6 @@ Item *create_func_unhex(Item* a) return new Item_func_unhex(a); } -Item *create_func_uuid(void) -{ - return new Item_func_uuid(); -} - Item *create_func_version(void) { return new Item_static_string_func("version()", server_version, --- 1.47/sql/item_create.h 2007-05-09 15:17:20 -04:00 +++ 1.48/sql/item_create.h 2007-06-12 16:12:44 -04:00 @@ -94,7 +94,6 @@ Item *create_func_time_to_sec(Item* a); Item *create_func_to_days(Item* a); Item *create_func_ucase(Item* a); Item *create_func_unhex(Item* a); -Item *create_func_uuid(void); Item *create_func_version(void); Item *create_func_weekday(Item* a); Item *create_load_file(Item* a); --- 1.146/sql/lex.h 2007-03-08 04:04:41 -05:00 +++ 1.147/sql/lex.h 2007-06-12 16:12:44 -04:00 @@ -762,7 +762,7 @@ static SYMBOL sql_functions[] = { { "UNIQUE_USERS", SYM(UNIQUE_USERS)}, { "UNIX_TIMESTAMP", SYM(UNIX_TIMESTAMP)}, { "UPPER", F_SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ucase)}, - { "UUID", F_SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_uuid)}, + { "UUID", F_SYM(UUID_SYM)}, { "VARIANCE", SYM(VARIANCE_SYM)}, { "VAR_POP", SYM(VARIANCE_SYM)}, { "VAR_SAMP", SYM(VAR_SAMP_SYM)}, --- 1.522/sql/sql_yacc.yy 2007-06-05 17:04:34 -04:00 +++ 1.523/sql/sql_yacc.yy 2007-06-12 16:12:45 -04:00 @@ -982,6 +982,7 @@ bool my_yyoverflow(short **a, YYSTYPE ** %token UTC_DATE_SYM %token UTC_TIMESTAMP_SYM %token UTC_TIME_SYM +%token UUID_SYM %token VAR_SAMP_SYM %token VALUES %token VALUE_SYM @@ -5172,6 +5173,8 @@ simple_expr: { $$= new Item_func_curtime_utc(); Lex->safe_to_cache_query=0;} | UTC_TIMESTAMP_SYM optional_braces { $$= new Item_func_now_utc(); Lex->safe_to_cache_query=0;} + | UUID_SYM optional_braces + { $$= new Item_func_uuid(); Lex->safe_to_cache_query=0;} | WEEK_SYM '(' expr ')' { $$= new Item_func_week($3,new Item_int((char*) "0",