8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 18:43:02 +01:00

Fixed bug #8056 : "Too many temporary blobs" with blob_append when select a stored procedue using rows-clause

This commit is contained in:
Vlad Khorsun 2024-03-21 12:38:05 +02:00
parent bd00da8262
commit c353de4e0d

View File

@ -677,7 +677,7 @@ void EXE_receive(thread_db* tdbb,
// ASF: temporary blobs returned to the client should not be released
// with the request, but in the transaction end.
if (top_level)
if (top_level || transaction->tra_temp_blobs_count)
{
for (int i = 0; i < format->fmt_count; ++i)
{
@ -691,7 +691,8 @@ void EXE_receive(thread_db* tdbb,
{
BlobIndex* current = &transaction->tra_blobs->current();
if (current->bli_request &&
if (top_level &&
current->bli_request &&
current->bli_request->req_blobs.locate(id->bid_temp_id()))
{
current->bli_request->req_blobs.fastRemove();
@ -704,7 +705,7 @@ void EXE_receive(thread_db* tdbb,
current->bli_blob_object->BLB_close(tdbb);
}
}
else
else if (top_level)
{
transaction->checkBlob(tdbb, id, NULL, false);
}