Skip to content

Commit 5d44e7c

Browse files
committed
Fixed bug #8056 : "Too many temporary blobs" with blob_append when select a stored procedue using rows-clause
1 parent 17edd37 commit 5d44e7c

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/jrd/exe.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ void EXE_receive(thread_db* tdbb,
693693

694694
// ASF: temporary blobs returned to the client should not be released
695695
// with the request, but in the transaction end.
696-
if (top_level)
696+
if (top_level || transaction->tra_temp_blobs_count)
697697
{
698698
for (int i = 0; i < format->fmt_count; ++i)
699699
{
@@ -707,7 +707,8 @@ void EXE_receive(thread_db* tdbb,
707707
{
708708
BlobIndex* current = &transaction->tra_blobs->current();
709709

710-
if (current->bli_request &&
710+
if (top_level &&
711+
current->bli_request &&
711712
current->bli_request->req_blobs.locate(id->bid_temp_id()))
712713
{
713714
current->bli_request->req_blobs.fastRemove();
@@ -720,7 +721,7 @@ void EXE_receive(thread_db* tdbb,
720721
current->bli_blob_object->BLB_close(tdbb);
721722
}
722723
}
723-
else
724+
else if (top_level)
724725
{
725726
transaction->checkBlob(tdbb, id, NULL, false);
726727
}

0 commit comments

Comments
 (0)