diff options
author | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2005-02-03 21:16:36 +0000 |
---|---|---|
committer | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2005-02-03 21:16:36 +0000 |
commit | 6bfc46f0bf65036fb5beb7b07568125a9bbf88f1 (patch) | |
tree | 27885d7343efb04cae48903b6a83702a1ccd6a0d | |
parent | f8d38cffdf3be872955351fa0c45a8aae53e9e02 (diff) | |
parent | 3c925ee0f1b3387e6df952de8f86c618f11c1a8d (diff) | |
download | mariadb-git-6bfc46f0bf65036fb5beb7b07568125a9bbf88f1.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into pcgem.rdg.cyberkinetica.com:/var/db/bk/work-acurtis/bug8057
sql/item_func.cc:
Auto merged
-rw-r--r-- | mysql-test/r/update.result | 7 | ||||
-rw-r--r-- | mysql-test/t/update.test | 9 | ||||
-rw-r--r-- | sql/item_func.cc | 8 |
3 files changed, 18 insertions, 6 deletions
diff --git a/mysql-test/r/update.result b/mysql-test/r/update.result index beab6105f79..ac370db9ecc 100644 --- a/mysql-test/r/update.result +++ b/mysql-test/r/update.result @@ -212,3 +212,10 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20); update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1"; update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10; drop table t1, t2; +create table t1 (id int not null auto_increment primary key, id_str varchar(32)); +insert into t1 (id_str) values ("test"); +update t1 set id_str = concat(id_str, id) where id = last_insert_id(); +select * from t1; +id id_str +1 test1 +drop table t1; diff --git a/mysql-test/t/update.test b/mysql-test/t/update.test index 704263b1216..04192f25ac8 100644 --- a/mysql-test/t/update.test +++ b/mysql-test/t/update.test @@ -170,3 +170,12 @@ insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20); update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1"; update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10; drop table t1, t2; + +# +# Bug #8057 +# +create table t1 (id int not null auto_increment primary key, id_str varchar(32)); +insert into t1 (id_str) values ("test"); +update t1 set id_str = concat(id_str, id) where id = last_insert_id(); +select * from t1; +drop table t1; diff --git a/sql/item_func.cc b/sql/item_func.cc index bff49541252..7d38c44bab3 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2298,14 +2298,10 @@ longlong Item_func_last_insert_id::val_int() longlong value=args[0]->val_int(); current_thd->insert_id(value); null_value=args[0]->null_value; - return value; } else - { - Item *it= get_system_var(current_thd, OPT_SESSION, "last_insert_id", 14, - "last_insert_id()"); - return it->val_int(); - } + current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT); + return current_thd->insert_id(); } /* This function is just used to test speed of different functions */ |