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

Fixed problem with subfunction parameters related to CORE-4572.

This commit is contained in:
asfernandes 2015-01-06 22:40:20 +00:00
parent 5106986dbf
commit 93b35c7cc7

View File

@ -1471,17 +1471,23 @@ DeclareSubFuncNode* DeclareSubFuncNode::dsqlPass(DsqlCompilerScratch* dsqlScratc
dsqlFunction->udf_length = returnType->length;
dsqlFunction->udf_character_set_id = returnType->charSetId;
// ASF: It seems not required to set dsqlFunction->udf_arguments for now.
const Array<NestConst<ParameterClause> >& paramArray = dsqlBlock->parameters;
bool defaultFound = false;
for (const NestConst<ParameterClause>* i = paramArray.begin(); i != paramArray.end(); ++i)
{
// ASF: dsqlFunction->udf_arguments is only checked for its count for now.
dsqlFunction->udf_arguments.add(dsc());
const ParameterClause* param = *i;
if (param->defaultClause)
{
defaultFound = true;
if (dsqlFunction->udf_def_count == 0)
dsqlFunction->udf_def_count = paramArray.end() - i;
}
else if (defaultFound)
{
// Parameter without default value after parameters with default.