[MXS-220] LAST_INSERT_ID() query is redirect to slave if function call is in where clause Created: 2015-06-24  Updated: 2015-08-20  Resolved: 2015-07-20

Status: Closed
Project: MariaDB MaxScale
Component/s: readwritesplit
Affects Version/s: 1.1.1, 1.2.0
Fix Version/s: 1.3.0

Type: Bug Priority: Major
Reporter: Michaël de groot Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None


 Description   

Hi,

If a query contains LAST_INSERT_ID() it should be redirected to master, even if it is in WHERE clause.

Also another syntax is not redirected to the master: SELECT @id:=LAST_INSERT_ID(); - please let me know if you need a test case for this as well.

Test case:

MariaDB [mariadb_test]> create table a (id serial, primary key(id));
Query OK, 0 rows affected (0.02 sec)
 
MariaDB [mariadb_test]> insert into a values(null);
Query OK, 1 row affected (0.00 sec)
 
MariaDB [mariadb_test]> select @@hostname from a WHERE id=last_insert_id();
Empty set (0.00 sec)
 
michaeldg [5:44 PM]
MariaDB [mariadb_test]> select @@hostname from a WHERE id=last_insert_id() or id=1;
+------------------------+
| @@hostname             |
+------------------------+
| 203.local |
+------------------------+
1 row in set (0.00 sec)
 
MariaDB [mariadb_test]> select @@hostname, last_insert_id() FROM a WHERE id=last_insert_id();
+------------------------+------------------+
| @@hostname             | last_insert_id() |
+------------------------+------------------+
| 201.local |                1 |
+------------------------+------------------+
1 row in set (0.00 sec)

201 = master, 203 = slave.

Please change it so all queries with LAST_INSERT_ID() function call get redirected to master.



 Comments   
Comment by Michaël de groot [ 2015-06-24 ]

Relates to: 1.0.4 GA: 507 R/W split does not send last_insert_id() to the master

Comment by markus makela [ 2015-07-20 ]

Switched over to Item_func::func_name()

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