Skip to content

Commit e4a17a4

Browse files
committed
Supress empty output message for Execute Block
1 parent 6c39e6b commit e4a17a4

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/dsql/StmtNodes.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5078,9 +5078,14 @@ void ExecBlockNode::genBlr(DsqlCompilerScratch* dsqlScratch)
50785078
DsqlDescMaker::fromNode(dsqlScratch, &param->par_desc, varNode, true);
50795079
}
50805080

5081-
revertParametersOrder(statement->getReceiveMsg()->msg_parameters);
5082-
if (!subRoutine)
5083-
GEN_port(dsqlScratch, statement->getReceiveMsg());
5081+
if (returns.hasData())
5082+
{
5083+
revertParametersOrder(statement->getReceiveMsg()->msg_parameters);
5084+
if (!subRoutine)
5085+
GEN_port(dsqlScratch, statement->getReceiveMsg());
5086+
}
5087+
else
5088+
statement->setReceiveMsg(nullptr);
50845089

50855090
if (subRoutine)
50865091
{

src/jrd/Statement.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,9 @@ Statement::Statement(thread_db* tdbb, MemoryPool* p, CompilerScratch* csb)
206206
{
207207
if (auto message = csb->csb_rpt[i].csb_message)
208208
{
209-
fb_assert(i == message->messageNumber);
209+
// When outer messages are mapped to inner just pointers are assigned so they keep original numbers inside.
210+
// That's why this assert is commented out.
211+
//fb_assert(i == message->messageNumber);
210212
messages[i] = message;
211213
}
212214
}

0 commit comments

Comments
 (0)