schizophrenicmaniac commented on PR #40309:
URL: https://github.com/apache/shardingsphere/pull/40309#issuecomment-6475142646

   @terrymanu Thanks, both are fixed in the latest commit.
   
   1. Parameters matched to a DECIMAL/NUMERIC or TIME WITH TIME ZONE column 
(BETWEEN bounds, comparisons and UPDATE SET) are now described as 
VARCHAR(32765), the same fallback the CAST path already uses for those types. 
The value then reaches the backend as text, so 12.34 stays 12.34 and there's no 
TIME_TZ value for the execute side to decode. 
assertDescribeExactNumericAndTimeWithTimeZoneColumnParametersAsVarchar covers 
an INSERT ... SELECT with `amount BETWEEN ? AND ? AND start_time = ?`.
   2. Character CAST parameters are now described with a byte length of the 
declared characters times 4, the most any Firebird character set needs per 
character (UTF8), capped at 32765. So CAST(? AS VARCHAR(5) CHARACTER SET UTF8) 
comes back with LENGTH 20, enough for five 3-byte Chinese characters. With a 
single-byte connection charset an over-long value is then rejected by the 
backend CAST rather than by Jaybird. 
assertDescribeCharacterCastParametersWithMultibyteLength checks VARCHAR(5) 
UTF8, CHAR and the 32765 cap.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to