mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 15:23:02 +01:00
Make packaged functions work
This commit is contained in:
parent
798343385d
commit
ab25c33244
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -478,21 +478,26 @@ Function* Function::loadMetadata(thread_db* tdbb, USHORT id, bool noscan, USHORT
|
||||
}
|
||||
else
|
||||
{
|
||||
fb_assert(function->fun_legacy);
|
||||
|
||||
function->fun_external = NULL;
|
||||
function->setRequest(NULL);
|
||||
|
||||
function->fun_entrypoint =
|
||||
Module::lookup(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT, dbb->dbb_modules);
|
||||
|
||||
// Could not find a function with given MODULE, ENTRYPOINT.
|
||||
// Try the list of internally implemented functions.
|
||||
if (!function->fun_entrypoint)
|
||||
if (!X.RDB$MODULE_NAME.NULL && !X.RDB$ENTRYPOINT.NULL)
|
||||
{
|
||||
fb_assert(function->fun_legacy);
|
||||
|
||||
function->fun_entrypoint =
|
||||
BUILTIN_entrypoint(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT);
|
||||
Module::lookup(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT, dbb->dbb_modules);
|
||||
|
||||
// Could not find a function with given MODULE, ENTRYPOINT.
|
||||
// Try the list of internally implemented functions.
|
||||
if (!function->fun_entrypoint)
|
||||
{
|
||||
function->fun_entrypoint =
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user