rishi-rana commented on PR #39773:
URL: https://github.com/apache/shardingsphere/pull/39773#issuecomment-5667282920

   Fixed in 8a64e5f — you're right, and my earlier scoping of this was wrong.
   
   When I first traced `bindBlobParameters()` I treated the negative-id branch 
as a separate mechanism (Proxy-generated result BLOBs held by 
`FirebirdBlobBinaryProtocolValue`) and deliberately left it alone, fixing only 
the positive write-cache path. But #39052 asks for an error on an unknown BLOB 
parameter without qualifying the sign, and a stale, cross-connection or 
fabricated negative id reaching the backend as `NULL` is exactly the silent 
behaviour the issue is about. The distinction I drew wasn't one the requirement 
makes.
   
   `bindBlobParameters()` now checks the negative-id lookup before assigning 
the parameter and throws `InvalidSegstrIdException` when no content exists. 
`assertSkipBlobParameterWhenNegativeBlobId` is replaced by 
`assertRejectUnknownResultBlobParameter`, which asserts the exception; I 
verified it fails against the previous implementation. 
`assertBindResultBlobParameter` is untouched, so valid result-BLOB reuse stays 
covered.
   
   Verification on this head: 32 tests in `database/exception/dialect/firebird` 
and 279 in `proxy/frontend/dialect/firebird`, zero failures; `spotless:check 
checkstyle:check -Pcheck` clean for both modules.


-- 
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