[MDEV-331] last_insert_id() returns a signed number Created: 2012-06-08  Updated: 2012-06-08  Resolved: 2012-06-08

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.24, 5.3.7, 5.2.12, 5.1.62
Fix Version/s: 5.5.25

Type: Bug Priority: Minor
Reporter: Sergei Golubchik Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: None


 Description   

Test case

create table t1 (a bigint unsigned auto_increment primary key);
insert into t1 values((1<<63)-2);
insert into t1 values(NULL); select last_insert_id();
insert into t1 values(NULL); select last_insert_id();
select * from t1;

Result

MariaDB [test]> insert into t1 values(NULL); select last_insert_id();
+---------------------+
| last_insert_id()    |
+---------------------+
| 9223372036854775807 |
+---------------------+
MariaDB [test]> insert into t1 values(NULL); select last_insert_id();
+----------------------+
| last_insert_id()     |
+----------------------+
| -9223372036854775808 |
+----------------------+
MariaDB [test]> select * from t1;
+---------------------+
| a                   |
+---------------------+
| 9223372036854775806 |
| 9223372036854775807 |
| 9223372036854775808 |
+---------------------+



 Comments   
Comment by Michael Widenius [ 2012-06-08 ]

Fixed by making last_insert_id() unsigned

Generated at Thu Feb 08 06:27:57 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.