Skip to content

File xasl_generation.c

FileList > cubrid > src > parser > xasl_generation.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdio.h>
  • #include <assert.h>
  • #include <search.h>
  • #include "xasl_generation.h"
  • #include "authenticate.h"
  • #include "misc_string.h"
  • #include "error_manager.h"
  • #include "parser.h"
  • #include "xasl_aggregate.hpp"
  • #include "xasl_analytic.hpp"
  • #include "xasl_predicate.hpp"
  • #include "xasl_regu_alloc.hpp"
  • #include "db.h"
  • #include "environment_variable.h"
  • #include "schema_manager.h"
  • #include "view_transform.h"
  • #include "locator_cl.h"
  • #include "optimizer.h"
  • #include "parser_message.h"
  • #include "virtual_object.h"
  • #include "set_object.h"
  • #include "object_primitive.h"
  • #include "object_print.h"
  • #include "object_representation.h"
  • #include "intl_support.h"
  • #include "system_parameter.h"
  • #include "execute_schema.h"
  • #include "porting.h"
  • #include "execute_statement.h"
  • #include "query_graph.h"
  • #include "schema_system_catalog_constants.h"
  • #include "query_planner.h"
  • #include "semantic_check.h"
  • #include "query_dump.h"
  • #include "parser_support.h"
  • #include "compile_context.h"
  • #include "db_json.hpp"
  • #include "jsp_cl.h"
  • #include "subquery_cache.h"
  • #include "pl_signature.hpp"
  • #include "sp_catalog.hpp"
  • #include "px_heap_scan_checker.hpp"
  • #include "px_query_checker.hpp"
  • #include "dbtype.h"

Classes

Type Name
struct analytic_key_metadomain
struct corr_info
struct hashable
struct pred_regu_variable_p_list_node
struct set_numbering_node_etc_info
struct uncorr_info
struct xasl_supp_info

Public Types

Type Name
typedef struct analytic_key_metadomain ANALYTIC_KEY_METADOMAIN
typedef struct corr_info CORR_INFO
typedef struct hashable HASHABLE
enum HASH_ATTR
typedef struct pred_regu_variable_p_list_node * PRED_REGU_VARIABLE_P_LIST
typedef struct pred_regu_variable_p_list_node PRED_REGU_VARIABLE_P_LIST_NODE
typedef struct set_numbering_node_etc_info SET_NUMBERING_NODE_ETC_INFO
enum SORT_LIST_MODE
typedef struct uncorr_info UNCORR_INFO
typedef struct xasl_supp_info XASL_SUPP_INFO

Public Attributes

Type Name
char * query_Plan_dump_filename = [**NULL**](freelistheap_8h.md#define-null)
FILE * query_Plan_dump_fp = [**NULL**](freelistheap_8h.md#define-null)
bool query_Plan_dump_fp_open = [**false**](broker__monitor_8c.md#function-timeout)

Public Static Attributes

Type Name
const int OID_LIST_GROWTH = 10
ANALYTIC_KEY_METADOMAIN analitic_key_metadomain_Initializer = { {0}, 0, 0, {[**NULL**](freelistheap_8h.md#define-null)}, 0, {[**NULL**](freelistheap_8h.md#define-null)}, [**false**](broker__monitor_8c.md#function-timeout), 0, [**NULL**](freelistheap_8h.md#define-null) }
XASL_SUPP_INFO xasl_Supp_info = { [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), [**NULL**](freelistheap_8h.md#define-null), 0, 0, 0 }

Public Functions

Type Name
XASL_NODE * parser_generate_do_stmt_xasl (PARSER_CONTEXT * parser, PT_NODE * node)
XASL_NODE * parser_generate_xasl (PARSER_CONTEXT * parser, 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_attribute (PARSER_CONTEXT * parser, const PT_NODE * name, const PT_NODE * attributes)
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 * node, 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)
PT_NODE * pt_make_prim_data_type (PARSER_CONTEXT * parser, PT_TYPE_ENUM e)
PT_NODE * pt_make_prim_data_type_fortonum (PARSER_CONTEXT * parser, int prec, int scale)
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)
int pt_prepare_corr_subquery_hash_result_cache (PARSER_CONTEXT * parser, PT_NODE * node, XASL_NODE * xasl)
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 * nodes_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 * statement)
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 * statement)
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 * predicate, PT_NODE * spec)
void pt_to_regu_resolve_domain (int * p_precision, int * p_scale, const PT_NODE * node)
REGU_VARIABLE * pt_to_regu_variable (PARSER_CONTEXT * parser, PT_NODE * node, UNBOX unbox)
ACCESS_SPEC_TYPE * pt_to_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * where_key_part, PT_NODE * where_part, QO_PLAN * plan, QO_XASL_INDEX_INFO * index_part, PT_NODE * src_derived_tbl, 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 * spec)
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 proc_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)
void qo_plan_lite_print (QO_PLAN * plan, FILE * f, int howfar)

Public Static Functions

Type Name
int hhhhmmss (const DB_TIME * time, char * buf, int buflen)
int hhmiss (const DB_TIME * time, char * buf, int buflen)
int hhmissms (const unsigned int mtime, char * buf, int buflen)
char * host_var_name (unsigned int custom_print)
int look_for_unique_btid (DB_OBJECT * classop, const char * name, BTID * btid)
int mmddyyyyhhmiss (const DB_UTIME * utime, char * buf, int buflen)
int mmddyyyyhhmissms (const DB_DATETIME * datetime, char * buf, int buflen)
RANGE op_type_to_range (const PT_OP_TYPE op_type, const int nterms)
PT_NODE * parser_generate_xasl_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * parser_generate_xasl_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
XASL_NODE * parser_generate_xasl_proc (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * query_list)
int pt_add_pseudocolumns_placeholders (PARSER_CONTEXT * parser, OUTPTR_LIST * outptr_list, bool alloc_vals)
void pt_add_regu_var_to_list (REGU_VARIABLE_LIST * destination, REGU_VARIABLE_LIST source)
void pt_adjust_analytic_sort_specs (PARSER_CONTEXT * parser, PT_NODE * node, int idx, int adjust)
SORT_LIST * pt_agg_orderby_to_sort_list (PARSER_CONTEXT * parser, PT_NODE * order_list, PT_NODE * agg_args_list)
void pt_aggregate_info_append_value_list (AGGREGATE_INFO * info, VAL_LIST * value_list)
void pt_aggregate_info_update_scan_regu_list (AGGREGATE_INFO * info, REGU_VARIABLE_LIST scan_regu_list)
void pt_aggregate_info_update_value_and_reguvar_lists (AGGREGATE_INFO * info, VAL_LIST * value_list, REGU_VARIABLE_LIST regu_position_list, REGU_VARIABLE_LIST regu_constant_list)
bool pt_analytic_to_metadomain (ANALYTIC_TYPE * func_p, PT_NODE * sort_list, ANALYTIC_KEY_METADOMAIN * func_meta, PT_NODE ** index, int * index_size)
PT_NODE * pt_append_assignment_references (PARSER_CONTEXT * parser, PT_NODE * assignments, PT_NODE * from, PT_NODE * select_list)
XASL_NODE * pt_append_scan (const XASL_NODE * to, const XASL_NODE * from)
REGU_VARIABLE * pt_attribute_to_regu (PARSER_CONTEXT * parser, PT_NODE * attr)
ANALYTIC_EVAL_TYPE * pt_build_analytic_eval_list (PARSER_CONTEXT * parser, QO_PLAN * qo_plan, ANALYTIC_KEY_METADOMAIN * meta, ANALYTIC_EVAL_TYPE * eval, PT_NODE ** sort_list_index, ANALYTIC_INFO * info)
XASL_NODE * pt_build_do_stmt_aptr_list (PARSER_CONTEXT * parser, PT_NODE * node)
PT_NODE * pt_build_do_stmt_aptr_list_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int pt_check_analytic_limit_optimization (XASL_NODE * xasl, ANALYTIC_EVAL_TYPE * eval_list)
PT_NODE * pt_check_corr_subquery_not_cachable_expr (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
void pt_check_dblink_trigger (PARSER_CONTEXT * parser, PT_NODE * statement)
PT_NODE * pt_check_dblink_trigger_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_check_hashable (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
VAL_LIST * pt_clone_val_list (PARSER_CONTEXT * parser, PT_NODE * attribute_list)
int pt_cnt_attrs (const REGU_VARIABLE_LIST attr_list)
VAL_LIST * pt_copy_val_list (PARSER_CONTEXT * parser, VAL_LIST * val_list_p)
PT_NODE * pt_corr_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int pt_count_analytic_covered_sort_list (PARSER_CONTEXT * parser, QO_PLAN * qo_plan, ANALYTIC_EVAL_TYPE * eval, ANALYTIC_INFO * info)
int pt_create_iss_range (INDX_INFO * indx_infop, TP_DOMAIN * domain)
void pt_create_json_table_column (PARSER_CONTEXT * parser, PT_NODE * jt_column, TABLE_INFO * tbl_info, json_table_column & col_result)
PT_NODE * pt_expand_analytic_node (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_list)
void pt_fill_in_attrid_array (REGU_VARIABLE_LIST attr_list, ATTR_ID * attr_array, int * next_pos)
PT_NODE * pt_filter_pseudo_specs (PARSER_CONTEXT * parser, PT_NODE * spec)
PT_NODE * pt_find_hq_op_except_prior (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
XASL_NODE * pt_find_oid_scan_block (XASL_NODE * xasl, OID * oid)
TABLE_INFO * pt_find_table_info (UINTPTR spec_id, TABLE_INFO * exposed_list)
XASL_NODE * pt_find_xasl (XASL_NODE * list, XASL_NODE * match)
int pt_fix_buildlist_aggregate_cume_dist_percent_rank (PARSER_CONTEXT * parser, PT_NODE * node, AGGREGATE_INFO * info, REGU_VARIABLE * regu)
int pt_fix_first_term_expr_for_iss (PARSER_CONTEXT * parser, QO_INDEX_ENTRY * index_entryp, PT_NODE ** term_exprs)
int pt_fix_first_term_func_index_for_iss (PARSER_CONTEXT * parser, QO_INDEX_ENTRY * index_entryp, PT_NODE ** term_exprs)
PT_NODE * pt_fix_interpolation_aggregate_function_order_by (PARSER_CONTEXT * parser, PT_NODE * node)
void pt_fix_pseudocolumns_pos_regu_list (PARSER_CONTEXT * parser, PT_NODE * node_list, REGU_VARIABLE_LIST regu_list)
PT_NODE * pt_flush_class_and_null_xasl (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
REGU_VARIABLE * pt_function_to_regu (PARSER_CONTEXT * parser, PT_NODE * function)
XASL_NODE * pt_gen_optimized_plan (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * plan, XASL_NODE * xasl)
XASL_NODE * pt_gen_simple_plan (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * plan, XASL_NODE * xasl)
ANALYTIC_EVAL_TYPE * pt_generate_simple_analytic_eval_type (PARSER_CONTEXT * parser, ANALYTIC_INFO * info)
int pt_get_mvcc_reev_range_data (PARSER_CONTEXT * parser, TABLE_INFO * table_info, PT_NODE * where_key_part, QO_XASL_INDEX_INFO * index_pred, PRED_EXPR ** where_range, REGU_VARIABLE_LIST * regu_attributes_range, HEAP_CACHE_ATTRINFO ** cache_range)
int pt_get_pred_attrs (PARSER_CONTEXT * parser, TABLE_INFO * table_info, PT_NODE * pred, PT_NODE ** pred_attrs)
PRED_REGU_VARIABLE_P_LIST pt_get_pred_regu_variable_p_list (const PRED_EXPR * pred, int * err)
PRED_REGU_VARIABLE_P_LIST pt_get_var_regu_variable_p_list (const REGU_VARIABLE * regu, bool is_prior, int * err)
bool pt_has_reev_in_subquery (PARSER_CONTEXT * parser, PT_NODE * statement)
PT_NODE * pt_has_reev_in_subquery_post (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
PT_NODE * pt_has_reev_in_subquery_pre (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
PT_NODE * pt_host_vars_count (PARSER_CONTEXT * parser, PT_NODE * term_list, void * arg, int * continue_walk)
PT_NODE * pt_host_vars_index (PARSER_CONTEXT * parser, PT_NODE * term_list, void * arg, int * continue_walk)
DB_VALUE * pt_index_value (const VAL_LIST * value, int index)
int pt_init_pred_expr_context (PARSER_CONTEXT * parser, PT_NODE * predicate, PT_NODE * spec, PRED_EXPR_WITH_CONTEXT * pred_expr)
void pt_init_xasl_supp_info ()
int pt_initialize_analytic_info (PARSER_CONTEXT * parser, ANALYTIC_INFO * analytic_info, PT_NODE * select_node, PT_NODE * select_list_ex, BUILDLIST_PROC_NODE * buildlist)
int pt_instnum_to_key_limit (PARSER_CONTEXT * parser, QO_PLAN * plan, XASL_NODE * xasl)
bool pt_is_analytic_eval_list_valid (ANALYTIC_EVAL_TYPE * eval_list)
PT_NODE * pt_is_hash_agg_eligible (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
bool pt_is_sort_list_covered (PARSER_CONTEXT * parser, SORT_LIST * covering_list_p, SORT_LIST * covered_list_p)
PT_NODE * pt_is_spec_node (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
int pt_is_subquery (PT_NODE * node)
REGU_VARIABLE * pt_join_term_to_regu_variable (PARSER_CONTEXT * parser, PT_NODE * join_term)
SELUPD_LIST * pt_link_regu_to_selupd_list (PARSER_CONTEXT * parser, REGU_VARIABLE_LIST regulist, SELUPD_LIST * selupd_list, DB_OBJECT * target_class)
ACCESS_SPEC_TYPE * pt_make_access_spec (TARGET_TYPE spec_type, ACCESS_METHOD access, INDX_INFO * indexptr, PRED_EXPR * where_key, PRED_EXPR * where_pred, PRED_EXPR * where_range)
XASL_NODE * pt_make_aptr_parent_node (PARSER_CONTEXT * parser, PT_NODE * node, PROC_TYPE type)
ACCESS_SPEC_TYPE * pt_make_class_access_spec (PARSER_CONTEXT * parser, PT_NODE * flat, DB_OBJECT * class_, TARGET_TYPE scan_type, ACCESS_METHOD access, INDX_INFO * indexptr, PRED_EXPR * where_key, PRED_EXPR * where_pred, PRED_EXPR * where_range, REGU_VARIABLE_LIST attr_list_key, REGU_VARIABLE_LIST attr_list_pred, REGU_VARIABLE_LIST attr_list_rest, REGU_VARIABLE_LIST attr_list_range, OUTPTR_LIST * output_val_list, REGU_VARIABLE_LIST regu_val_list, HEAP_CACHE_ATTRINFO * cache_key, HEAP_CACHE_ATTRINFO * cache_pred, HEAP_CACHE_ATTRINFO * cache_rest, HEAP_CACHE_ATTRINFO * cache_range, ACCESS_SCHEMA_TYPE schema_type, DB_VALUE ** cache_recordinfo, REGU_VARIABLE_LIST reserved_val_list)
XASL_NODE * pt_make_connect_by_proc (PARSER_CONTEXT * parser, PT_NODE * select_node, XASL_NODE * select_xasl)
int pt_make_constant_regu_list_from_val_list (PARSER_CONTEXT * parser, VAL_LIST * value_list, REGU_VARIABLE_LIST * regu_list)
ACCESS_SPEC_TYPE * pt_make_cselect_access_spec (XASL_NODE * xasl, PL_SIGNATURE_ARRAY_TYPE * sig_array, ACCESS_METHOD access, INDX_INFO * indexptr, PRED_EXPR * where_pred, REGU_VARIABLE_LIST attr_list)
REGU_VARIABLE * pt_make_function (PARSER_CONTEXT * parser, int function_code, const REGU_VARIABLE_LIST arg_list, const DB_TYPE result_type, const PT_NODE * node)
int * pt_make_identity_offsets (PT_NODE * attr_list)
ACCESS_SPEC_TYPE * pt_make_json_table_access_spec (PARSER_CONTEXT * parser, REGU_VARIABLE * json_reguvar, PRED_EXPR * where_pred, PT_JSON_TABLE_INFO * json_table, TABLE_INFO * tbl_info)
json_table_node * pt_make_json_table_spec_node (PARSER_CONTEXT * parser, PT_JSON_TABLE_INFO * json_table, size_t & start_id, TABLE_INFO * tbl_info)
void pt_make_json_table_spec_node_internal (PARSER_CONTEXT * parser, PT_JSON_TABLE_NODE_INFO * jt_node_info, size_t & current_id, TABLE_INFO * tbl_info, json_table_node & result)
ACCESS_SPEC_TYPE * pt_make_list_access_spec (XASL_NODE * xasl, ACCESS_METHOD access, INDX_INFO * indexptr, PRED_EXPR * where_pred, REGU_VARIABLE_LIST attr_list_pred, REGU_VARIABLE_LIST attr_list_rest, REGU_VARIABLE_LIST attr_list_build, REGU_VARIABLE_LIST attr_list_probe)
OUTPTR_LIST * pt_make_outlist_from_vallist (PARSER_CONTEXT * parser, VAL_LIST * val_list_p)
REGU_VARIABLE_LIST pt_make_pos_regu_list (PARSER_CONTEXT * parser, VAL_LIST * val_list_p)
REGU_VARIABLE * pt_make_pos_regu_var_from_scratch (TP_DOMAIN * dom, DB_VALUE * fetch_to, int pos_no)
REGU_VARIABLE * pt_make_position_regu_variable (PARSER_CONTEXT * parser, const PT_NODE * node, int i)
PRED_EXPR * pt_make_pred_expr_pred (const PRED_EXPR * arg1, const PRED_EXPR * arg2, const BOOL_OP bop)
PRED_EXPR * pt_make_pred_term_comp (const REGU_VARIABLE * arg1, const REGU_VARIABLE * arg2, const REL_OP rop, const DB_TYPE data_type)
PRED_EXPR * pt_make_pred_term_is (PARSER_CONTEXT * parser, PT_NODE * arg1, PT_NODE * arg2, const BOOL_OP bop)
PRED_EXPR * pt_make_pred_term_like (const REGU_VARIABLE * arg1, const REGU_VARIABLE * arg2, const REGU_VARIABLE * arg3)
PRED_EXPR * pt_make_pred_term_not (const PRED_EXPR * arg1)
PRED_EXPR * pt_make_pred_term_rlike (REGU_VARIABLE * arg1, REGU_VARIABLE * arg2, REGU_VARIABLE * case_sensitive)
PRED_EXPR * pt_make_pred_term_some_all (const REGU_VARIABLE * arg1, const REGU_VARIABLE * arg2, const REL_OP rop, const DB_TYPE data_type, const QL_FLAG some_all)
PT_NODE * pt_make_prefix_index_data_filter (PARSER_CONTEXT * parser, PT_NODE * where_key_part, PT_NODE * where_part, QO_XASL_INDEX_INFO * index_pred)
REGU_VARIABLE * pt_make_regu_constant (PARSER_CONTEXT * parser, DB_VALUE * db_value, const DB_TYPE db_type, const PT_NODE * node)
REGU_VARIABLE * pt_make_regu_hostvar (PARSER_CONTEXT * parser, const PT_NODE * node)
REGU_VARIABLE * pt_make_regu_insert (PARSER_CONTEXT * parser, PT_NODE * statement)
REGU_VARIABLE * pt_make_regu_iscycle (PARSER_CONTEXT * parser, const PT_NODE * node)
REGU_VARIABLE * pt_make_regu_isleaf (PARSER_CONTEXT * parser, const PT_NODE * node)
REGU_VARIABLE * pt_make_regu_level (PARSER_CONTEXT * parser, const PT_NODE * node)
PT_NODE * pt_make_regu_list_from_value_list (PARSER_CONTEXT * parser, PT_NODE * node, VAL_LIST * value_list, REGU_VARIABLE_LIST * regu_list)
REGU_VARIABLE * pt_make_regu_numbering (PARSER_CONTEXT * parser, const PT_NODE * node)
REGU_VARIABLE * pt_make_regu_pred (const PRED_EXPR * pred)
REGU_VARIABLE * pt_make_regu_reguvalues_list (PARSER_CONTEXT * parser, const PT_NODE * node, UNBOX unbox)
REGU_VARIABLE * pt_make_regu_subquery (PARSER_CONTEXT * parser, XASL_NODE * xasl, const UNBOX unbox, const PT_NODE * node)
DB_VALUE ** pt_make_reserved_value_list (PARSER_CONTEXT * parser, PT_RESERVED_NAME_TYPE type)
PT_NODE * pt_make_result_ref (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * groupby_list, VAL_LIST * vallist)
ACCESS_SPEC_TYPE * pt_make_set_access_spec (REGU_VARIABLE * set_expr, ACCESS_METHOD access, INDX_INFO * indexptr, PRED_EXPR * where_pred, REGU_VARIABLE_LIST attr_list)
ACCESS_SPEC_TYPE * pt_make_showstmt_access_spec (PRED_EXPR * where_pred, SHOWSTMT_TYPE show_type, REGU_VARIABLE_LIST arg_list)
int pt_make_sq_cache_key_struct (QPROC_DB_VALUE_LIST key_struct, void * p, int type)
TABLE_INFO * pt_make_table_info (PARSER_CONTEXT * parser, PT_NODE * table_spec)
VAL_LIST * pt_make_val_list (PARSER_CONTEXT * parser, PT_NODE * attribute_list)
REGU_VARIABLE * pt_make_vid (PARSER_CONTEXT * parser, const PT_NODE * data_type, const REGU_VARIABLE * regu3)
void pt_mark_spec_list_for_update_clause (PARSER_CONTEXT * parser, PT_NODE * statement, PT_SPEC_FLAG spec_flag)
void pt_merge_regu_var_lists (REGU_VARIABLE_LIST * destination, REGU_VARIABLE_LIST source)
void pt_metadomain_adjust_key_prefix (ANALYTIC_KEY_METADOMAIN * meta)
void pt_metadomain_build_comp_graph (ANALYTIC_KEY_METADOMAIN * af_meta, int af_count, int level)
bool pt_metadomains_compatible (ANALYTIC_KEY_METADOMAIN * f1, ANALYTIC_KEY_METADOMAIN * f2, ANALYTIC_KEY_METADOMAIN * out, int * lost_link_count, int level)
int pt_mvcc_flag_specs_assign_reev (PARSER_CONTEXT * parser, PT_NODE * spec_list, PT_NODE * assign_list)
int pt_mvcc_flag_specs_cond_reev (PARSER_CONTEXT * parser, PT_NODE * spec_list, PT_NODE * cond)
PT_NODE * pt_mvcc_prepare_upd_del_select (PARSER_CONTEXT * parser, PT_NODE * select_stmt)
int pt_mvcc_set_spec_assign_reev_extra_indexes (PARSER_CONTEXT * parser, PT_NODE * spec_assign, PT_NODE * spec_list, PT_NODE * assign_list, int * indexes, int indexes_alloc_size)
PT_NODE * pt_node_list_to_value_and_reguvar_list (PARSER_CONTEXT * parser, PT_NODE * node, VAL_LIST ** value_list, REGU_VARIABLE_LIST * regu_position_list)
PT_NODE * pt_null_xasl (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
PT_NODE * pt_numbering_set_continue_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
ANALYTIC_EVAL_TYPE * pt_optimize_analytic_list (PARSER_CONTEXT * parser, QO_PLAN * qo_plan, ANALYTIC_INFO * info, bool * no_optimization)
void pt_optimize_min_max_list (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * plan, AGGREGATE_TYPE * aggregate)
int pt_ordbynum_to_key_limit_multiple_ranges (PARSER_CONTEXT * parser, QO_PLAN * plan, XASL_NODE * xasl)
XASL_NODE * pt_plan_cte (PARSER_CONTEXT * parser, PT_NODE * node, PROC_TYPE proc_type)
XASL_NODE * pt_plan_query (PARSER_CONTEXT * parser, PT_NODE * select_node)
XASL_NODE * pt_plan_schema (PARSER_CONTEXT * parser, PT_NODE * select_node)
XASL_NODE * pt_plan_set_query (PARSER_CONTEXT * parser, PT_NODE * node, PROC_TYPE proc_type)
XASL_NODE * pt_plan_single_table_hq_iterations (PARSER_CONTEXT * parser, PT_NODE * select_node, XASL_NODE * xasl)
void pt_pop_symbol_info (PARSER_CONTEXT * parser)
SYMBOL_INFO * pt_push_fetch_spec_info (PARSER_CONTEXT * parser, SYMBOL_INFO * symbols, PT_NODE * fetch_spec)
SYMBOL_INFO * pt_push_symbol_info (PARSER_CONTEXT * parser, PT_NODE * select_node)
PT_NODE * pt_query_set_reference (PARSER_CONTEXT * parser, PT_NODE * node)
DB_VALUE * pt_regu_to_dbvalue (PARSER_CONTEXT * parser, REGU_VARIABLE * regu)
int pt_reserved_id_to_valuelist_index (PARSER_CONTEXT * parser, PT_RESERVED_NAME_ID reserved_id)
PT_NODE * pt_resolve_analytic_references (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select_list, VAL_LIST * vallist)
int pt_serial_to_xasl_class_oid_list (PARSER_CONTEXT * parser, const PT_NODE * serial, OID ** oid_listp, int ** lock_listp, int ** tcard_listp, int * nump, int * sizep)
void pt_set_access_spec_for_aggregation (PARSER_CONTEXT * parser, AGGREGATE_TYPE * aggregate, ACCESS_SPEC_TYPE * access_spec)
PT_NODE * pt_set_analytic_node_etc (PARSER_CONTEXT * parser, PT_NODE * node)
void pt_set_aptr (PARSER_CONTEXT * parser, PT_NODE * select_node, XASL_NODE * xasl)
PT_NODE * pt_set_connect_by_operator_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
XASL_NODE * pt_set_connect_by_xasl (PARSER_CONTEXT * parser, PT_NODE * select_node, XASL_NODE * xasl)
PT_NODE * pt_set_is_system_generated_stmt (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
PT_NODE * pt_set_iscycle_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_set_isleaf_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_set_level_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
int pt_set_like_recompile_candidate (PARSER_CONTEXT * parser, QO_PLAN * qo_plan, XASL_NODE * xasl)
int pt_set_limit_optimization_flags (PARSER_CONTEXT * parser, QO_PLAN * plan, XASL_NODE * xasl)
PT_NODE * pt_set_numbering_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_set_qprior_node_etc_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
void pt_set_regu_list_pos_descr_from_idx (REGU_VARIABLE_LIST & regu_list, size_t starting_index)
SORT_LIST * pt_sort_list_from_metadomain (PARSER_CONTEXT * parser, ANALYTIC_KEY_METADOMAIN * meta, PT_NODE ** sort_list_index, PT_NODE * select_list)
int pt_spec_to_xasl_class_oid_list (PARSER_CONTEXT * parser, const PT_NODE * spec, OID ** oid_listp, int ** lock_listp, int ** tcard_listp, int * nump, int * sizep, int includes_tde_class)
int pt_spec_to_xasl_class_oid_list (PARSER_CONTEXT * parser, const PT_NODE * spec, OID ** oid_listp, int ** lock_listp, int ** tcard_listp, int * nump, int * sizep, int * includes_tde_class)
void pt_split_access_if_instnum (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * where, PT_NODE ** access_part, PT_NODE ** if_part, PT_NODE ** instnum_part)
int pt_split_attrs (PARSER_CONTEXT * parser, TABLE_INFO * table_info, PT_NODE * pred, PT_NODE ** pred_attrs, PT_NODE ** rest_attrs, PT_NODE ** reserved_attrs, int ** pred_offsets, int ** rest_offsets, int ** reserved_offsets)
int pt_split_hash_attrs (PARSER_CONTEXT * parser, TABLE_INFO * table_info, PT_NODE * pred, PT_NODE ** build_attrs, PT_NODE ** probe_attrs)
int pt_split_hash_attrs_for_HQ (PARSER_CONTEXT * parser, PT_NODE * pred, PT_NODE ** build_attrs, PT_NODE ** probe_attrs, PT_NODE ** pred_without_HQ)
void pt_split_having_grbynum (PARSER_CONTEXT * parser, PT_NODE * having, PT_NODE ** having_part, PT_NODE ** grbynum_part)
void pt_split_if_instnum (PARSER_CONTEXT * parser, PT_NODE * where, PT_NODE ** if_part, PT_NODE ** instnum_part)
int pt_split_pred_for_HQ (PARSER_CONTEXT * parser, PT_NODE * pred, PT_NODE ** pred_without_HQ, PT_NODE ** pred_with_HQ)
int pt_split_pred_regu_list (PARSER_CONTEXT * parser, const VAL_LIST * val_list, const PRED_EXPR * pred, REGU_VARIABLE_LIST * regu_list_rest, REGU_VARIABLE_LIST * regu_list_pred, REGU_VARIABLE_LIST * prior_regu_list_rest, REGU_VARIABLE_LIST * prior_regu_list_pred, bool split_prior)
REGU_VARIABLE * pt_stored_procedure_to_regu (PARSER_CONTEXT * parser, PT_NODE * node)
PT_NODE * pt_substitute_analytic_references (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE ** ex_list)
PT_NODE * pt_substitute_assigned_name_node (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
SYMBOL_INFO * pt_symbol_info_alloc (void)
int pt_table_compatible (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * spec)
PT_NODE * pt_table_compatible_node (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_info, int * continue_walk)
TABLE_INFO * pt_table_info_alloc (void)
SORT_LIST * pt_to_after_groupby (PARSER_CONTEXT * parser, PT_NODE * group_list, PT_NODE * root)
SORT_LIST * pt_to_after_iscan (PARSER_CONTEXT * parser, PT_NODE * iscan_list, PT_NODE * root)
AGGREGATE_TYPE * pt_to_aggregate (PARSER_CONTEXT * parser, PT_NODE * select_node, OUTPTR_LIST * out_list, VAL_LIST * value_list, REGU_VARIABLE_LIST regu_list, REGU_VARIABLE_LIST scan_regu_list, PT_NODE * out_names, DB_VALUE ** grbynum_valp, QO_PLAN * qo_plan)
PT_NODE * pt_to_aggregate_node (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
PT_NODE * pt_to_analytic_final_node (PARSER_CONTEXT * parser, PT_NODE * tree, PT_NODE ** ex_list, int * instnum_flag)
PT_NODE * pt_to_analytic_node (PARSER_CONTEXT * parser, PT_NODE * tree, ANALYTIC_INFO * analytic_info)
XASL_NODE * pt_to_buildlist_proc (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * qo_plan)
XASL_NODE * pt_to_buildschema_proc (PARSER_CONTEXT * parser, PT_NODE * select_node)
XASL_NODE * pt_to_buildvalue_proc (PARSER_CONTEXT * parser, PT_NODE * select_node, QO_PLAN * qo_plan)
ACCESS_SPEC_TYPE * pt_to_class_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * where_key_part, PT_NODE * where_part, QO_PLAN * plan, QO_XASL_INDEX_INFO * index_pred)
int pt_to_constraint_pred (PARSER_CONTEXT * parser, XASL_NODE * xasl, PT_NODE * spec, PT_NODE * non_null_attrs, PT_NODE * attr_list, int attr_offset)
XASL_NODE * pt_to_corr_subquery_list (PARSER_CONTEXT * parser, PT_NODE * node, UINTPTR id)
ACCESS_SPEC_TYPE * pt_to_cselect_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * cselect, PT_NODE * src_derived_tbl)
ACCESS_SPEC_TYPE * pt_to_cte_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * cte_def, PT_NODE * where_part)
REGU_VARIABLE * pt_to_cume_dist_percent_rank_regu_variable (PARSER_CONTEXT * parser, PT_NODE * tree, UNBOX unbox)
ACCESS_SPEC_TYPE * pt_to_dblink_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * dblink_table, PT_NODE * src_derived_tbl, PT_NODE * where_p)
XASL_NODE * pt_to_fetch_as_scan_proc (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * join_term, XASL_NODE * xasl_to_scan)
void pt_to_fetch_proc_list (PARSER_CONTEXT * parser, PT_NODE * spec, XASL_NODE * root)
void pt_to_fetch_proc_list_recurse (PARSER_CONTEXT * parser, PT_NODE * spec, XASL_NODE * root)
SORT_LIST * pt_to_groupby (PARSER_CONTEXT * parser, PT_NODE * group_list, PT_NODE * root)
int pt_to_index_attrs (PARSER_CONTEXT * parser, TABLE_INFO * table_info, QO_XASL_INDEX_INFO * index_pred, PT_NODE * pred, PT_NODE ** pred_attrs, int ** pred_offsets)
INDX_INFO * pt_to_index_info (PARSER_CONTEXT * parser, DB_OBJECT * class_, PRED_EXPR * where_pred, QO_PLAN * plan, QO_XASL_INDEX_INFO * qo_index_infop)
ACCESS_SPEC_TYPE * pt_to_json_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * json_table, PT_NODE * src_derived_tbl, PT_NODE * where_p)
int pt_to_key_limit (PARSER_CONTEXT * parser, PT_NODE * key_limit, QO_LIMIT_INFO * limit_infop, KEY_INFO * key_infop, bool key_limit_reset)
int pt_to_list_key (PARSER_CONTEXT * parser, PT_NODE ** term_exprs, int nterms, bool multi_col, KEY_INFO * key_infop)
XASL_NODE * pt_to_merge_insert_xasl (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * non_null_attrs, PT_NODE * default_expr_attrs)
XASL_NODE * pt_to_merge_update_xasl (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE ** non_null_attrs)
void pt_to_misc_operand (REGU_VARIABLE * regu, PT_MISC_TYPE misc_specifier)
ODKU_INFO * pt_to_odku_info (PARSER_CONTEXT * parser, PT_NODE * insert, XASL_NODE * xasl)
SORT_LIST * pt_to_order_siblings_by (PARSER_CONTEXT * parser, XASL_NODE * xasl, XASL_NODE * connect_by_xasl)
OUTPTR_LIST * pt_to_outlist (PARSER_CONTEXT * parser, PT_NODE * node_list, SELUPD_LIST ** selupd_list_ptr, UNBOX unbox)
PRED_EXPR * pt_to_pred_expr_local_with_arg (PARSER_CONTEXT * parser, PT_NODE * node, int * argp)
void pt_to_pred_terms (PARSER_CONTEXT * parser, PT_NODE * terms, UINTPTR id, PRED_EXPR ** pred)
int pt_to_range_key (PARSER_CONTEXT * parser, PT_NODE ** term_exprs, int nterms, bool multi_col, KEY_INFO * key_infop)
int pt_to_rangelist_key (PARSER_CONTEXT * parser, PT_NODE ** term_exprs, int nterms, bool multi_col, KEY_INFO * key_infop, int rangelist_idx, int * multi_col_pos)
REGU_VARIABLE * pt_to_regu_attr_descr (PARSER_CONTEXT * parser, DB_OBJECT * class_object, HEAP_CACHE_ATTRINFO * cache_attrinfo, PT_NODE * attr)
REGU_VARIABLE * pt_to_regu_reserved_name (PARSER_CONTEXT * parser, PT_NODE * attr)
REGU_VARIABLE_LIST pt_to_regu_variable_list (PARSER_CONTEXT * p, PT_NODE * node, UNBOX unbox, VAL_LIST * value_list, int * attr_offsets)
XASL_NODE * pt_to_scan_proc_list (PARSER_CONTEXT * parser, PT_NODE * node, XASL_NODE * root)
ACCESS_SPEC_TYPE * pt_to_set_expr_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * set_expr, PT_NODE * where_part)
ACCESS_SPEC_TYPE * pt_to_showstmt_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * where_part)
int pt_to_single_key (PARSER_CONTEXT * parser, PT_NODE ** term_exprs, int nterms, bool multi_col, KEY_INFO * key_infop, int * multi_col_pos)
SORT_LIST * pt_to_sort_list (PARSER_CONTEXT * parser, PT_NODE * node_list, PT_NODE * col_list, SORT_LIST_MODE sort_mode)
ACCESS_SPEC_TYPE * pt_to_subquery_table_spec_list (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * subquery, PT_NODE * where_part, PT_NODE * where_hash_part)
XASL_NODE * pt_to_uncorr_subquery_list (PARSER_CONTEXT * parser, PT_NODE * node)
XASL_NODE * pt_to_union_proc (PARSER_CONTEXT * parser, PT_NODE * node, PROC_TYPE type)
PT_NODE * pt_uncorr_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * pt_uncorr_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
TP_DOMAIN * pt_xasl_data_type_to_domain (PARSER_CONTEXT * parser, const PT_NODE * node)
bool pt_xasl_spec_has_dblink (XASL_NODE * xasl)
int regu_make_constant_vid (DB_VALUE * val, DB_VALUE ** dbvalptr)
int set_has_objs (DB_SET * seq)
int setof_mop_to_setof_vobj (PARSER_CONTEXT * parser, DB_SET * seq, DB_VALUE * new_val)
bool validate_regu_key_function_index (REGU_VARIABLE * regu_var)

Macros

Type Name
define ANALYTIC_OPT_MAX_FUNCTIONS 32
define ANALYTIC_OPT_MAX_SORT_LIST_COLUMNS 32
define APPEND_TO_XASL (xasl_head, list, xasl_tail) /* multi line expression */
define CHECK_HASH_ATTR (hashable_arg, hash_attr) /* multi line expression */
define SORT_SPEC_EQ (a, b) /* multi line expression */
define VALIDATE_REGU_KEY (r) /* multi line expression */
define VALIDATE_REGU_KEY_HELPER (r) ((r)-&gt;type == TYPE\_CONSTANT \|\| (r)-&gt;type == TYPE\_DBVAL \|\| (r)-&gt;type == TYPE\_POS\_VALUE \|\| (r)-&gt;type == TYPE\_INARITH)

Public Types Documentation

typedef ANALYTIC_KEY_METADOMAIN

typedef struct analytic_key_metadomain ANALYTIC_KEY_METADOMAIN;

typedef CORR_INFO

typedef struct corr_info CORR_INFO;

typedef HASHABLE

typedef struct hashable HASHABLE;

enum HASH_ATTR

enum HASH_ATTR {
    UNHASHABLE = 1,
    PROBE,
    BUILD,
    CONSTANT
};

typedef PRED_REGU_VARIABLE_P_LIST

typedef struct pred_regu_variable_p_list_node* PRED_REGU_VARIABLE_P_LIST;

typedef PRED_REGU_VARIABLE_P_LIST_NODE

typedef struct pred_regu_variable_p_list_node PRED_REGU_VARIABLE_P_LIST_NODE;

typedef SET_NUMBERING_NODE_ETC_INFO

typedef struct set_numbering_node_etc_info SET_NUMBERING_NODE_ETC_INFO;

enum SORT_LIST_MODE

enum SORT_LIST_MODE {
    SORT_LIST_AFTER_ISCAN = 1,
    SORT_LIST_ORDERBY,
    SORT_LIST_GROUPBY,
    SORT_LIST_AFTER_GROUPBY,
    SORT_LIST_ANALYTIC_WINDOW
};

typedef UNCORR_INFO

typedef struct uncorr_info UNCORR_INFO;

typedef XASL_SUPP_INFO

typedef struct xasl_supp_info XASL_SUPP_INFO;

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 Static Attributes Documentation

variable OID_LIST_GROWTH

const int OID_LIST_GROWTH;

variable analitic_key_metadomain_Initializer

ANALYTIC_KEY_METADOMAIN analitic_key_metadomain_Initializer;

variable xasl_Supp_info

XASL_SUPP_INFO xasl_Supp_info;

Public Functions Documentation

function parser_generate_do_stmt_xasl

XASL_NODE * parser_generate_do_stmt_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function parser_generate_xasl

XASL_NODE * parser_generate_xasl (
    PARSER_CONTEXT * parser,
    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_attribute

int pt_find_attribute (
    PARSER_CONTEXT * parser,
    const  PT_NODE * name,
    const  PT_NODE * attributes
) 

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 * node,
    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
) 

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_prim_data_type

PT_NODE * pt_make_prim_data_type (
    PARSER_CONTEXT * parser,
    PT_TYPE_ENUM e
) 

function pt_make_prim_data_type_fortonum

PT_NODE * pt_make_prim_data_type_fortonum (
    PARSER_CONTEXT * parser,
    int prec,
    int scale
) 

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_prepare_corr_subquery_hash_result_cache

int pt_prepare_corr_subquery_hash_result_cache (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    XASL_NODE * xasl
) 

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 * nodes_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 * statement
) 

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 * statement
) 

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 * predicate,
    PT_NODE * spec
) 

function pt_to_regu_resolve_domain

void pt_to_regu_resolve_domain (
    int * p_precision,
    int * p_scale,
    const  PT_NODE * node
) 

function pt_to_regu_variable

REGU_VARIABLE * pt_to_regu_variable (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    UNBOX unbox
) 

function pt_to_spec_list

ACCESS_SPEC_TYPE * pt_to_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * where_key_part,
    PT_NODE * where_part,
    QO_PLAN * plan,
    QO_XASL_INDEX_INFO * index_part,
    PT_NODE * src_derived_tbl,
    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
) 

XASL_NODE * pt_to_xasl_for_dblink (
    PARSER_CONTEXT * parser,
    PT_NODE * spec
) 

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 proc_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
) 

function qo_plan_lite_print

void qo_plan_lite_print (
    QO_PLAN * plan,
    FILE * f,
    int howfar
) 

Public Static Functions Documentation

function hhhhmmss

static int hhhhmmss (
    const  DB_TIME * time,
    char * buf,
    int buflen
) 

function hhmiss

static int hhmiss (
    const  DB_TIME * time,
    char * buf,
    int buflen
) 

function hhmissms

static int hhmissms (
    const  unsigned  int mtime,
    char * buf,
    int buflen
) 

function host_var_name

static char * host_var_name (
    unsigned  int custom_print
) 

function look_for_unique_btid

static int look_for_unique_btid (
    DB_OBJECT * classop,
    const  char * name,
    BTID * btid
) 

function mmddyyyyhhmiss

static int mmddyyyyhhmiss (
    const  DB_UTIME * utime,
    char * buf,
    int buflen
) 

function mmddyyyyhhmissms

static int mmddyyyyhhmissms (
    const  DB_DATETIME * datetime,
    char * buf,
    int buflen
) 

function op_type_to_range

static RANGE op_type_to_range (
    const  PT_OP_TYPE op_type,
    const  int nterms
) 

function parser_generate_xasl_post

static PT_NODE * parser_generate_xasl_post (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function parser_generate_xasl_pre

static PT_NODE * parser_generate_xasl_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function parser_generate_xasl_proc

static XASL_NODE * parser_generate_xasl_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * query_list
) 

function pt_add_pseudocolumns_placeholders

static int pt_add_pseudocolumns_placeholders (
    PARSER_CONTEXT * parser,
    OUTPTR_LIST * outptr_list,
    bool alloc_vals
) 

function pt_add_regu_var_to_list

static void pt_add_regu_var_to_list (
    REGU_VARIABLE_LIST * destination,
    REGU_VARIABLE_LIST source
) 

function pt_adjust_analytic_sort_specs

static void pt_adjust_analytic_sort_specs (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    int idx,
    int adjust
) 

function pt_agg_orderby_to_sort_list

static SORT_LIST * pt_agg_orderby_to_sort_list (
    PARSER_CONTEXT * parser,
    PT_NODE * order_list,
    PT_NODE * agg_args_list
) 

function pt_aggregate_info_append_value_list

static void pt_aggregate_info_append_value_list (
    AGGREGATE_INFO * info,
    VAL_LIST * value_list
) 

function pt_aggregate_info_update_scan_regu_list

static void pt_aggregate_info_update_scan_regu_list (
    AGGREGATE_INFO * info,
    REGU_VARIABLE_LIST scan_regu_list
) 

function pt_aggregate_info_update_value_and_reguvar_lists

static void pt_aggregate_info_update_value_and_reguvar_lists (
    AGGREGATE_INFO * info,
    VAL_LIST * value_list,
    REGU_VARIABLE_LIST regu_position_list,
    REGU_VARIABLE_LIST regu_constant_list
) 

function pt_analytic_to_metadomain

static bool pt_analytic_to_metadomain (
    ANALYTIC_TYPE * func_p,
    PT_NODE * sort_list,
    ANALYTIC_KEY_METADOMAIN * func_meta,
    PT_NODE ** index,
    int * index_size
) 

function pt_append_assignment_references

static PT_NODE * pt_append_assignment_references (
    PARSER_CONTEXT * parser,
    PT_NODE * assignments,
    PT_NODE * from,
    PT_NODE * select_list
) 

function pt_append_scan

static XASL_NODE * pt_append_scan (
    const  XASL_NODE * to,
    const  XASL_NODE * from
) 

function pt_attribute_to_regu

static REGU_VARIABLE * pt_attribute_to_regu (
    PARSER_CONTEXT * parser,
    PT_NODE * attr
) 

function pt_build_analytic_eval_list

static ANALYTIC_EVAL_TYPE * pt_build_analytic_eval_list (
    PARSER_CONTEXT * parser,
    QO_PLAN * qo_plan,
    ANALYTIC_KEY_METADOMAIN * meta,
    ANALYTIC_EVAL_TYPE * eval,
    PT_NODE ** sort_list_index,
    ANALYTIC_INFO * info
) 

function pt_build_do_stmt_aptr_list

static XASL_NODE * pt_build_do_stmt_aptr_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_build_do_stmt_aptr_list_pre

static PT_NODE * pt_build_do_stmt_aptr_list_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_check_analytic_limit_optimization

static int pt_check_analytic_limit_optimization (
    XASL_NODE * xasl,
    ANALYTIC_EVAL_TYPE * eval_list
) 

function pt_check_corr_subquery_not_cachable_expr

static PT_NODE * pt_check_corr_subquery_not_cachable_expr (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

static void pt_check_dblink_trigger (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

static PT_NODE * pt_check_dblink_trigger_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_check_hashable

static PT_NODE * pt_check_hashable (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_arg,
    int * continue_walk
) 

function pt_clone_val_list

static VAL_LIST * pt_clone_val_list (
    PARSER_CONTEXT * parser,
    PT_NODE * attribute_list
) 

function pt_cnt_attrs

static int pt_cnt_attrs (
    const  REGU_VARIABLE_LIST attr_list
) 

function pt_copy_val_list

static VAL_LIST * pt_copy_val_list (
    PARSER_CONTEXT * parser,
    VAL_LIST * val_list_p
) 

function pt_corr_pre

static PT_NODE * pt_corr_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_count_analytic_covered_sort_list

static int pt_count_analytic_covered_sort_list (
    PARSER_CONTEXT * parser,
    QO_PLAN * qo_plan,
    ANALYTIC_EVAL_TYPE * eval,
    ANALYTIC_INFO * info
) 

function pt_create_iss_range

static int pt_create_iss_range (
    INDX_INFO * indx_infop,
    TP_DOMAIN * domain
) 

function pt_create_json_table_column

static void pt_create_json_table_column (
    PARSER_CONTEXT * parser,
    PT_NODE * jt_column,
    TABLE_INFO * tbl_info,
    json_table_column & col_result
) 

function pt_expand_analytic_node

static PT_NODE * pt_expand_analytic_node (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * select_list
) 

function pt_fill_in_attrid_array

static void pt_fill_in_attrid_array (
    REGU_VARIABLE_LIST attr_list,
    ATTR_ID * attr_array,
    int * next_pos
) 

function pt_filter_pseudo_specs

static PT_NODE * pt_filter_pseudo_specs (
    PARSER_CONTEXT * parser,
    PT_NODE * spec
) 

function pt_find_hq_op_except_prior

static PT_NODE * pt_find_hq_op_except_prior (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_find_oid_scan_block

static XASL_NODE * pt_find_oid_scan_block (
    XASL_NODE * xasl,
    OID * oid
) 

function pt_find_table_info

static TABLE_INFO * pt_find_table_info (
    UINTPTR spec_id,
    TABLE_INFO * exposed_list
) 

function pt_find_xasl

static XASL_NODE * pt_find_xasl (
    XASL_NODE * list,
    XASL_NODE * match
) 

function pt_fix_buildlist_aggregate_cume_dist_percent_rank

static int pt_fix_buildlist_aggregate_cume_dist_percent_rank (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    AGGREGATE_INFO * info,
    REGU_VARIABLE * regu
) 

function pt_fix_first_term_expr_for_iss

static int pt_fix_first_term_expr_for_iss (
    PARSER_CONTEXT * parser,
    QO_INDEX_ENTRY * index_entryp,
    PT_NODE ** term_exprs
) 

function pt_fix_first_term_func_index_for_iss

static int pt_fix_first_term_func_index_for_iss (
    PARSER_CONTEXT * parser,
    QO_INDEX_ENTRY * index_entryp,
    PT_NODE ** term_exprs
) 

function pt_fix_interpolation_aggregate_function_order_by

static PT_NODE * pt_fix_interpolation_aggregate_function_order_by (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_fix_pseudocolumns_pos_regu_list

static void pt_fix_pseudocolumns_pos_regu_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node_list,
    REGU_VARIABLE_LIST regu_list
) 

function pt_flush_class_and_null_xasl

static PT_NODE * pt_flush_class_and_null_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_arg,
    int * continue_walk
) 

function pt_function_to_regu

static REGU_VARIABLE * pt_function_to_regu (
    PARSER_CONTEXT * parser,
    PT_NODE * function
) 

function pt_gen_optimized_plan

static XASL_NODE * pt_gen_optimized_plan (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    QO_PLAN * plan,
    XASL_NODE * xasl
) 

function pt_gen_simple_plan

static XASL_NODE * pt_gen_simple_plan (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    QO_PLAN * plan,
    XASL_NODE * xasl
) 

function pt_generate_simple_analytic_eval_type

static ANALYTIC_EVAL_TYPE * pt_generate_simple_analytic_eval_type (
    PARSER_CONTEXT * parser,
    ANALYTIC_INFO * info
) 

function pt_get_mvcc_reev_range_data

static int pt_get_mvcc_reev_range_data (
    PARSER_CONTEXT * parser,
    TABLE_INFO * table_info,
    PT_NODE * where_key_part,
    QO_XASL_INDEX_INFO * index_pred,
    PRED_EXPR ** where_range,
    REGU_VARIABLE_LIST * regu_attributes_range,
    HEAP_CACHE_ATTRINFO ** cache_range
) 

function pt_get_pred_attrs

static int pt_get_pred_attrs (
    PARSER_CONTEXT * parser,
    TABLE_INFO * table_info,
    PT_NODE * pred,
    PT_NODE ** pred_attrs
) 

function pt_get_pred_regu_variable_p_list

static PRED_REGU_VARIABLE_P_LIST pt_get_pred_regu_variable_p_list (
    const  PRED_EXPR * pred,
    int * err
) 

function pt_get_var_regu_variable_p_list

static PRED_REGU_VARIABLE_P_LIST pt_get_var_regu_variable_p_list (
    const  REGU_VARIABLE * regu,
    bool is_prior,
    int * err
) 

function pt_has_reev_in_subquery

static bool pt_has_reev_in_subquery (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function pt_has_reev_in_subquery_post

static PT_NODE * pt_has_reev_in_subquery_post (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * arg,
    int * continue_walk
) 

function pt_has_reev_in_subquery_pre

static PT_NODE * pt_has_reev_in_subquery_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * arg,
    int * continue_walk
) 

function pt_host_vars_count

static PT_NODE * pt_host_vars_count (
    PARSER_CONTEXT * parser,
    PT_NODE * term_list,
    void * arg,
    int * continue_walk
) 

function pt_host_vars_index

static PT_NODE * pt_host_vars_index (
    PARSER_CONTEXT * parser,
    PT_NODE * term_list,
    void * arg,
    int * continue_walk
) 

function pt_index_value

static DB_VALUE * pt_index_value (
    const  VAL_LIST * value,
    int index
) 

function pt_init_pred_expr_context

static int pt_init_pred_expr_context (
    PARSER_CONTEXT * parser,
    PT_NODE * predicate,
    PT_NODE * spec,
    PRED_EXPR_WITH_CONTEXT * pred_expr
) 

function pt_init_xasl_supp_info

static void pt_init_xasl_supp_info () 

function pt_initialize_analytic_info

static int pt_initialize_analytic_info (
    PARSER_CONTEXT * parser,
    ANALYTIC_INFO * analytic_info,
    PT_NODE * select_node,
    PT_NODE * select_list_ex,
    BUILDLIST_PROC_NODE * buildlist
) 

function pt_instnum_to_key_limit

static int pt_instnum_to_key_limit (
    PARSER_CONTEXT * parser,
    QO_PLAN * plan,
    XASL_NODE * xasl
) 

function pt_is_analytic_eval_list_valid

static bool pt_is_analytic_eval_list_valid (
    ANALYTIC_EVAL_TYPE * eval_list
) 

function pt_is_hash_agg_eligible

static PT_NODE * pt_is_hash_agg_eligible (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * arg,
    int * continue_walk
) 

function pt_is_sort_list_covered

static bool pt_is_sort_list_covered (
    PARSER_CONTEXT * parser,
    SORT_LIST * covering_list_p,
    SORT_LIST * covered_list_p
) 

function pt_is_spec_node

static PT_NODE * pt_is_spec_node (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_arg,
    int * continue_walk
) 

function pt_is_subquery

static int pt_is_subquery (
    PT_NODE * node
) 

function pt_join_term_to_regu_variable

static REGU_VARIABLE * pt_join_term_to_regu_variable (
    PARSER_CONTEXT * parser,
    PT_NODE * join_term
) 

static SELUPD_LIST * pt_link_regu_to_selupd_list (
    PARSER_CONTEXT * parser,
    REGU_VARIABLE_LIST regulist,
    SELUPD_LIST * selupd_list,
    DB_OBJECT * target_class
) 

function pt_make_access_spec

static ACCESS_SPEC_TYPE * pt_make_access_spec (
    TARGET_TYPE spec_type,
    ACCESS_METHOD access,
    INDX_INFO * indexptr,
    PRED_EXPR * where_key,
    PRED_EXPR * where_pred,
    PRED_EXPR * where_range
) 

function pt_make_aptr_parent_node

static XASL_NODE * pt_make_aptr_parent_node (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PROC_TYPE type
) 

function pt_make_class_access_spec

static ACCESS_SPEC_TYPE * pt_make_class_access_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * flat,
    DB_OBJECT * class_,
    TARGET_TYPE scan_type,
    ACCESS_METHOD access,
    INDX_INFO * indexptr,
    PRED_EXPR * where_key,
    PRED_EXPR * where_pred,
    PRED_EXPR * where_range,
    REGU_VARIABLE_LIST attr_list_key,
    REGU_VARIABLE_LIST attr_list_pred,
    REGU_VARIABLE_LIST attr_list_rest,
    REGU_VARIABLE_LIST attr_list_range,
    OUTPTR_LIST * output_val_list,
    REGU_VARIABLE_LIST regu_val_list,
    HEAP_CACHE_ATTRINFO * cache_key,
    HEAP_CACHE_ATTRINFO * cache_pred,
    HEAP_CACHE_ATTRINFO * cache_rest,
    HEAP_CACHE_ATTRINFO * cache_range,
    ACCESS_SCHEMA_TYPE schema_type,
    DB_VALUE ** cache_recordinfo,
    REGU_VARIABLE_LIST reserved_val_list
) 

function pt_make_connect_by_proc

static XASL_NODE * pt_make_connect_by_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    XASL_NODE * select_xasl
) 

function pt_make_constant_regu_list_from_val_list

static int pt_make_constant_regu_list_from_val_list (
    PARSER_CONTEXT * parser,
    VAL_LIST * value_list,
    REGU_VARIABLE_LIST * regu_list
) 

function pt_make_cselect_access_spec

static ACCESS_SPEC_TYPE * pt_make_cselect_access_spec (
    XASL_NODE * xasl,
    PL_SIGNATURE_ARRAY_TYPE * sig_array,
    ACCESS_METHOD access,
    INDX_INFO * indexptr,
    PRED_EXPR * where_pred,
    REGU_VARIABLE_LIST attr_list
) 

function pt_make_function

static REGU_VARIABLE * pt_make_function (
    PARSER_CONTEXT * parser,
    int function_code,
    const  REGU_VARIABLE_LIST arg_list,
    const  DB_TYPE result_type,
    const  PT_NODE * node
) 

function pt_make_identity_offsets

static int * pt_make_identity_offsets (
    PT_NODE * attr_list
) 

function pt_make_json_table_access_spec

static ACCESS_SPEC_TYPE * pt_make_json_table_access_spec (
    PARSER_CONTEXT * parser,
    REGU_VARIABLE * json_reguvar,
    PRED_EXPR * where_pred,
    PT_JSON_TABLE_INFO * json_table,
    TABLE_INFO * tbl_info
) 

function pt_make_json_table_spec_node

static json_table_node * pt_make_json_table_spec_node (
    PARSER_CONTEXT * parser,
    PT_JSON_TABLE_INFO * json_table,
    size_t & start_id,
    TABLE_INFO * tbl_info
) 

function pt_make_json_table_spec_node_internal

static void pt_make_json_table_spec_node_internal (
    PARSER_CONTEXT * parser,
    PT_JSON_TABLE_NODE_INFO * jt_node_info,
    size_t & current_id,
    TABLE_INFO * tbl_info,
    json_table_node & result
) 

function pt_make_list_access_spec

static ACCESS_SPEC_TYPE * pt_make_list_access_spec (
    XASL_NODE * xasl,
    ACCESS_METHOD access,
    INDX_INFO * indexptr,
    PRED_EXPR * where_pred,
    REGU_VARIABLE_LIST attr_list_pred,
    REGU_VARIABLE_LIST attr_list_rest,
    REGU_VARIABLE_LIST attr_list_build,
    REGU_VARIABLE_LIST attr_list_probe
) 

function pt_make_outlist_from_vallist

static OUTPTR_LIST * pt_make_outlist_from_vallist (
    PARSER_CONTEXT * parser,
    VAL_LIST * val_list_p
) 

function pt_make_pos_regu_list

static REGU_VARIABLE_LIST pt_make_pos_regu_list (
    PARSER_CONTEXT * parser,
    VAL_LIST * val_list_p
) 

function pt_make_pos_regu_var_from_scratch

static REGU_VARIABLE * pt_make_pos_regu_var_from_scratch (
    TP_DOMAIN * dom,
    DB_VALUE * fetch_to,
    int pos_no
) 

function pt_make_position_regu_variable

static REGU_VARIABLE * pt_make_position_regu_variable (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node,
    int i
) 

function pt_make_pred_expr_pred

static PRED_EXPR * pt_make_pred_expr_pred (
    const  PRED_EXPR * arg1,
    const  PRED_EXPR * arg2,
    const  BOOL_OP bop
) 

function pt_make_pred_term_comp

static PRED_EXPR * pt_make_pred_term_comp (
    const  REGU_VARIABLE * arg1,
    const  REGU_VARIABLE * arg2,
    const  REL_OP rop,
    const  DB_TYPE data_type
) 

function pt_make_pred_term_is

static PRED_EXPR * pt_make_pred_term_is (
    PARSER_CONTEXT * parser,
    PT_NODE * arg1,
    PT_NODE * arg2,
    const  BOOL_OP bop
) 

function pt_make_pred_term_like

static PRED_EXPR * pt_make_pred_term_like (
    const  REGU_VARIABLE * arg1,
    const  REGU_VARIABLE * arg2,
    const  REGU_VARIABLE * arg3
) 

function pt_make_pred_term_not

static PRED_EXPR * pt_make_pred_term_not (
    const  PRED_EXPR * arg1
) 

function pt_make_pred_term_rlike

static PRED_EXPR * pt_make_pred_term_rlike (
    REGU_VARIABLE * arg1,
    REGU_VARIABLE * arg2,
    REGU_VARIABLE * case_sensitive
) 

function pt_make_pred_term_some_all

static PRED_EXPR * pt_make_pred_term_some_all (
    const  REGU_VARIABLE * arg1,
    const  REGU_VARIABLE * arg2,
    const  REL_OP rop,
    const  DB_TYPE data_type,
    const  QL_FLAG some_all
) 

function pt_make_prefix_index_data_filter

static PT_NODE * pt_make_prefix_index_data_filter (
    PARSER_CONTEXT * parser,
    PT_NODE * where_key_part,
    PT_NODE * where_part,
    QO_XASL_INDEX_INFO * index_pred
) 

function pt_make_regu_constant

static REGU_VARIABLE * pt_make_regu_constant (
    PARSER_CONTEXT * parser,
    DB_VALUE * db_value,
    const  DB_TYPE db_type,
    const  PT_NODE * node
) 

function pt_make_regu_hostvar

static REGU_VARIABLE * pt_make_regu_hostvar (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

function pt_make_regu_insert

static REGU_VARIABLE * pt_make_regu_insert (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function pt_make_regu_iscycle

static REGU_VARIABLE * pt_make_regu_iscycle (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

function pt_make_regu_isleaf

static REGU_VARIABLE * pt_make_regu_isleaf (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

function pt_make_regu_level

static REGU_VARIABLE * pt_make_regu_level (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

function pt_make_regu_list_from_value_list

static PT_NODE * pt_make_regu_list_from_value_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    VAL_LIST * value_list,
    REGU_VARIABLE_LIST * regu_list
) 

function pt_make_regu_numbering

static REGU_VARIABLE * pt_make_regu_numbering (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

function pt_make_regu_pred

static REGU_VARIABLE * pt_make_regu_pred (
    const  PRED_EXPR * pred
) 

function pt_make_regu_reguvalues_list

static REGU_VARIABLE * pt_make_regu_reguvalues_list (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node,
    UNBOX unbox
) 

function pt_make_regu_subquery

static REGU_VARIABLE * pt_make_regu_subquery (
    PARSER_CONTEXT * parser,
    XASL_NODE * xasl,
    const  UNBOX unbox,
    const  PT_NODE * node
) 

function pt_make_reserved_value_list

static DB_VALUE ** pt_make_reserved_value_list (
    PARSER_CONTEXT * parser,
    PT_RESERVED_NAME_TYPE type
) 

function pt_make_result_ref

static PT_NODE * pt_make_result_ref (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * groupby_list,
    VAL_LIST * vallist
) 

function pt_make_set_access_spec

static ACCESS_SPEC_TYPE * pt_make_set_access_spec (
    REGU_VARIABLE * set_expr,
    ACCESS_METHOD access,
    INDX_INFO * indexptr,
    PRED_EXPR * where_pred,
    REGU_VARIABLE_LIST attr_list
) 

function pt_make_showstmt_access_spec

static ACCESS_SPEC_TYPE * pt_make_showstmt_access_spec (
    PRED_EXPR * where_pred,
    SHOWSTMT_TYPE show_type,
    REGU_VARIABLE_LIST arg_list
) 

function pt_make_sq_cache_key_struct

static int pt_make_sq_cache_key_struct (
    QPROC_DB_VALUE_LIST key_struct,
    void * p,
    int type
) 

function pt_make_table_info

static TABLE_INFO * pt_make_table_info (
    PARSER_CONTEXT * parser,
    PT_NODE * table_spec
) 

function pt_make_val_list

static VAL_LIST * pt_make_val_list (
    PARSER_CONTEXT * parser,
    PT_NODE * attribute_list
) 

function pt_make_vid

static REGU_VARIABLE * pt_make_vid (
    PARSER_CONTEXT * parser,
    const  PT_NODE * data_type,
    const  REGU_VARIABLE * regu3
) 

function pt_mark_spec_list_for_update_clause

static void pt_mark_spec_list_for_update_clause (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_SPEC_FLAG spec_flag
) 

function pt_merge_regu_var_lists

static void pt_merge_regu_var_lists (
    REGU_VARIABLE_LIST * destination,
    REGU_VARIABLE_LIST source
) 

function pt_metadomain_adjust_key_prefix

static void pt_metadomain_adjust_key_prefix (
    ANALYTIC_KEY_METADOMAIN * meta
) 

function pt_metadomain_build_comp_graph

static void pt_metadomain_build_comp_graph (
    ANALYTIC_KEY_METADOMAIN * af_meta,
    int af_count,
    int level
) 

function pt_metadomains_compatible

static bool pt_metadomains_compatible (
    ANALYTIC_KEY_METADOMAIN * f1,
    ANALYTIC_KEY_METADOMAIN * f2,
    ANALYTIC_KEY_METADOMAIN * out,
    int * lost_link_count,
    int level
) 

function pt_mvcc_flag_specs_assign_reev

static int pt_mvcc_flag_specs_assign_reev (
    PARSER_CONTEXT * parser,
    PT_NODE * spec_list,
    PT_NODE * assign_list
) 

function pt_mvcc_flag_specs_cond_reev

static int pt_mvcc_flag_specs_cond_reev (
    PARSER_CONTEXT * parser,
    PT_NODE * spec_list,
    PT_NODE * cond
) 

function pt_mvcc_prepare_upd_del_select

static PT_NODE * pt_mvcc_prepare_upd_del_select (
    PARSER_CONTEXT * parser,
    PT_NODE * select_stmt
) 

function pt_mvcc_set_spec_assign_reev_extra_indexes

static int pt_mvcc_set_spec_assign_reev_extra_indexes (
    PARSER_CONTEXT * parser,
    PT_NODE * spec_assign,
    PT_NODE * spec_list,
    PT_NODE * assign_list,
    int * indexes,
    int indexes_alloc_size
) 

function pt_node_list_to_value_and_reguvar_list

static PT_NODE * pt_node_list_to_value_and_reguvar_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    VAL_LIST ** value_list,
    REGU_VARIABLE_LIST * regu_position_list
) 

function pt_null_xasl

static PT_NODE * pt_null_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_arg,
    int * continue_walk
) 

function pt_numbering_set_continue_post

static PT_NODE * pt_numbering_set_continue_post (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_optimize_analytic_list

static ANALYTIC_EVAL_TYPE * pt_optimize_analytic_list (
    PARSER_CONTEXT * parser,
    QO_PLAN * qo_plan,
    ANALYTIC_INFO * info,
    bool * no_optimization
) 

function pt_optimize_min_max_list

static void pt_optimize_min_max_list (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    QO_PLAN * plan,
    AGGREGATE_TYPE * aggregate
) 

function pt_ordbynum_to_key_limit_multiple_ranges

static int pt_ordbynum_to_key_limit_multiple_ranges (
    PARSER_CONTEXT * parser,
    QO_PLAN * plan,
    XASL_NODE * xasl
) 

function pt_plan_cte

static XASL_NODE * pt_plan_cte (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PROC_TYPE proc_type
) 

function pt_plan_query

static XASL_NODE * pt_plan_query (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node
) 

function pt_plan_schema

static XASL_NODE * pt_plan_schema (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node
) 

function pt_plan_set_query

static XASL_NODE * pt_plan_set_query (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PROC_TYPE proc_type
) 

function pt_plan_single_table_hq_iterations

static XASL_NODE * pt_plan_single_table_hq_iterations (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    XASL_NODE * xasl
) 

function pt_pop_symbol_info

static void pt_pop_symbol_info (
    PARSER_CONTEXT * parser
) 

function pt_push_fetch_spec_info

static SYMBOL_INFO * pt_push_fetch_spec_info (
    PARSER_CONTEXT * parser,
    SYMBOL_INFO * symbols,
    PT_NODE * fetch_spec
) 

function pt_push_symbol_info

static SYMBOL_INFO * pt_push_symbol_info (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node
) 

function pt_query_set_reference

static PT_NODE * pt_query_set_reference (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_regu_to_dbvalue

static DB_VALUE * pt_regu_to_dbvalue (
    PARSER_CONTEXT * parser,
    REGU_VARIABLE * regu
) 

function pt_reserved_id_to_valuelist_index

static int pt_reserved_id_to_valuelist_index (
    PARSER_CONTEXT * parser,
    PT_RESERVED_NAME_ID reserved_id
) 

function pt_resolve_analytic_references

static PT_NODE * pt_resolve_analytic_references (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * select_list,
    VAL_LIST * vallist
) 

function pt_serial_to_xasl_class_oid_list

static int pt_serial_to_xasl_class_oid_list (
    PARSER_CONTEXT * parser,
    const  PT_NODE * serial,
    OID ** oid_listp,
    int ** lock_listp,
    int ** tcard_listp,
    int * nump,
    int * sizep
) 

function pt_set_access_spec_for_aggregation

static void pt_set_access_spec_for_aggregation (
    PARSER_CONTEXT * parser,
    AGGREGATE_TYPE * aggregate,
    ACCESS_SPEC_TYPE * access_spec
) 

function pt_set_analytic_node_etc

static PT_NODE * pt_set_analytic_node_etc (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_set_aptr

static void pt_set_aptr (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    XASL_NODE * xasl
) 

function pt_set_connect_by_operator_node_etc_pre

static PT_NODE * pt_set_connect_by_operator_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_connect_by_xasl

static XASL_NODE * pt_set_connect_by_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    XASL_NODE * xasl
) 

function pt_set_is_system_generated_stmt

static PT_NODE * pt_set_is_system_generated_stmt (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_arg,
    int * continue_walk
) 

function pt_set_iscycle_node_etc_pre

static PT_NODE * pt_set_iscycle_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_isleaf_node_etc_pre

static PT_NODE * pt_set_isleaf_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_level_node_etc_pre

static PT_NODE * pt_set_level_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_like_recompile_candidate

static int pt_set_like_recompile_candidate (
    PARSER_CONTEXT * parser,
    QO_PLAN * qo_plan,
    XASL_NODE * xasl
) 

function pt_set_limit_optimization_flags

static int pt_set_limit_optimization_flags (
    PARSER_CONTEXT * parser,
    QO_PLAN * plan,
    XASL_NODE * xasl
) 

function pt_set_numbering_node_etc_pre

static PT_NODE * pt_set_numbering_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_qprior_node_etc_pre

static PT_NODE * pt_set_qprior_node_etc_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_set_regu_list_pos_descr_from_idx

static void pt_set_regu_list_pos_descr_from_idx (
    REGU_VARIABLE_LIST & regu_list,
    size_t starting_index
) 

function pt_sort_list_from_metadomain

static SORT_LIST * pt_sort_list_from_metadomain (
    PARSER_CONTEXT * parser,
    ANALYTIC_KEY_METADOMAIN * meta,
    PT_NODE ** sort_list_index,
    PT_NODE * select_list
) 

function pt_spec_to_xasl_class_oid_list

static int pt_spec_to_xasl_class_oid_list (
    PARSER_CONTEXT * parser,
    const  PT_NODE * spec,
    OID ** oid_listp,
    int ** lock_listp,
    int ** tcard_listp,
    int * nump,
    int * sizep,
    int includes_tde_class
) 

function pt_spec_to_xasl_class_oid_list

static int pt_spec_to_xasl_class_oid_list (
    PARSER_CONTEXT * parser,
    const  PT_NODE * spec,
    OID ** oid_listp,
    int ** lock_listp,
    int ** tcard_listp,
    int * nump,
    int * sizep,
    int * includes_tde_class
) 

function pt_split_access_if_instnum

static void pt_split_access_if_instnum (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * where,
    PT_NODE ** access_part,
    PT_NODE ** if_part,
    PT_NODE ** instnum_part
) 

function pt_split_attrs

static int pt_split_attrs (
    PARSER_CONTEXT * parser,
    TABLE_INFO * table_info,
    PT_NODE * pred,
    PT_NODE ** pred_attrs,
    PT_NODE ** rest_attrs,
    PT_NODE ** reserved_attrs,
    int ** pred_offsets,
    int ** rest_offsets,
    int ** reserved_offsets
) 

function pt_split_hash_attrs

static int pt_split_hash_attrs (
    PARSER_CONTEXT * parser,
    TABLE_INFO * table_info,
    PT_NODE * pred,
    PT_NODE ** build_attrs,
    PT_NODE ** probe_attrs
) 

function pt_split_hash_attrs_for_HQ

static int pt_split_hash_attrs_for_HQ (
    PARSER_CONTEXT * parser,
    PT_NODE * pred,
    PT_NODE ** build_attrs,
    PT_NODE ** probe_attrs,
    PT_NODE ** pred_without_HQ
) 

function pt_split_having_grbynum

static void pt_split_having_grbynum (
    PARSER_CONTEXT * parser,
    PT_NODE * having,
    PT_NODE ** having_part,
    PT_NODE ** grbynum_part
) 

function pt_split_if_instnum

static void pt_split_if_instnum (
    PARSER_CONTEXT * parser,
    PT_NODE * where,
    PT_NODE ** if_part,
    PT_NODE ** instnum_part
) 

function pt_split_pred_for_HQ

static int pt_split_pred_for_HQ (
    PARSER_CONTEXT * parser,
    PT_NODE * pred,
    PT_NODE ** pred_without_HQ,
    PT_NODE ** pred_with_HQ
) 

function pt_split_pred_regu_list

static int pt_split_pred_regu_list (
    PARSER_CONTEXT * parser,
    const  VAL_LIST * val_list,
    const  PRED_EXPR * pred,
    REGU_VARIABLE_LIST * regu_list_rest,
    REGU_VARIABLE_LIST * regu_list_pred,
    REGU_VARIABLE_LIST * prior_regu_list_rest,
    REGU_VARIABLE_LIST * prior_regu_list_pred,
    bool split_prior
) 

function pt_stored_procedure_to_regu

static REGU_VARIABLE * pt_stored_procedure_to_regu (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_substitute_analytic_references

static PT_NODE * pt_substitute_analytic_references (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE ** ex_list
) 

function pt_substitute_assigned_name_node

static PT_NODE * pt_substitute_assigned_name_node (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_symbol_info_alloc

static SYMBOL_INFO * pt_symbol_info_alloc (
    void
) 

function pt_table_compatible

static int pt_table_compatible (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * spec
) 

function pt_table_compatible_node

static PT_NODE * pt_table_compatible_node (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * void_info,
    int * continue_walk
) 

function pt_table_info_alloc

static TABLE_INFO * pt_table_info_alloc (
    void
) 

function pt_to_after_groupby

static SORT_LIST * pt_to_after_groupby (
    PARSER_CONTEXT * parser,
    PT_NODE * group_list,
    PT_NODE * root
) 

function pt_to_after_iscan

static SORT_LIST * pt_to_after_iscan (
    PARSER_CONTEXT * parser,
    PT_NODE * iscan_list,
    PT_NODE * root
) 

function pt_to_aggregate

static AGGREGATE_TYPE * pt_to_aggregate (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    OUTPTR_LIST * out_list,
    VAL_LIST * value_list,
    REGU_VARIABLE_LIST regu_list,
    REGU_VARIABLE_LIST scan_regu_list,
    PT_NODE * out_names,
    DB_VALUE ** grbynum_valp,
    QO_PLAN * qo_plan
) 

function pt_to_aggregate_node

static PT_NODE * pt_to_aggregate_node (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * arg,
    int * continue_walk
) 

function pt_to_analytic_final_node

static PT_NODE * pt_to_analytic_final_node (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    PT_NODE ** ex_list,
    int * instnum_flag
) 

function pt_to_analytic_node

static PT_NODE * pt_to_analytic_node (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    ANALYTIC_INFO * analytic_info
) 

function pt_to_buildlist_proc

static XASL_NODE * pt_to_buildlist_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    QO_PLAN * qo_plan
) 

function pt_to_buildschema_proc

static XASL_NODE * pt_to_buildschema_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node
) 

function pt_to_buildvalue_proc

static XASL_NODE * pt_to_buildvalue_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * select_node,
    QO_PLAN * qo_plan
) 

function pt_to_class_spec_list

static ACCESS_SPEC_TYPE * pt_to_class_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * where_key_part,
    PT_NODE * where_part,
    QO_PLAN * plan,
    QO_XASL_INDEX_INFO * index_pred
) 

function pt_to_constraint_pred

static int pt_to_constraint_pred (
    PARSER_CONTEXT * parser,
    XASL_NODE * xasl,
    PT_NODE * spec,
    PT_NODE * non_null_attrs,
    PT_NODE * attr_list,
    int attr_offset
) 

function pt_to_corr_subquery_list

static XASL_NODE * pt_to_corr_subquery_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    UINTPTR id
) 

function pt_to_cselect_table_spec_list

static ACCESS_SPEC_TYPE * pt_to_cselect_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * cselect,
    PT_NODE * src_derived_tbl
) 

function pt_to_cte_table_spec_list

static ACCESS_SPEC_TYPE * pt_to_cte_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * cte_def,
    PT_NODE * where_part
) 

function pt_to_cume_dist_percent_rank_regu_variable

static REGU_VARIABLE * pt_to_cume_dist_percent_rank_regu_variable (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    UNBOX unbox
) 

static ACCESS_SPEC_TYPE * pt_to_dblink_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * dblink_table,
    PT_NODE * src_derived_tbl,
    PT_NODE * where_p
) 

function pt_to_fetch_as_scan_proc

static XASL_NODE * pt_to_fetch_as_scan_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * join_term,
    XASL_NODE * xasl_to_scan
) 

