D.24 RDB$PROCEDURES

RDB$PROCEDURES stores the definitions of stored procedures, including their PSQL source code and the binary language representation (BLR) of it. The next table, RDB$PROCEDURE_PARAMETERS, stores the definitions of input and output parameters.

Column Name Data Type Description
RDB$PROCEDURE_NAME CHAR(63) Stored procedure name (identifier)
RDB$PROCEDURE_ID SMALLINT The procedure’s unique, system-generated identifier
RDB$PROCEDURE_INPUTS SMALLINT Indicates the number of input parameters. NULL if there are none
RDB$PROCEDURE_OUTPUTS SMALLINT Indicates the number of output parameters. NULL if there are none
RDB$DESCRIPTION BLOB TEXT Any text comments related to the procedure
RDB$PROCEDURE_SOURCE BLOB TEXT The PSQL source code of the procedure
RDB$PROCEDURE_BLR BLOB BLR The binary language representation (BLR) of the procedure code
RDB$SECURITY_CLASS CHAR(63) May point to the security class defined in the system table RDB$SECURITY_CLASSES in order to apply access control limits
RDB$OWNER_NAME CHAR(63) The user name of the procedure’s Owner — the user who was CURRENT_USER when the procedure was first created. It may or may not be the user name of the author.
RDB$RUNTIME BLOB A metadata description of the procedure, used internally for optimization
RDB$SYSTEM_FLAG SMALLINT Indicates whether the procedure is defined by a user (value 0) or by the system (a value of 1 or greater)
RDB$PROCEDURE_TYPE SMALLINT Procedure type: 1 - selectable stored procedure (contains a SUSPEND statement) 2 - executable stored procedure NULL - not known for procedures created before Firebird 1.5
RDB$VALID_BLR SMALLINT Indicates whether the source PSQL of the stored procedure remains valid after the latest ALTER PROCEDURE modification
RDB$DEBUG_INFO BLOB DEBUG_INFORMATION Contains debugging information about variables used in the stored procedure
RDB$ENGINE_NAME CHAR(63) Engine for external functions. ‘UDR’ for UDR procedures. NULL for PSQL stored procedures
RDB$ENTRYPOINT CHAR(255) The exported name of the external function in the procedure library. Note, this is often not the same as RDB$PROCEDURE_NAME, which is the identifier with which the external stored procedure is declared to the database
RDB$PACKAGE_NAME CHAR(63) Package name of the procedure (or NULL for a top-level stored procedure)
RDB$PRIVATE_FLAG SMALLINT NULL for normal (top-level) stored procedures, 0 for package procedures defined in the header, 1 for package procedures only defined in the package body.
RDB$SQL_SECURITY BOOLEAN The SQL SECURITY mode (DEFINER or INVOKER): NULL - initial default (INVOKER) FALSE - INVOKER TRUE - DEFINER