CUBRID Engine  latest
compile.c File Reference
#include "config.h"
#include <assert.h>
#include "authenticate.h"
#include "dbi.h"
#include "parser.h"
#include "semantic_check.h"
#include "locator_cl.h"
#include "memory_alloc.h"
#include "schema_manager.h"
#include "parser_message.h"
#include "view_transform.h"
#include "intl_support.h"
#include "server_interface.h"
#include "network_interface_cl.h"
#include "execute_statement.h"
#include "transaction_cl.h"
#include "dbtype.h"
Include dependency graph for compile.c:

Go to the source code of this file.

Classes

struct  trigger_exec_info
 
struct  pt_class_locks
 

Typedefs

typedef struct trigger_exec_info TRIGGER_EXEC_INFO
 
typedef struct pt_class_locks PT_CLASS_LOCKS
 

Enumerations

enum  pt_order_by_adjustment { PT_ADD_ONE, PT_TIMES_TWO }
 

Functions

static PT_NODEpt_add_oid_to_select_list (PARSER_CONTEXT *parser, PT_NODE *statement, VIEW_HANDLING how)
 
static PT_NODEpt_count_entities (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static int pt_add_lock_class (PARSER_CONTEXT *parser, PT_CLASS_LOCKS *lcks, PT_NODE *spec, LC_PREFETCH_FLAGS flags)
 
static PT_NODEpt_find_lck_classes (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_find_lck_class_from_partition (PARSER_CONTEXT *parser, PT_NODE *node, PT_CLASS_LOCKS *locks)
 
static int pt_in_lck_array (PT_CLASS_LOCKS *lcks, const char *str, LC_PREFETCH_FLAGS flags)
 
static void remove_appended_trigger_info (char *msg, int with_evaluate)
 
static PT_NODEpt_set_trigger_obj_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_set_trigger_obj_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_set_class_chn (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
PT_NODEpt_spec_to_oid_attr (PARSER_CONTEXT *parser, PT_NODE *spec, VIEW_HANDLING how)
 
PT_NODEpt_add_row_oid (PARSER_CONTEXT *parser, PT_NODE *statement)
 
PT_NODEpt_add_row_oid_name (PARSER_CONTEXT *parser, PT_NODE *statement)
 
PT_NODEpt_add_row_classoid_name (PARSER_CONTEXT *parser, PT_NODE *statement, int server_op)
 
PT_NODEpt_compile (PARSER_CONTEXT *parser, PT_NODE *volatile statement)
 
PT_NODEpt_class_pre_fetch (PARSER_CONTEXT *parser, PT_NODE *statement)
 
PT_NODEpt_compile_trigger_stmt (PARSER_CONTEXT *parser, const char *trigger_stmt, DB_OBJECT *class_op, const char *name1, const char *name2)
 
int pt_exec_trigger_stmt (PARSER_CONTEXT *parser, PT_NODE *trigger_stmt, DB_OBJECT *object1, DB_OBJECT *object2, DB_VALUE *result)
 
int pt_name_occurs_in_from_list (PARSER_CONTEXT *parser, const char *name, PT_NODE *from_list)
 

Typedef Documentation

Definition at line 60 of file compile.c.

Definition at line 45 of file compile.c.

Enumeration Type Documentation

Enumerator
PT_ADD_ONE 
PT_TIMES_TWO 

Definition at line 72 of file compile.c.

Function Documentation

PT_NODE* pt_add_row_classoid_name ( PARSER_CONTEXT parser,
PT_NODE statement,
int  server_op 
)

Definition at line 361 of file compile.c.

References CLASSOID_NAME, HIDDEN_CLASSOID_NAME, and pt_add_oid_to_select_list().

Referenced by pt_mvcc_prepare_upd_del_select(), pt_to_merge_update_query(), and pt_to_upd_del_query().

Here is the caller graph for this function:

PT_NODE* pt_add_row_oid ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 333 of file compile.c.

References pt_add_oid_to_select_list(), and VIEW_OID.

Referenced by db_compile_statement_local().

Here is the caller graph for this function:

PT_NODE* pt_add_row_oid_name ( PARSER_CONTEXT parser,
PT_NODE statement 
)
static PT_NODE * pt_count_entities ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 661 of file compile.c.

References parser_node::info, parser_node::node_type, NULL, pt_spec_info::partition, PT_SPEC, and pt_statement_info::spec.

Referenced by pt_class_pre_fetch().

Here is the caller graph for this function:

int pt_exec_trigger_stmt ( PARSER_CONTEXT parser,
PT_NODE trigger_stmt,
DB_OBJECT object1,
DB_OBJECT object2,
DB_VALUE result 
)
static PT_NODE * pt_find_lck_class_from_partition ( PARSER_CONTEXT parser,
PT_NODE node,
PT_CLASS_LOCKS locks 
)
static
int pt_name_occurs_in_from_list ( PARSER_CONTEXT parser,
const char *  name,
PT_NODE from_list 
)
static PT_NODE * pt_set_class_chn ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static PT_NODE * pt_set_trigger_obj_post ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static void remove_appended_trigger_info ( char *  msg,
int  with_evaluate 
)
static

Definition at line 955 of file compile.c.

References i, NULL, p, and strlen.

Referenced by pt_compile_trigger_stmt().

Here is the caller graph for this function: