sidorares / sidorares/node-mysql2
affectedRows value is incorrect. no changedRows value in result
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 4.4k
- Forks
- 680
- Avg merge
- 9h 7m
- Merged PRs (30d)
- 59
Description
Hi,
I've looked through all the old issues and can see that changedRows value ought to be present in the result set now. However I am not seeing it...
I've also noticed that affectedRows has the wrong value when doing an insert
This is my query
connection.DM.query('insert into trainServices (serviceId,depart,origin,destination,coaches)
values (?,?,?,?,?) on duplicate key update coaches = values(coaches)',
[service.serviceId,service.depart,service.origin,service.destination,JSON.stringify(coaches)])
And this is the result data when it results in an insert:
{
"fieldCount": 0,
"affectedRows": 2,
"insertId": 0,
"info": "",
"serverStatus": 2,
"warningStatus": 0
},
Here I expected affectedRows to have a value of 1 since only 1 row was inserted.
affectedRows has the expected value of 1 when the query does not contain the on duplicate key part.
This is the result when there is no change to any data
Or when there is a duplicate so it does an update and there is a change to the data
{
"fieldCount": 0,
"affectedRows": 1,
"insertId": 0,
"info": "",
"serverStatus": 2,
"warningStatus": 0
},
Here I expected to see changeRows with a value of 0 when there was no data change and a value of 1 when there was, but it is not present in the result set. I also notice that info is empty.
I am using mysql2 v1.6.3 (promise mode) and my DB is an AWS RDS instance running mySQL v 5.6.41
Has changedRows support been dropped? Or is there any known issue with AWS's mySQL implementation that is preventing mysql2 picking up the necessary query response info?
Thanks for your time
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the reported INSERT ... ON DUPLICATE KEY UPDATE query using mysql2 v1.6.3 against MySQL 5.6.41, comparing insert, unchanged-update, and changed-update results. Check whether affectedRows, changedRows, and info match the expected values; done means the result object exposes the correct counters or the compatibility limitation is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql, node.js, typescript
- Domain
- backend, database
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100