Skip to content

File trigger_manager.h

FileList > cubrid > src > object > trigger_manager.h

Go to the source code of this file

  • #include "memory_alloc.h"
  • #include "dbtype_def.h"
  • #include "class_object.h"

Classes

Type Name
struct tr_activity
struct tr_deferred_context
struct tr_schema_cache
struct tr_state
struct tr_trigger
struct tr_triglist

Public Types

Type Name
typedef struct tr_activity TR_ACTIVITY
enum TR_CACHE_TYPE
typedef struct tr_deferred_context TR_DEFERRED_CONTEXT
enum TR_RECURSION_DECISION
typedef struct tr_schema_cache TR_SCHEMA_CACHE
typedef struct tr_state TR_STATE
typedef struct tr_trigger TR_TRIGGER
typedef struct tr_triglist TR_TRIGLIST

Public Attributes

Type Name
const char * EVAL_PREFIX
const char * EVAL_SUFFIX
const char * TR_ATT_ACTION
const char * TR_ATT_ACTION_OLD
const char * TR_ATT_ACTION_TIME
const char * TR_ATT_ACTION_TYPE
const char * TR_ATT_ATTRIBUTE
const char * TR_ATT_CLASS
const char * TR_ATT_CLASS_ATTRIBUTE
const char * TR_ATT_COMMENT
const char * TR_ATT_CONDITION
const char * TR_ATT_CONDITION_TIME
const char * TR_ATT_CONDITION_TYPE
const char * TR_ATT_CREATED_TIME
const char * TR_ATT_EVENT
const char * TR_ATT_NAME
const char * TR_ATT_OWNER
const char * TR_ATT_PRIORITY
const char * TR_ATT_PROPERTIES
const char * TR_ATT_STATUS
const char * TR_ATT_UNIQUE_NAME
const char * TR_ATT_UPDATED_TIME
const char * TR_CLASS_NAME
int tr_Current_depth
TR_DEFERRED_CONTEXT * tr_Deferred_activities
TR_DEFERRED_CONTEXT * tr_Deferred_activities_tail
TR_TRIGLIST * tr_Deferred_triggers
TR_TRIGLIST * tr_Deferred_triggers_tail
bool tr_Invalid_transaction
char tr_Invalid_transaction_trigger
int tr_Maximum_depth
int tr_Recursion_level
int tr_Recursion_level_max
bool tr_Trace

Public Functions

