Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
2.4.4
-
None
-
mariadb connectorj 2.4.4, mariadb 10.2.19, java 8
Description
I have a client prepared statement for query "select timestampadd(HOUR, ?, '2019-10-10')"
and set parameter as java Byte value '-6'.
In result, a mariadb 10.2.19 executes next query "select timestampadd(HOUR, 0xFA, '2019-10-10')"
Result of query is wrong because it has set wrong value for the parameter.
I've debugged it a bit and see that org.mariadb.jdbc.internal.com.send.parameters.ByteParameter.java uses hex for text protocol. It seems that code is wrong and should rather be similar to IntParameter.java class code.
Using prepareStatement.setInt(x,y) in replacement of prepareStatement.setByte(x,y) would be more accurate for your example, but you're right about driver behaviour: