Home | Previous Page | Next Page   System Catalog Tables >

SYSPROCEDURES

The sysprocedures system catalog table lists the characteristics for each function and procedure in the database. It contains one row for each routine.

Each function in sysprocedures has a unique value, procid, called a routine identifier. Throughout the system catalog, a function is identified by its routine identifier, not by its name.

For Extended Parallel Server, sysprocedures has the following columns.

Column Type Explanation
procname VARCHAR(128) Name of routine
owner VARCHAR(32) Name of owner
procid SERIAL Unique identifying code for the routine
mode CHAR(1) Mode type:
D or d = DBA
O or o = Owner
P or p = Protected
R or r = Restricted
retsize INTEGER Compiled size (in bytes) of values
symsize INTEGER Compiled size (in bytes) of symbol table
datasize INTEGER Compiled size (in bytes) of constant data
codesize INTEGER Compiled size (in bytes) of routine instruction code
numargs INTEGER Number of arguments to routine

A composite index on procname and owner requires unique values.

For Dynamic Server, sysprocedures has the following columns.

Column Type Explanation
procname VARCHAR(128) Name of routine
owner VARCHAR(32) Name of owner
procid SERIAL Unique identifying code for the routine
mode CHAR(1) Mode type:
D or d = DBA
O or o = Owner
P or p = Protected
R or r = Restricted
retsize INTEGER Compiled size (in bytes) of returned values
symsize INTEGER Compiled size (in bytes) of symbol table
datasize INTEGER Compiled size (in bytes) of constant data
codesize INTEGER Compiled size (in bytes) of routine code
numargs INTEGER Number of arguments to routine
isproc CHAR(1) Whether routine is a procedure or a function:
t = procedure
f = function
specificname VARCHAR(128) Specific name for the routine
externalname VARCHAR(255) Location of the external routine. This item is language-specific in content and format.
paramstyle CHAR(1) Parameter style: I = Informix
langid INTEGER Language code (in sysroutinelangs table)
paramtypes RTNPARAMTYPES Information describing returned parameters
variant BOOLEAN Whether the routine is VARIANT or not:
t = is VARIANT
f = is not VARIANT
client BOOLEAN Reserved for future use
handlesnulls BOOLEAN NULL handling indicator:
t = handles NULLs
f =does not handle NULLs
percallcost INTEGER Amount of CPU per call

Integer cost to execute UDR: cost/call - 0 -(2^31-1)

commutator VARCHAR(128) Name of commutator function
negator VARCHAR(128) Name of negator function
selfunc VARCHAR(128) Name of function to estimate selectivity of UDR
internal BOOLEAN Whether the routine can be called from SQL:
t = routine is internal, not callable from SQL
f = routine is external, callable from SQL
class CHAR(18) CPU class in which routine should be executed
stack INTEGER Stack size in bytes required per invocation
parallelizable BOOLEAN Parallelization indicator for UDR:
t = parallelizable
f = not parallelizable
costfunc VARCHAR(128) Name of cost function for UDR
selconst SMALLFLOAT Selectivity constant for UDR

In the mode column, the R mode is a special case of the O mode. A routine is in restricted (R) mode if it was created with a specified owner who is different from the routine creator. If routine statements involving a remote database are executed, the database server uses the permissions of the user who executes the routine instead of the permissions of the routine owner. In all other scenarios, R-mode routines behave the same as O-mode routines.

You cannot use the DROP FUNCTION, DROP ROUTINE, or DROP PROCEDURE statements to delete a protected routine. Protected routines are indicated by lowercase in the mode column. In earlier versions, protected SPL routines (which cannot be deleted) were indicated by a p. Starting with Version 9.0, protected SPL routines are treated as DBA routines and cannot be Owner routines. Thus D and O indicate DBA and Owner routines, and d and o indicate protected DBA and protected Owner routines.

A database server can create protected SPL routines for internal use. These protected SPL routines have p in the mode column. You cannot modify, drop, nor display protected SPL routines.

Important:
After you issue the SET SESSION AUTHORIZATION statement, the database server assigns a restricted mode to all owner routines that you created while using the new identity.

The database server can create protected routines for internal use. The sysprocedures table identifies these protected routines with the letter P or p in the mode column. You cannot modify or drop protected routines, nor can you display them through DBSCHEMA.

A unique index is on the procid column. A composite index on the procname, isproc, numargs, and owner columns allows duplicate values, as does a composite index on the specificname and owner columns.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]