hi, we met this inconsistent results in RDS MySQL and RDS proxy, which could be a bug in the RDS proxy.
I created an RDS MySQL 8 and RDS proxy,
when I load the same procedure in RDS directly or via RDS proxy, I got different results.
reproduction steps:
- create table in RDS
create table a (a int, b datetime);
- load procedure to RDS directly
vi rds.sql
DROP PROCEDURE IF EXISTS p002;
delimiter //
CREATE PROCEDURE p002()
BEGIN
DECLARE c INT;
INSERT INTO a VALUES(0, CURRENT_TIMESTAMP()),(0, CURRENT_TIMESTAMP()),(0, CURRENT_TIMESTAMP());
SELECT ROW_COUNT() INTO c;
SELECT CONCAT('rowcount:', c);
END
//
mysql sbtest -uroot -p -h xxx.rds.amazonaws.com < rds.sql
- load procedure to RDS via RDS proxy
only procedure name is different.
vi proxy.sql
DROP PROCEDURE IF EXISTS p003;
delimiter //
CREATE PROCEDURE p003()
BEGIN
DECLARE c INT;
INSERT INTO a VALUES(0, CURRENT_TIMESTAMP()),(0, CURRENT_TIMESTAMP()),(0, CURRENT_TIMESTAMP());
SELECT ROW_COUNT() INTO c;
SELECT CONCAT('rowcount:', c);
END
//
mysql sbtest -uroot -p -h xxx-proxy.rds.amazonaws.com < proxy.sql
- call procedure in RDS, but get inconsistent results.
-- RDS
SELECT ROW_COUNT() INTO c;
-- proxy
SELECT 0 INTO c;
the internal function ROW_COUNT()
has been change in RDS proxy.