Type Name
char * remove_appended_trigger_evaluate (char * trigger_stmt_str, int with_evaluate)
void tr_abort (TR_STATE * state)
int tr_abort_to_savepoint (void * savepoint_id)
int tr_active_schema_cache (MOP class_mop, TR_SCHEMA_CACHE * cache, DB_TRIGGER_EVENT event_type, bool * has_event_type_triggers)
int tr_add_cache_trigger (TR_SCHEMA_CACHE * cache, DB_OBJECT * trigger_object)
int tr_after (TR_STATE * state)
int tr_after_object (TR_STATE * state, DB_OBJECT * current, DB_OBJECT * temp)
int tr_before (TR_STATE * state)
int tr_before_object (TR_STATE * state, DB_OBJECT * current, DB_OBJECT * temp)
void tr_check_abort_triggers (void)
int tr_check_authorization (DB_OBJECT * trigger_object, int alter_flag)
int tr_check_commit_triggers (DB_TRIGGER_TIME time)
void tr_check_rollback_triggers (DB_TRIGGER_TIME time)
void tr_check_timeout_triggers (void)
TR_SCHEMA_CACHE * tr_copy_schema_cache (TR_SCHEMA_CACHE * cache, MOP filter_class)
DB_OBJECT * tr_create_trigger (const char * name, DB_TRIGGER_STATUS status, double priority, DB_TRIGGER_EVENT event, DB_OBJECT * class_, const char * attribute, DB_TRIGGER_TIME cond_time, const char * cond_source, DB_TRIGGER_TIME action_time, DB_TRIGGER_ACTION action_type, const char * action_source, const char * comment)
int tr_delete_schema_cache (TR_SCHEMA_CACHE * cache, DB_OBJECT * class_object)
int tr_delete_triggers_for_class (TR_SCHEMA_CACHE ** cache, DB_OBJECT * class_object)
int tr_downcase_all_trigger_info (void)
int tr_drop_cache_trigger (TR_SCHEMA_CACHE * cache, DB_OBJECT * trigger_object)
int tr_drop_deferred_activities (DB_OBJECT * trigger_object, DB_OBJECT * target)
int tr_drop_trigger (DB_OBJECT * obj, bool call_from_api)
void tr_dump (FILE * fpp)
int tr_dump_all_triggers (FILE * fp, bool quoted_id_flag)
int tr_empty_schema_cache (TR_SCHEMA_CACHE * cache)
const char * tr_event_as_string (DB_TRIGGER_EVENT event)
int tr_execute_deferred_activities (DB_OBJECT * trigger_object, DB_OBJECT * target)
void tr_final (void)
int tr_find_all_triggers (DB_OBJLIST ** list)
int tr_find_event_triggers (DB_TRIGGER_EVENT event, DB_OBJECT * class_, const char * attribute, bool active, DB_OBJLIST ** list)
DB_OBJECT * tr_find_trigger (const char * name)
void tr_free_schema_cache (TR_SCHEMA_CACHE * cache)
void tr_free_trigger_list (TR_TRIGLIST * list)
int tr_get_cache_objects (TR_SCHEMA_CACHE * cache, DB_OBJLIST ** list)
const char * tr_get_class_name (void)
int tr_get_depth (void)
bool tr_get_execution_state (void)
int tr_get_trace (void)
int tr_has_user_trigger (bool * has_user_trigger)
void tr_init (void)
void tr_invalidate_user_cache (void)
int tr_is_trigger (DB_OBJECT * trigger_object, int * status)
TR_SCHEMA_CACHE * tr_make_schema_cache (TR_CACHE_TYPE type, DB_OBJLIST * objects)
TR_TRIGGER * tr_map_trigger (DB_OBJECT * object, int fetch)
int tr_merge_schema_cache (TR_SCHEMA_CACHE * destination, TR_SCHEMA_CACHE * source)
int tr_prepare (TR_STATE ** state_p, TR_TRIGLIST * triggers)
int tr_prepare_class (TR_STATE ** state_p, TR_SCHEMA_CACHE * cache, MOP class_Mop, DB_TRIGGER_EVENT event)
int tr_prepare_statement (TR_STATE ** state_p, DB_TRIGGER_EVENT event, DB_OBJECT * class_, int attcount, const char ** attnames)
int tr_rename_trigger (DB_OBJECT * trigger_object, const char * name, bool call_from_api, bool deferred_flush)
int tr_reset_schema_cache (TR_SCHEMA_CACHE * cache)
int tr_set_comment (DB_OBJECT * trigger_object, const char * comment, bool call_from_api)
int tr_set_depth (int depth)
bool tr_set_execution_state (bool new_state)
int tr_set_priority (DB_OBJECT * trigger_object, double priority, bool call_from_api)
int tr_set_savepoint (void * savepoint_id)
int tr_set_status (DB_OBJECT * trigger_object, DB_TRIGGER_STATUS status, bool call_from_api)
int tr_set_trace (bool trace)
const char * tr_status_as_string (DB_TRIGGER_STATUS status)
const char * tr_time_as_string (DB_TRIGGER_TIME time)
int tr_trigger_action (DB_OBJECT * trigger_object, char ** action)
int tr_trigger_action_time (DB_OBJECT * trigger_object, DB_TRIGGER_TIME * tr_time)
int tr_trigger_action_type (DB_OBJECT * trigger_object, DB_TRIGGER_ACTION * type)
int tr_trigger_attribute (DB_OBJECT * trigger_object, char ** attribute)
int tr_trigger_class (DB_OBJECT * trigger_object, DB_OBJECT ** class_)
int tr_trigger_comment (DB_OBJECT * trigger_objet, char ** comment)
int tr_trigger_condition (DB_OBJECT * trigger_object, char ** condition)
int tr_trigger_condition_time (DB_OBJECT * trigger_object, DB_TRIGGER_TIME * tr_time)
int tr_trigger_event (DB_OBJECT * trigger_object, DB_TRIGGER_EVENT * event)
int tr_trigger_name (DB_OBJECT * trigger_object, char ** name)
int tr_trigger_priority (DB_OBJECT * trigger_object, double * priority)
int tr_trigger_status (DB_OBJECT * trigger_object, DB_TRIGGER_STATUS * status)
int tr_unmap_trigger (TR_TRIGGER * trigger)
int tr_update_trigger_timestamp (DB_OBJECT * trigger_object)
int tr_update_user_cache (void)
int tr_validate_schema_cache (TR_SCHEMA_CACHE * cache, MOP class_mop)

Macros

Type Name
define TR_LOWEST_PRIORITY 0.0
define TR_MAX_PRINT_STRING 2048
define TR_MAX_RECURSION_LEVEL 32
define tr_free_schema_cache_and_init (cache) /* multi line expression */

Public Types Documentation

typedef TR_ACTIVITY

typedef struct tr_activity TR_ACTIVITY;

enum TR_CACHE_TYPE

enum TR_CACHE_TYPE {
    TR_CACHE_CLASS,
    TR_CACHE_ATTRIBUTE
};

typedef TR_DEFERRED_CONTEXT

typedef struct tr_deferred_context TR_DEFERRED_CONTEXT;

enum TR_RECURSION_DECISION

enum TR_RECURSION_DECISION {
    TR_DECISION_CONTINUE,
    TR_DECISION_HALT_WITH_ERROR,
    TR_DECISION_DO_NOT_CONTINUE
};

typedef TR_SCHEMA_CACHE

typedef struct tr_schema_cache TR_SCHEMA_CACHE;

typedef TR_STATE

typedef struct tr_state TR_STATE;

typedef TR_TRIGGER

typedef struct tr_trigger TR_TRIGGER;

typedef TR_TRIGLIST

typedef struct tr_triglist TR_TRIGLIST;

Public Attributes Documentation

variable EVAL_PREFIX

const char* EVAL_PREFIX;

variable EVAL_SUFFIX

const char* EVAL_SUFFIX;

variable TR_ATT_ACTION

const char* TR_ATT_ACTION;

variable TR_ATT_ACTION_OLD

const char* TR_ATT_ACTION_OLD;

variable TR_ATT_ACTION_TIME

const char* TR_ATT_ACTION_TIME;

variable TR_ATT_ACTION_TYPE

const char* TR_ATT_ACTION_TYPE;

variable TR_ATT_ATTRIBUTE

const char* TR_ATT_ATTRIBUTE;

variable TR_ATT_CLASS

const char* TR_ATT_CLASS;

variable TR_ATT_CLASS_ATTRIBUTE

const char* TR_ATT_CLASS_ATTRIBUTE;

variable TR_ATT_COMMENT

const char* TR_ATT_COMMENT;

variable TR_ATT_CONDITION

const char* TR_ATT_CONDITION;

variable TR_ATT_CONDITION_TIME

const char* TR_ATT_CONDITION_TIME;

variable TR_ATT_CONDITION_TYPE

const char* TR_ATT_CONDITION_TYPE;

variable TR_ATT_CREATED_TIME

const char* TR_ATT_CREATED_TIME;

variable TR_ATT_EVENT

const char* TR_ATT_EVENT;

variable TR_ATT_NAME

const char* TR_ATT_NAME;

variable TR_ATT_OWNER

const char* TR_ATT_OWNER;

variable TR_ATT_PRIORITY

const char* TR_ATT_PRIORITY;

variable TR_ATT_PROPERTIES

const char* TR_ATT_PROPERTIES;

variable TR_ATT_STATUS

const char* TR_ATT_STATUS;

variable TR_ATT_UNIQUE_NAME

const char* TR_ATT_UNIQUE_NAME;

variable TR_ATT_UPDATED_TIME

const char* TR_ATT_UPDATED_TIME;

variable TR_CLASS_NAME

const char* TR_CLASS_NAME;

variable tr_Current_depth

int tr_Current_depth;

variable tr_Deferred_activities

TR_DEFERRED_CONTEXT* tr_Deferred_activities;

variable tr_Deferred_activities_tail

TR_DEFERRED_CONTEXT* tr_Deferred_activities_tail;

variable tr_Deferred_triggers

TR_TRIGLIST* tr_Deferred_triggers;

variable tr_Deferred_triggers_tail

TR_TRIGLIST* tr_Deferred_triggers_tail;

variable tr_Invalid_transaction

bool tr_Invalid_transaction;

variable tr_Invalid_transaction_trigger

char tr_Invalid_transaction_trigger[SM_MAX_IDENTIFIER_LENGTH+2];

variable tr_Maximum_depth

int tr_Maximum_depth;

variable tr_Recursion_level

int tr_Recursion_level;

variable tr_Recursion_level_max

int tr_Recursion_level_max;

variable tr_Trace

bool tr_Trace;

Public Functions Documentation

function remove_appended_trigger_evaluate

char * remove_appended_trigger_evaluate (
    char * trigger_stmt_str,
    int with_evaluate
) 

function tr_abort

void tr_abort (
    TR_STATE * state
) 

function tr_abort_to_savepoint

int tr_abort_to_savepoint (
    void * savepoint_id
) 

function tr_active_schema_cache

int tr_active_schema_cache (
    MOP class_mop,
    TR_SCHEMA_CACHE * cache,
    DB_TRIGGER_EVENT event_type,
    bool * has_event_type_triggers
) 

function tr_add_cache_trigger

int tr_add_cache_trigger (
    TR_SCHEMA_CACHE * cache,
    DB_OBJECT * trigger_object
) 

function tr_after

int tr_after (
    TR_STATE * state
) 

function tr_after_object

int tr_after_object (
    TR_STATE * state,
    DB_OBJECT * current,
    DB_OBJECT * temp
) 

function tr_before

int tr_before (
    TR_STATE * state
) 

function tr_before_object

int tr_before_object (
    TR_STATE * state,
    DB_OBJECT * current,
    DB_OBJECT * temp
) 

function tr_check_abort_triggers

void tr_check_abort_triggers (
    void
) 

function tr_check_authorization

int tr_check_authorization (
    DB_OBJECT * trigger_object,
    int alter_flag
) 

function tr_check_commit_triggers

int tr_check_commit_triggers (
    DB_TRIGGER_TIME time
) 

function tr_check_rollback_triggers

void tr_check_rollback_triggers (
    DB_TRIGGER_TIME time
) 

function tr_check_timeout_triggers

void tr_check_timeout_triggers (
    void
) 

function tr_copy_schema_cache

TR_SCHEMA_CACHE * tr_copy_schema_cache (
    TR_SCHEMA_CACHE * cache,
    MOP filter_class
) 

function tr_create_trigger

DB_OBJECT * tr_create_trigger (
    const  char * name,
    DB_TRIGGER_STATUS status,
    double priority,
    DB_TRIGGER_EVENT event,
    DB_OBJECT * class_,
    const  char * attribute,
    DB_TRIGGER_TIME cond_time,
    const  char * cond_source,
    DB_TRIGGER_TIME action_time,
    DB_TRIGGER_ACTION action_type,
    const  char * action_source,
    const  char * comment
) 

function tr_delete_schema_cache

int tr_delete_schema_cache (
    TR_SCHEMA_CACHE * cache,
    DB_OBJECT * class_object
) 

function tr_delete_triggers_for_class

int tr_delete_triggers_for_class (
    TR_SCHEMA_CACHE ** cache,
    DB_OBJECT * class_object
) 

function tr_downcase_all_trigger_info

int tr_downcase_all_trigger_info (
    void
) 

function tr_drop_cache_trigger

int tr_drop_cache_trigger (
    TR_SCHEMA_CACHE * cache,
    DB_OBJECT * trigger_object
) 

function tr_drop_deferred_activities

int tr_drop_deferred_activities (
    DB_OBJECT * trigger_object,
    DB_OBJECT * target
) 

function tr_drop_trigger

int tr_drop_trigger (
    DB_OBJECT * obj,
    bool call_from_api
) 

function tr_dump

void tr_dump (
    FILE * fpp
) 

function tr_dump_all_triggers

int tr_dump_all_triggers (
    FILE * fp,
    bool quoted_id_flag
) 

function tr_empty_schema_cache

int tr_empty_schema_cache (
    TR_SCHEMA_CACHE * cache
) 

function tr_event_as_string

const  char * tr_event_as_string (
    DB_TRIGGER_EVENT event
) 

function tr_execute_deferred_activities

int tr_execute_deferred_activities (
    DB_OBJECT * trigger_object,
    DB_OBJECT * target
) 

function tr_final

void tr_final (
    void
) 

function tr_find_all_triggers

int tr_find_all_triggers (
    DB_OBJLIST ** list
) 

function tr_find_event_triggers

int tr_find_event_triggers (
    DB_TRIGGER_EVENT event,
    DB_OBJECT * class_,
    const  char * attribute,
    bool active,
    DB_OBJLIST ** list
) 

function tr_find_trigger

DB_OBJECT * tr_find_trigger (
    const  char * name
) 

function tr_free_schema_cache

void tr_free_schema_cache (
    TR_SCHEMA_CACHE * cache
) 

function tr_free_trigger_list

void tr_free_trigger_list (
    TR_TRIGLIST * list
) 

function tr_get_cache_objects

int tr_get_cache_objects (
    TR_SCHEMA_CACHE * cache,
    DB_OBJLIST ** list
) 

function tr_get_class_name

const  char * tr_get_class_name (
    void
) 

function tr_get_depth

int tr_get_depth (
    void
) 

function tr_get_execution_state

bool tr_get_execution_state (
    void
) 

function tr_get_trace

int tr_get_trace (
    void
) 

function tr_has_user_trigger

int tr_has_user_trigger (
    bool * has_user_trigger
) 

function tr_init

void tr_init (
    void
) 

function tr_invalidate_user_cache

void tr_invalidate_user_cache (
    void
) 

function tr_is_trigger

int tr_is_trigger (
    DB_OBJECT * trigger_object,
    int * status
) 

function tr_make_schema_cache

TR_SCHEMA_CACHE * tr_make_schema_cache (
    TR_CACHE_TYPE type,
    DB_OBJLIST * objects
) 

function tr_map_trigger

TR_TRIGGER * tr_map_trigger (
    DB_OBJECT * object,
    int fetch
) 

function tr_merge_schema_cache

int tr_merge_schema_cache (
    TR_SCHEMA_CACHE * destination,
    TR_SCHEMA_CACHE * source
) 

function tr_prepare

int tr_prepare (
    TR_STATE ** state_p,
    TR_TRIGLIST * triggers
) 

function tr_prepare_class

int tr_prepare_class (
    TR_STATE ** state_p,
    TR_SCHEMA_CACHE * cache,
    MOP class_Mop,
    DB_TRIGGER_EVENT event
) 

function tr_prepare_statement

int tr_prepare_statement (
    TR_STATE ** state_p,
    DB_TRIGGER_EVENT event,
    DB_OBJECT * class_,
    int attcount,
    const  char ** attnames
) 

function tr_rename_trigger

int tr_rename_trigger (
    DB_OBJECT * trigger_object,
    const  char * name,
    bool call_from_api,
    bool deferred_flush
) 

function tr_reset_schema_cache

int tr_reset_schema_cache (
    TR_SCHEMA_CACHE * cache
) 

function tr_set_comment

int tr_set_comment (
    DB_OBJECT * trigger_object,
    const  char * comment,
    bool call_from_api
) 

function tr_set_depth

int tr_set_depth (
    int depth
) 

function tr_set_execution_state

bool tr_set_execution_state (
    bool new_state
) 

function tr_set_priority

int tr_set_priority (
    DB_OBJECT * trigger_object,
    double priority,
    bool call_from_api
) 

function tr_set_savepoint

int tr_set_savepoint (
    void * savepoint_id
) 

function tr_set_status

int tr_set_status (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_STATUS status,
    bool call_from_api
) 

function tr_set_trace

int tr_set_trace (
    bool trace
) 

function tr_status_as_string

const  char * tr_status_as_string (
    DB_TRIGGER_STATUS status
) 

function tr_time_as_string

const  char * tr_time_as_string (
    DB_TRIGGER_TIME time
) 

function tr_trigger_action

int tr_trigger_action (
    DB_OBJECT * trigger_object,
    char ** action
) 

function tr_trigger_action_time

int tr_trigger_action_time (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_TIME * tr_time
) 

function tr_trigger_action_type

int tr_trigger_action_type (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_ACTION * type
) 

function tr_trigger_attribute

int tr_trigger_attribute (
    DB_OBJECT * trigger_object,
    char ** attribute
) 

function tr_trigger_class

int tr_trigger_class (
    DB_OBJECT * trigger_object,
    DB_OBJECT ** class_
) 

function tr_trigger_comment

int tr_trigger_comment (
    DB_OBJECT * trigger_objet,
    char ** comment
) 

function tr_trigger_condition

int tr_trigger_condition (
    DB_OBJECT * trigger_object,
    char ** condition
) 

function tr_trigger_condition_time

int tr_trigger_condition_time (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_TIME * tr_time
) 

function tr_trigger_event

int tr_trigger_event (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_EVENT * event
) 

function tr_trigger_name

int tr_trigger_name (
    DB_OBJECT * trigger_object,
    char ** name
) 

function tr_trigger_priority

int tr_trigger_priority (
    DB_OBJECT * trigger_object,
    double * priority
) 

function tr_trigger_status

int tr_trigger_status (
    DB_OBJECT * trigger_object,
    DB_TRIGGER_STATUS * status
) 

function tr_unmap_trigger

int tr_unmap_trigger (
    TR_TRIGGER * trigger
) 

function tr_update_trigger_timestamp

int tr_update_trigger_timestamp (
    DB_OBJECT * trigger_object
) 

function tr_update_user_cache

int tr_update_user_cache (
    void
) 

function tr_validate_schema_cache

int tr_validate_schema_cache (
    TR_SCHEMA_CACHE * cache,
    MOP class_mop
) 

Macro Definition Documentation

define TR_LOWEST_PRIORITY

#define TR_LOWEST_PRIORITY `0.0`

define TR_MAX_PRINT_STRING

#define TR_MAX_PRINT_STRING `2048`

define TR_MAX_RECURSION_LEVEL

#define TR_MAX_RECURSION_LEVEL `32`

define tr_free_schema_cache_and_init

#define tr_free_schema_cache_and_init (
    cache
) `/* multi line expression */`


The documentation for this class was generated from the following file cubrid/src/object/trigger_manager.h