E.2MON$CALL_STACK

MON$CALL_STACK displays calls to the stack from queries executing in stored procedures and triggers.

Column NameData TypeDescription

MON$CALL_ID

INTEGER

Call identifier

MON$STATEMENT_ID

INTEGER

The identifier of the top-level SQL statement, the one that initiated the chain of calls. Use this identifier to find the records about the active statement in the MON$STATEMENTS table

MON$CALLER_ID

INTEGER

The identifier of the calling trigger or stored procedure

MON$OBJECT_NAME

CHAR(31)

PSQL object (module) name

MON$OBJECT_TYPE

SMALLINT

PSQL object type (trigger or stored procedure):

2 - trigger 5 - stored procedure

MON$TIMESTAMP

TIMESTAMP

The date and time when the call was started

MON$SOURCE_LINE

INTEGER

The number of the source line in the SQL statement being executed at the moment of the snapshot

MON$SOURCE_COLUMN

INTEGER

The number of the source column in the SQL statement being executed at the moment of the snapshot

MON$STAT_ID

INTEGER

Statistics identifier

EXECUTE STATEMENT CallsInformation about calls during the execution of the EXECUTE STATEMENT statement does not get into the call stack.

Example using MON$CALL_STACKGetting the call stack for all connections except own:

   |WITH RECURSIVE
   |  HEAD AS (
   |    SELECT
   |      CALL.MON$STATEMENT_ID, CALL.MON$CALL_ID,
   |      CALL.MON$OBJECT_NAME, CALL.MON$OBJECT_TYPE
   |    FROM MON$CALL_STACK CALL
   |    WHERE CALL.MON$CALLER_ID IS NULL
   |    UNION ALL
   |    SELECT
   |      CALL.MON$STATEMENT_ID, CALL.MON$CALL_ID,
   |      CALL.MON$OBJECT_NAME, CALL.MON$OBJECT_TYPE
   |    FROM MON$CALL_STACK CALL
   |      JOIN HEAD ON CALL.MON$CALLER_ID = HEAD.MON$CALL_ID
   |  )
   |SELECT MON$ATTACHMENT_ID, MON$OBJECT_NAME, MON$OBJECT_TYPE
   |FROM HEAD
   |  JOIN MON$STATEMENTS STMT ON STMT.MON$STATEMENT_ID = HEAD.MON$STATEMENT_ID
   |WHERE STMT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION