8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 06:03:02 +01:00

Fixed CORE-6108 - Regression: FB3 throws "Datatypes are not comparable in expression" in procedure parameters.

This commit is contained in:
Adriano dos Santos Fernandes 2019-08-06 12:25:33 -03:00
parent e98f05fe70
commit da7a3cc554

View File

@ -2922,7 +2922,10 @@ ValueExprNode* CoalesceNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
CoalesceNode* node = FB_NEW_POOL(getPool()) CoalesceNode(getPool(),
doDsqlPass(dsqlScratch, args));
node->make(dsqlScratch, &node->nodDesc); // Set descriptor for output node.
node->setParameterType(dsqlScratch, &node->nodDesc, NULL, false);
for (auto& item : node->args->items)
PASS1_set_parameter_type(dsqlScratch, item, &node->nodDesc, NULL, false);
return node;
}
@ -2934,14 +2937,7 @@ void CoalesceNode::setParameterName(dsql_par* parameter) const
bool CoalesceNode::setParameterType(DsqlCompilerScratch* dsqlScratch,
const dsc* desc, ValueExprNode* node, bool /*forceVarChar*/)
{
bool ret = false;
for (NestConst<ValueExprNode>* ptr = args->items.begin(); ptr != args->items.end(); ++ptr)
{
ret |= PASS1_set_parameter_type(dsqlScratch, *ptr, desc, node, false);
}
return ret;
return false;
}
void CoalesceNode::genBlr(DsqlCompilerScratch* dsqlScratch)