function pt_to_fetch_proc_list

static void pt_to_fetch_proc_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    XASL_NODE * root
) 

function pt_to_fetch_proc_list_recurse

static void pt_to_fetch_proc_list_recurse (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    XASL_NODE * root
) 

function pt_to_groupby

static SORT_LIST * pt_to_groupby (
    PARSER_CONTEXT * parser,
    PT_NODE * group_list,
    PT_NODE * root
) 

function pt_to_index_attrs

static int pt_to_index_attrs (
    PARSER_CONTEXT * parser,
    TABLE_INFO * table_info,
    QO_XASL_INDEX_INFO * index_pred,
    PT_NODE * pred,
    PT_NODE ** pred_attrs,
    int ** pred_offsets
) 

function pt_to_index_info

static INDX_INFO * pt_to_index_info (
    PARSER_CONTEXT * parser,
    DB_OBJECT * class_,
    PRED_EXPR * where_pred,
    QO_PLAN * plan,
    QO_XASL_INDEX_INFO * qo_index_infop
) 

function pt_to_json_table_spec_list

static ACCESS_SPEC_TYPE * pt_to_json_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * json_table,
    PT_NODE * src_derived_tbl,
    PT_NODE * where_p
) 

function pt_to_key_limit

static int pt_to_key_limit (
    PARSER_CONTEXT * parser,
    PT_NODE * key_limit,
    QO_LIMIT_INFO * limit_infop,
    KEY_INFO * key_infop,
    bool key_limit_reset
) 

function pt_to_list_key

static int pt_to_list_key (
    PARSER_CONTEXT * parser,
    PT_NODE ** term_exprs,
    int nterms,
    bool multi_col,
    KEY_INFO * key_infop
) 

function pt_to_merge_insert_xasl

static XASL_NODE * pt_to_merge_insert_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE * non_null_attrs,
    PT_NODE * default_expr_attrs
) 

function pt_to_merge_update_xasl

static XASL_NODE * pt_to_merge_update_xasl (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    PT_NODE ** non_null_attrs
) 

function pt_to_misc_operand

static void pt_to_misc_operand (
    REGU_VARIABLE * regu,
    PT_MISC_TYPE misc_specifier
) 

function pt_to_odku_info

static ODKU_INFO * pt_to_odku_info (
    PARSER_CONTEXT * parser,
    PT_NODE * insert,
    XASL_NODE * xasl
) 

function pt_to_order_siblings_by

static SORT_LIST * pt_to_order_siblings_by (
    PARSER_CONTEXT * parser,
    XASL_NODE * xasl,
    XASL_NODE * connect_by_xasl
) 

function pt_to_outlist

static OUTPTR_LIST * pt_to_outlist (
    PARSER_CONTEXT * parser,
    PT_NODE * node_list,
    SELUPD_LIST ** selupd_list_ptr,
    UNBOX unbox
) 

function pt_to_pred_expr_local_with_arg

static PRED_EXPR * pt_to_pred_expr_local_with_arg (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    int * argp
) 

function pt_to_pred_terms

static void pt_to_pred_terms (
    PARSER_CONTEXT * parser,
    PT_NODE * terms,
    UINTPTR id,
    PRED_EXPR ** pred
) 

function pt_to_range_key

static int pt_to_range_key (
    PARSER_CONTEXT * parser,
    PT_NODE ** term_exprs,
    int nterms,
    bool multi_col,
    KEY_INFO * key_infop
) 

function pt_to_rangelist_key

static int pt_to_rangelist_key (
    PARSER_CONTEXT * parser,
    PT_NODE ** term_exprs,
    int nterms,
    bool multi_col,
    KEY_INFO * key_infop,
    int rangelist_idx,
    int * multi_col_pos
) 

function pt_to_regu_attr_descr

static REGU_VARIABLE * pt_to_regu_attr_descr (
    PARSER_CONTEXT * parser,
    DB_OBJECT * class_object,
    HEAP_CACHE_ATTRINFO * cache_attrinfo,
    PT_NODE * attr
) 

function pt_to_regu_reserved_name

static REGU_VARIABLE * pt_to_regu_reserved_name (
    PARSER_CONTEXT * parser,
    PT_NODE * attr
) 

