File xasl_generation.h
FileList > cubrid > src > parser > xasl_generation.h
Go to the source code of this file
#include "dbtype_def.h"
#include "object_domain.h"
#include "optimizer.h"
#include "parser.h"
#include "regu_var.hpp"
#include "xasl.h"
Namespaces
Classes
Public Types
Public Attributes
Public Functions
| Type |
Name |
| XASL_NODE * |
parser_generate_do_stmt_xasl (PARSER_CONTEXT * p, PT_NODE * node)
|
| XASL_NODE * |
parser_generate_xasl (PARSER_CONTEXT * p, PT_NODE * node)
|
| int |
pt_append_omitted_on_update_expr_assignments (PARSER_CONTEXT * parser, PT_NODE * assigns, PT_NODE * from)
|
| XASL_NODE * |
pt_append_xasl (XASL_NODE * to, XASL_NODE * from_list)
|
| int |
pt_copy_upddel_hints_to_select (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_stmt)
|
| int |
pt_find_omitted_default_expr (PARSER_CONTEXT * parser, DB_OBJECT * class_obj, PT_NODE * specified_attrs, PT_NODE ** default_expr_attrs)
|
| PT_NODE * |
pt_flush_classes (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| XASL_NODE * |
pt_gen_simple_merge_plan (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * plan, XASL_NODE * xasl)
|
| PT_NODE * |
pt_get_numbering_node_etc (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
pt_is_single_tuple (PARSER_CONTEXT * parser, PT_NODE * select_node)
|
| ACCESS_SPEC_TYPE * |
pt_make_dblink_access_spec (ACCESS_METHOD access, PRED_EXPR * where_pred, REGU_VARIABLE_LIST pred_list, REGU_VARIABLE_LIST attr_list, char * url, char * user, char * password, int host_var_count, int * host_var_index, char * sql)
|
| REGU_VARIABLE * |
pt_make_regu_arith (const REGU_VARIABLE * arg1, const REGU_VARIABLE * arg2, const REGU_VARIABLE * arg3, const OPERATOR_TYPE op, const TP_DOMAIN * domain)
|
| XASL_NODE * |
pt_remove_xasl (XASL_NODE * xasl_list, XASL_NODE * remove)
|
| void |
pt_set_connect_by_operator_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, XASL_NODE * xasl)
|
| void |
pt_set_dptr (PARSER_CONTEXT * parser, PT_NODE * node, XASL_NODE * xasl, UINTPTR id)
|
| void |
pt_set_iscycle_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, DB_VALUE ** iscycle_valp)
|
| void |
pt_set_isleaf_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, DB_VALUE ** isleaf_valp)
|
| void |
pt_set_level_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, DB_VALUE ** level_valp)
|
| void |
pt_set_numbering_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, DB_VALUE ** instnum_valp, DB_VALUE ** ordbynum_valp)
|
| PT_NODE * |
pt_set_orderby_for_sort_limit_plan (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * name_list)
|
| void |
pt_set_qprior_node_etc (PARSER_CONTEXT * parser, PT_NODE * node_list, XASL_NODE * xasl)
|
| XASL_NODE * |
pt_skeleton_buildlist_proc (PARSER_CONTEXT * parser, PT_NODE * namelist)
|
| void |
pt_sort_pos_regu_list_by_pos_no (REGU_VARIABLE_LIST * list_ptr)
|
| XASL_NODE * |
pt_to_delete_xasl (PARSER_CONTEXT * parser, PT_NODE * node)
|
| XASL_NODE * |
pt_to_fetch_proc (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * pred)
|
| FUNC_PRED * |
pt_to_func_pred (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * expr)
|
| XASL_NODE * |
pt_to_hashjoin_proc (PARSER_CONTEXT * parser, XASL_NODE * outer_xasl, XASL_NODE * inner_xasl)
|
| XASL_NODE * |
pt_to_insert_xasl (PARSER_CONTEXT * parser, PT_NODE * node)
|
| XASL_NODE * |
pt_to_instnum_pred (PARSER_CONTEXT * parser, XASL_NODE * xasl, PT_NODE * pred)
|
| PT_NODE * |
pt_to_merge_insert_query (PARSER_CONTEXT * parser, PT_NODE * select_list, PT_MERGE_INFO * info)
|
| PT_NODE * |
pt_to_merge_update_query (PARSER_CONTEXT * parser, PT_NODE * select_list, PT_MERGE_INFO * info)
|
| XASL_NODE * |
pt_to_merge_xasl (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE ** non_null_upd_attrs, PT_NODE ** non_null_ins_attrs, PT_NODE * default_expr_attrs)
|
| SORT_LIST * |
pt_to_orderby (PARSER_CONTEXT * parser, PT_NODE * order_list, PT_NODE * root)
|
| void |
pt_to_pos_descr (PARSER_CONTEXT * parser, QFILE_TUPLE_VALUE_POSITION * pos_p, PT_NODE * node, PT_NODE * root, PT_NODE ** referred_node, bool for_min_max_optimize)
|
| void |
pt_to_pos_descr_groupby (PARSER_CONTEXT * parser, QFILE_TUPLE_VALUE_POSITION * pos_p, PT_NODE * node, PT_NODE * root)
|
| REGU_VARIABLE_LIST |
pt_to_position_regu_variable_list (PARSER_CONTEXT * parser, PT_NODE * node_list, VAL_LIST * value_list, int * attr_offsets)
|
| PRED_EXPR * |
pt_to_pred_expr (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PRED_EXPR * |
pt_to_pred_expr_with_arg (PARSER_CONTEXT * parser, PT_NODE * node_list, int * argp)
|
| PRED_EXPR_WITH_CONTEXT * |
pt_to_pred_with_context (PARSER_CONTEXT * parser, PT_NODE * filter_pred, PT_NODE * spec)
|
| REGU_VARIABLE * |
pt_to_regu_variable (PARSER_CONTEXT * p, PT_NODE * node, UNBOX unbox)
|
| ACCESS_SPEC_TYPE * |
pt_to_spec_list (PARSER_CONTEXT * parser, PT_NODE * flat, PT_NODE * where_key_part, PT_NODE * where_part, QO_PLAN * plan, QO_XASL_INDEX_INFO * indx, PT_NODE * src_derived_table, PT_NODE * where_hash_part)
|
| PT_NODE * |
pt_to_upd_del_query (PARSER_CONTEXT * parser, PT_NODE * select_names, PT_NODE * select_list, PT_NODE * from, PT_NODE * with, PT_NODE * class_specs, PT_NODE * where, PT_NODE * using_index, PT_NODE * order_by, PT_NODE * orderby_for, int server_op, SCAN_OPERATION_TYPE scan_op_type)
|
| XASL_NODE * |
pt_to_update_xasl (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE ** non_null_attrs)
|
| VAL_LIST * |
pt_to_val_list (PARSER_CONTEXT * parser, UINTPTR id)
|
| XASL_NODE * |
pt_to_xasl_for_dblink (PARSER_CONTEXT * parser, PT_NODE * node)
|
| TP_DOMAIN * |
pt_xasl_node_to_domain (PARSER_CONTEXT * parser, const PT_NODE * node)
|
| TP_DOMAIN * |
pt_xasl_type_enum_to_domain (const PT_TYPE_ENUM type)
|
| SORT_LIST * |
ptqo_single_orderby (PARSER_CONTEXT * parser)
|
| XASL_NODE * |
ptqo_to_list_scan_proc (PARSER_CONTEXT * parser, XASL_NODE * xasl, PROC_TYPE type, XASL_NODE * listfile, PT_NODE * namelist, PT_NODE * pred, int * poslist)
|
| XASL_NODE * |
ptqo_to_merge_list_proc (PARSER_CONTEXT * parser, XASL_NODE * left, XASL_NODE * right, JOIN_TYPE join_type)
|
| XASL_NODE * |
ptqo_to_scan_proc (PARSER_CONTEXT * parser, QO_PLAN * plan, XASL_NODE * xasl, PT_NODE * spec, PT_NODE * where_key_part, PT_NODE * where_part, QO_XASL_INDEX_INFO * info, PT_NODE * where_hash_part)
|
Macros
Public Types Documentation
typedef AGGREGATE_INFO
typedef struct aggregate_info AGGREGATE_INFO;
typedef ANALYTIC_INFO
typedef struct analytic_info ANALYTIC_INFO;
enum COMPATIBLE_LEVEL
enum COMPATIBLE_LEVEL {
NOT_COMPATIBLE = 0,
ENTITY_COMPATIBLE,
NOT_COMPATIBLE_NO_RESET
};
typedef PRED_EXPR
using PRED_EXPR = cubxasl::pred_expr;
typedef SYMBOL_INFO
typedef struct symbol_info SYMBOL_INFO;
typedef TABLE_INFO
typedef struct table_info TABLE_INFO;
enum UNBOX
enum UNBOX {
UNBOX_AS_VALUE,
UNBOX_AS_TABLE
};
Public Attributes Documentation
variable query_Plan_dump_filename
char* query_Plan_dump_filename;
variable query_Plan_dump_fp
FILE* query_Plan_dump_fp;
variable query_Plan_dump_fp_open
bool query_Plan_dump_fp_open;
Public Functions Documentation
function parser_generate_do_stmt_xasl
XASL_NODE * parser_generate_do_stmt_xasl (
PARSER_CONTEXT * p,
PT_NODE * node
)
function parser_generate_xasl
XASL_NODE * parser_generate_xasl (
PARSER_CONTEXT * p,
PT_NODE * node
)
function pt_append_omitted_on_update_expr_assignments
int pt_append_omitted_on_update_expr_assignments (
PARSER_CONTEXT * parser,
PT_NODE * assigns,
PT_NODE * from
)
function pt_append_xasl
XASL_NODE * pt_append_xasl (
XASL_NODE * to,
XASL_NODE * from_list
)
function pt_copy_upddel_hints_to_select
int pt_copy_upddel_hints_to_select (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * select_stmt
)
function pt_find_omitted_default_expr
int pt_find_omitted_default_expr (
PARSER_CONTEXT * parser,
DB_OBJECT * class_obj,
PT_NODE * specified_attrs,
PT_NODE ** default_expr_attrs
)
function pt_flush_classes
PT_NODE * pt_flush_classes (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_gen_simple_merge_plan
XASL_NODE * pt_gen_simple_merge_plan (
PARSER_CONTEXT * parser,
PT_NODE * select_node,
QO_PLAN * plan,
XASL_NODE * xasl
)
function pt_get_numbering_node_etc
PT_NODE * pt_get_numbering_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_is_single_tuple
int pt_is_single_tuple (
PARSER_CONTEXT * parser,
PT_NODE * select_node
)
function pt_make_dblink_access_spec
ACCESS_SPEC_TYPE * pt_make_dblink_access_spec (
ACCESS_METHOD access,
PRED_EXPR * where_pred,
REGU_VARIABLE_LIST pred_list,
REGU_VARIABLE_LIST attr_list,
char * url,
char * user,
char * password,
int host_var_count,
int * host_var_index,
char * sql
)
function pt_make_regu_arith
REGU_VARIABLE * pt_make_regu_arith (
const REGU_VARIABLE * arg1,
const REGU_VARIABLE * arg2,
const REGU_VARIABLE * arg3,
const OPERATOR_TYPE op,
const TP_DOMAIN * domain
)
function pt_remove_xasl
XASL_NODE * pt_remove_xasl (
XASL_NODE * xasl_list,
XASL_NODE * remove
)
function pt_set_connect_by_operator_node_etc
void pt_set_connect_by_operator_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
XASL_NODE * xasl
)
function pt_set_dptr
void pt_set_dptr (
PARSER_CONTEXT * parser,
PT_NODE * node,
XASL_NODE * xasl,
UINTPTR id
)
function pt_set_iscycle_node_etc
void pt_set_iscycle_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
DB_VALUE ** iscycle_valp
)
function pt_set_isleaf_node_etc
void pt_set_isleaf_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
DB_VALUE ** isleaf_valp
)
function pt_set_level_node_etc
void pt_set_level_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
DB_VALUE ** level_valp
)
function pt_set_numbering_node_etc
void pt_set_numbering_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
DB_VALUE ** instnum_valp,
DB_VALUE ** ordbynum_valp
)
function pt_set_orderby_for_sort_limit_plan
PT_NODE * pt_set_orderby_for_sort_limit_plan (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * name_list
)
function pt_set_qprior_node_etc
void pt_set_qprior_node_etc (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
XASL_NODE * xasl
)
function pt_skeleton_buildlist_proc
XASL_NODE * pt_skeleton_buildlist_proc (
PARSER_CONTEXT * parser,
PT_NODE * namelist
)
function pt_sort_pos_regu_list_by_pos_no
void pt_sort_pos_regu_list_by_pos_no (
REGU_VARIABLE_LIST * list_ptr
)
function pt_to_delete_xasl
XASL_NODE * pt_to_delete_xasl (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_to_fetch_proc
XASL_NODE * pt_to_fetch_proc (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * pred
)
function pt_to_func_pred
FUNC_PRED * pt_to_func_pred (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * expr
)
function pt_to_hashjoin_proc
XASL_NODE * pt_to_hashjoin_proc (
PARSER_CONTEXT * parser,
XASL_NODE * outer_xasl,
XASL_NODE * inner_xasl
)
function pt_to_insert_xasl
XASL_NODE * pt_to_insert_xasl (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_to_instnum_pred
XASL_NODE * pt_to_instnum_pred (
PARSER_CONTEXT * parser,
XASL_NODE * xasl,
PT_NODE * pred
)
function pt_to_merge_insert_query
PT_NODE * pt_to_merge_insert_query (
PARSER_CONTEXT * parser,
PT_NODE * select_list,
PT_MERGE_INFO * info
)
function pt_to_merge_update_query
PT_NODE * pt_to_merge_update_query (
PARSER_CONTEXT * parser,
PT_NODE * select_list,
PT_MERGE_INFO * info
)
function pt_to_merge_xasl
XASL_NODE * pt_to_merge_xasl (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE ** non_null_upd_attrs,
PT_NODE ** non_null_ins_attrs,
PT_NODE * default_expr_attrs
)
function pt_to_orderby
SORT_LIST * pt_to_orderby (
PARSER_CONTEXT * parser,
PT_NODE * order_list,
PT_NODE * root
)
function pt_to_pos_descr
void pt_to_pos_descr (
PARSER_CONTEXT * parser,
QFILE_TUPLE_VALUE_POSITION * pos_p,
PT_NODE * node,
PT_NODE * root,
PT_NODE ** referred_node,
bool for_min_max_optimize
)
function pt_to_pos_descr_groupby
void pt_to_pos_descr_groupby (
PARSER_CONTEXT * parser,
QFILE_TUPLE_VALUE_POSITION * pos_p,
PT_NODE * node,
PT_NODE * root
)
function pt_to_position_regu_variable_list
REGU_VARIABLE_LIST pt_to_position_regu_variable_list (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
VAL_LIST * value_list,
int * attr_offsets
)
function pt_to_pred_expr
PRED_EXPR * pt_to_pred_expr (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_to_pred_expr_with_arg
PRED_EXPR * pt_to_pred_expr_with_arg (
PARSER_CONTEXT * parser,
PT_NODE * node_list,
int * argp
)
function pt_to_pred_with_context
PRED_EXPR_WITH_CONTEXT * pt_to_pred_with_context (
PARSER_CONTEXT * parser,
PT_NODE * filter_pred,
PT_NODE * spec
)
function pt_to_regu_variable
REGU_VARIABLE * pt_to_regu_variable (
PARSER_CONTEXT * p,
PT_NODE * node,
UNBOX unbox
)
function pt_to_spec_list
ACCESS_SPEC_TYPE * pt_to_spec_list (
PARSER_CONTEXT * parser,
PT_NODE * flat,
PT_NODE * where_key_part,
PT_NODE * where_part,
QO_PLAN * plan,
QO_XASL_INDEX_INFO * indx,
PT_NODE * src_derived_table,
PT_NODE * where_hash_part
)
function pt_to_upd_del_query
PT_NODE * pt_to_upd_del_query (
PARSER_CONTEXT * parser,
PT_NODE * select_names,
PT_NODE * select_list,
PT_NODE * from,
PT_NODE * with,
PT_NODE * class_specs,
PT_NODE * where,
PT_NODE * using_index,
PT_NODE * order_by,
PT_NODE * orderby_for,
int server_op,
SCAN_OPERATION_TYPE scan_op_type
)
function pt_to_update_xasl
XASL_NODE * pt_to_update_xasl (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE ** non_null_attrs
)
function pt_to_val_list
VAL_LIST * pt_to_val_list (
PARSER_CONTEXT * parser,
UINTPTR id
)
function pt_to_xasl_for_dblink
XASL_NODE * pt_to_xasl_for_dblink (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function pt_xasl_node_to_domain
TP_DOMAIN * pt_xasl_node_to_domain (
PARSER_CONTEXT * parser,
const PT_NODE * node
)
function pt_xasl_type_enum_to_domain
TP_DOMAIN * pt_xasl_type_enum_to_domain (
const PT_TYPE_ENUM type
)
function ptqo_single_orderby
SORT_LIST * ptqo_single_orderby (
PARSER_CONTEXT * parser
)
function ptqo_to_list_scan_proc
XASL_NODE * ptqo_to_list_scan_proc (
PARSER_CONTEXT * parser,
XASL_NODE * xasl,
PROC_TYPE type,
XASL_NODE * listfile,
PT_NODE * namelist,
PT_NODE * pred,
int * poslist
)
function ptqo_to_merge_list_proc
XASL_NODE * ptqo_to_merge_list_proc (
PARSER_CONTEXT * parser,
XASL_NODE * left,
XASL_NODE * right,
JOIN_TYPE join_type
)
function ptqo_to_scan_proc
XASL_NODE * ptqo_to_scan_proc (
PARSER_CONTEXT * parser,
QO_PLAN * plan,
XASL_NODE * xasl,
PT_NODE * spec,
PT_NODE * where_key_part,
PT_NODE * where_part,
QO_XASL_INDEX_INFO * info,
PT_NODE * where_hash_part
)
Macro Definition Documentation
define MATCH_ALL
define PT_PRED_ARG_GRBYNUM_CONTINUE
#define PT_PRED_ARG_GRBYNUM_CONTINUE `0x02`
define PT_PRED_ARG_INSTNUM_CONTINUE
#define PT_PRED_ARG_INSTNUM_CONTINUE `0x01`
define PT_PRED_ARG_ORDBYNUM_CONTINUE
#define PT_PRED_ARG_ORDBYNUM_CONTINUE `0x04`
The documentation for this class was generated from the following file cubrid/src/parser/xasl_generation.h