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

Make packaged functions work

This commit is contained in:
asfernandes 2009-12-28 01:06:40 +00:00
parent 798343385d
commit ab25c33244
3 changed files with 17 additions and 11 deletions

View File

@ -225,7 +225,7 @@ namespace
WITH FUN.RDB$PACKAGE_NAME EQ metaName.c_str()
{
Signature function(FUN.RDB$FUNCTION_NAME);
function.defined = !FUN.RDB$ENTRYPOINT.NULL;
function.defined = !FUN.RDB$ENTRYPOINT.NULL || !FUN.RDB$FUNCTION_BLR.NULL;
if (details)
{
@ -1034,6 +1034,7 @@ void DropPackageBodyNode::execute(thread_db* tdbb, jrd_tra* transaction)
FUN.RDB$MODULE_NAME.NULL = TRUE;
FUN.RDB$ENGINE_NAME.NULL = TRUE;
FUN.RDB$ENTRYPOINT.NULL = TRUE;
FUN.RDB$FUNCTION_BLR.NULL = TRUE;
END_MODIFY
}
}

View File

@ -3855,7 +3855,7 @@ static processing_state show_proc(const SCHAR* procname)
if (i == 0)
isqlGlob.printf("Global procedures:%s", NEWLINE);
else
isqlGlob.printf("Packaged procedures:%s", NEWLINE);
isqlGlob.printf("%sPackaged procedures:%s", NEWLINE, NEWLINE);
isqlGlob.printf(
"Procedure Name Invalid Dependency, Type%s", NEWLINE);

View File

@ -478,11 +478,13 @@ Function* Function::loadMetadata(thread_db* tdbb, USHORT id, bool noscan, USHORT
}
else
{
fb_assert(function->fun_legacy);
function->fun_external = NULL;
function->setRequest(NULL);
if (!X.RDB$MODULE_NAME.NULL && !X.RDB$ENTRYPOINT.NULL)
{
fb_assert(function->fun_legacy);
function->fun_entrypoint =
Module::lookup(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT, dbb->dbb_modules);
@ -494,6 +496,9 @@ Function* Function::loadMetadata(thread_db* tdbb, USHORT id, bool noscan, USHORT
BUILTIN_entrypoint(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT);
}
}
else
function->fun_entrypoint = NULL;
}
if (X.RDB$VALID_BLR.NULL || X.RDB$VALID_BLR == FALSE)
{