function pt_to_regu_variable_list

static REGU_VARIABLE_LIST pt_to_regu_variable_list (
    PARSER_CONTEXT * p,
    PT_NODE * node,
    UNBOX unbox,
    VAL_LIST * value_list,
    int * attr_offsets
) 

function pt_to_scan_proc_list

static XASL_NODE * pt_to_scan_proc_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    XASL_NODE * root
) 

function pt_to_set_expr_table_spec_list

static ACCESS_SPEC_TYPE * pt_to_set_expr_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * set_expr,
    PT_NODE * where_part
) 

function pt_to_showstmt_spec_list

static ACCESS_SPEC_TYPE * pt_to_showstmt_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * where_part
) 

function pt_to_single_key

static int pt_to_single_key (
    PARSER_CONTEXT * parser,
    PT_NODE ** term_exprs,
    int nterms,
    bool multi_col,
    KEY_INFO * key_infop,
    int * multi_col_pos
) 

function pt_to_sort_list

static SORT_LIST * pt_to_sort_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node_list,
    PT_NODE * col_list,
    SORT_LIST_MODE sort_mode
) 

function pt_to_subquery_table_spec_list

static ACCESS_SPEC_TYPE * pt_to_subquery_table_spec_list (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * subquery,
    PT_NODE * where_part,
    PT_NODE * where_hash_part
) 

function pt_to_uncorr_subquery_list

static XASL_NODE * pt_to_uncorr_subquery_list (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function pt_to_union_proc

static XASL_NODE * pt_to_union_proc (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PROC_TYPE type
) 

function pt_uncorr_post

static PT_NODE * pt_uncorr_post (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_uncorr_pre

static PT_NODE * pt_uncorr_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    void * arg,
    int * continue_walk
) 

function pt_xasl_data_type_to_domain

static TP_DOMAIN * pt_xasl_data_type_to_domain (
    PARSER_CONTEXT * parser,
    const  PT_NODE * node
) 

static bool pt_xasl_spec_has_dblink (
    XASL_NODE * xasl
) 

function regu_make_constant_vid

static int regu_make_constant_vid (
    DB_VALUE * val,
    DB_VALUE ** dbvalptr
) 

function set_has_objs

static int set_has_objs (
    DB_SET * seq
) 

function setof_mop_to_setof_vobj

static int setof_mop_to_setof_vobj (
    PARSER_CONTEXT * parser,
    DB_SET * seq,
    DB_VALUE * new_val
) 

function validate_regu_key_function_index

static bool validate_regu_key_function_index (
    REGU_VARIABLE * regu_var
) 

Macro Definition Documentation

define ANALYTIC_OPT_MAX_FUNCTIONS

#define ANALYTIC_OPT_MAX_FUNCTIONS `32`

define ANALYTIC_OPT_MAX_SORT_LIST_COLUMNS

#define ANALYTIC_OPT_MAX_SORT_LIST_COLUMNS `32`

define APPEND_TO_XASL

#define APPEND_TO_XASL (
    xasl_head,
    list,
    xasl_tail
) `/* multi line expression */`

define CHECK_HASH_ATTR

#define CHECK_HASH_ATTR (
    hashable_arg,
    hash_attr
) `/* multi line expression */`

define SORT_SPEC_EQ

#define SORT_SPEC_EQ (
    a,
    b
) `/* multi line expression */`

define VALIDATE_REGU_KEY

#define VALIDATE_REGU_KEY (
    r
) `/* multi line expression */`

define VALIDATE_REGU_KEY_HELPER

#define VALIDATE_REGU_KEY_HELPER (
    r
) `((r)->type == TYPE_CONSTANT || (r)->type == TYPE_DBVAL || (r)->type == TYPE_POS_VALUE || (r)->type == TYPE_INARITH )`


The documentation for this class was generated from the following file cubrid/src/parser/xasl_generation.c