CUBRID Engine  latest
xasl_generation.c File Reference
#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 "transform.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 "dbtype.h"

Go to the source code of this file.

Classes

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

Macros

#define ANALYTIC_OPT_MAX_SORT_LIST_COLUMNS   32
 
#define ANALYTIC_OPT_MAX_FUNCTIONS   32
 
#define CHECK_HASH_ATTR(hashable_arg, hash_attr)
 
#define SORT_SPEC_EQ(a, b)
 
#define APPEND_TO_XASL(xasl_head, list, xasl_tail)
 
#define VALIDATE_REGU_KEY_HELPER(r)   ((r)->type == TYPE_CONSTANT || (r)->type == TYPE_DBVAL || (r)->type == TYPE_POS_VALUE || (r)->type == TYPE_INARITH)
 
#define VALIDATE_REGU_KEY(r)
 

Typedefs

typedef struct hashable HASHABLE
 
typedef struct analytic_key_metadomain ANALYTIC_KEY_METADOMAIN
 
typedef struct set_numbering_node_etc_info SET_NUMBERING_NODE_ETC_INFO
 
typedef struct pred_regu_variable_p_list_nodePRED_REGU_VARIABLE_P_LIST
 
typedef struct pred_regu_variable_p_list_node PRED_REGU_VARIABLE_P_LIST_NODE
 
typedef struct xasl_supp_info XASL_SUPP_INFO
 
typedef struct uncorr_info UNCORR_INFO
 
typedef struct corr_info CORR_INFO
 

Enumerations

enum  HASH_ATTR { UNHASHABLE = 1, PROBE, BUILD, CONSTANT }
 
enum  SORT_LIST_MODE {
  SORT_LIST_AFTER_ISCAN = 1, SORT_LIST_ORDERBY, SORT_LIST_GROUPBY, SORT_LIST_AFTER_GROUPBY,
  SORT_LIST_ANALYTIC_WINDOW
}
 

Functions

void qo_plan_lite_print (QO_PLAN *plan, FILE *f, int howfar)
 
static PRED_EXPRpt_make_pred_term_not (const PRED_EXPR *arg1)
 
static PRED_EXPRpt_make_pred_term_comp (const REGU_VARIABLE *arg1, const REGU_VARIABLE *arg2, const REL_OP rop, const DB_TYPE data_type)
 
static PRED_EXPRpt_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)
 
static PRED_EXPRpt_make_pred_term_like (const REGU_VARIABLE *arg1, const REGU_VARIABLE *arg2, const REGU_VARIABLE *arg3)
 
static PRED_EXPRpt_make_pred_term_rlike (REGU_VARIABLE *arg1, REGU_VARIABLE *arg2, REGU_VARIABLE *case_sensitive)
 
static PRED_EXPRpt_make_pred_term_is (PARSER_CONTEXT *parser, PT_NODE *arg1, PT_NODE *arg2, const BOOL_OP bop)
 
static PRED_EXPRpt_to_pred_expr_local_with_arg (PARSER_CONTEXT *parser, PT_NODE *node, int *argp)
 
static PT_NODEpt_table_compatible_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_info, int *continue_walk)
 
static int pt_table_compatible (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *spec)
 
static TABLE_INFOpt_table_info_alloc (void)
 
static PT_NODEpt_filter_pseudo_specs (PARSER_CONTEXT *parser, PT_NODE *spec)
 
static PT_NODEpt_is_hash_agg_eligible (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
static PT_NODEpt_to_aggregate_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
static PT_NODEpt_to_analytic_node (PARSER_CONTEXT *parser, PT_NODE *tree, ANALYTIC_INFO *analytic_info)
 
static PT_NODEpt_to_analytic_final_node (PARSER_CONTEXT *parser, PT_NODE *tree, PT_NODE **ex_list, int *instnum_flag)
 
static PT_NODEpt_expand_analytic_node (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *select_list)
 
static PT_NODEpt_set_analytic_node_etc (PARSER_CONTEXT *parser, PT_NODE *node)
 
static void pt_adjust_analytic_sort_specs (PARSER_CONTEXT *parser, PT_NODE *node, int idx, int adjust)
 
static PT_NODEpt_resolve_analytic_references (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *select_list, VAL_LIST *vallist)
 
static PT_NODEpt_substitute_analytic_references (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE **ex_list)
 
static SYMBOL_INFOpt_push_fetch_spec_info (PARSER_CONTEXT *parser, SYMBOL_INFO *symbols, PT_NODE *fetch_spec)
 
static ACCESS_SPEC_TYPEpt_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)
 
static int pt_cnt_attrs (const REGU_VARIABLE_LIST attr_list)
 
static void pt_fill_in_attrid_array (REGU_VARIABLE_LIST attr_list, ATTR_ID *attr_array, int *next_pos)
 
static SORT_LISTpt_to_sort_list (PARSER_CONTEXT *parser, PT_NODE *node_list, PT_NODE *col_list, SORT_LIST_MODE sort_mode)
 
static int * pt_to_method_arglist (PARSER_CONTEXT *parser, PT_NODE *target, PT_NODE *node_list, PT_NODE *subquery_as_attr_list)
 
static int regu_make_constant_vid (DB_VALUE *val, DB_VALUE **dbvalptr)
 
static int set_has_objs (DB_SET *seq)
 
static int setof_mop_to_setof_vobj (PARSER_CONTEXT *parser, DB_SET *seq, DB_VALUE *new_val)
 
static REGU_VARIABLEpt_make_regu_hostvar (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static REGU_VARIABLEpt_make_regu_reguvalues_list (PARSER_CONTEXT *parser, const PT_NODE *node, UNBOX unbox)
 
static REGU_VARIABLEpt_make_regu_constant (PARSER_CONTEXT *parser, DB_VALUE *db_value, const DB_TYPE db_type, const PT_NODE *node)
 
static REGU_VARIABLEpt_make_regu_pred (const PRED_EXPR *pred)
 
static REGU_VARIABLEpt_make_function (PARSER_CONTEXT *parser, int function_code, const REGU_VARIABLE_LIST arg_list, const DB_TYPE result_type, const PT_NODE *node)
 
static REGU_VARIABLEpt_function_to_regu (PARSER_CONTEXT *parser, PT_NODE *function)
 
static REGU_VARIABLEpt_make_regu_subquery (PARSER_CONTEXT *parser, XASL_NODE *xasl, const UNBOX unbox, const PT_NODE *node)
 
static REGU_VARIABLEpt_make_regu_insert (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static PT_NODEpt_set_numbering_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static REGU_VARIABLEpt_make_regu_numbering (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static void pt_to_misc_operand (REGU_VARIABLE *regu, PT_MISC_TYPE misc_specifier)
 
static REGU_VARIABLEpt_make_position_regu_variable (PARSER_CONTEXT *parser, const PT_NODE *node, int i)
 
static REGU_VARIABLEpt_to_regu_attr_descr (PARSER_CONTEXT *parser, DB_OBJECT *class_object, HEAP_CACHE_ATTRINFO *cache_attrinfo, PT_NODE *attr)
 
static REGU_VARIABLEpt_make_vid (PARSER_CONTEXT *parser, const PT_NODE *data_type, const REGU_VARIABLE *regu3)
 
static PT_NODEpt_make_prefix_index_data_filter (PARSER_CONTEXT *parser, PT_NODE *where_key_part, PT_NODE *where_part, QO_XASL_INDEX_INFO *index_pred)
 
static REGU_VARIABLEpt_make_pos_regu_var_from_scratch (TP_DOMAIN *dom, DB_VALUE *fetch_to, int pos_no)
 
static PT_NODEpt_set_level_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static REGU_VARIABLEpt_make_regu_level (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static PT_NODEpt_set_isleaf_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static REGU_VARIABLEpt_make_regu_isleaf (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static PT_NODEpt_set_iscycle_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static REGU_VARIABLEpt_make_regu_iscycle (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static PT_NODEpt_set_connect_by_operator_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_set_qprior_node_etc_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static void pt_fix_pseudocolumns_pos_regu_list (PARSER_CONTEXT *parser, PT_NODE *node_list, REGU_VARIABLE_LIST regu_list)
 
static XASL_NODEpt_find_oid_scan_block (XASL_NODE *xasl, OID *oid)
 
static PT_NODEpt_numbering_set_continue_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static int pt_fix_first_term_expr_for_iss (PARSER_CONTEXT *parser, QO_INDEX_ENTRY *index_entryp, PT_NODE **term_exprs)
 
static int pt_fix_first_term_func_index_for_iss (PARSER_CONTEXT *parser, QO_INDEX_ENTRY *index_entryp, PT_NODE **term_exprs)
 
static int pt_create_iss_range (INDX_INFO *indx_infop, TP_DOMAIN *domain)
 
static int pt_init_pred_expr_context (PARSER_CONTEXT *parser, PT_NODE *predicate, PT_NODE *spec, PRED_EXPR_WITH_CONTEXT *pred_expr)
 
static bool validate_regu_key_function_index (REGU_VARIABLE *regu_var)
 
static XASL_NODEpt_to_merge_update_xasl (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE **non_null_attrs)
 
static XASL_NODEpt_to_merge_insert_xasl (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE *non_null_attrs, PT_NODE *default_expr_attrs)
 
static PT_NODEpt_append_assignment_references (PARSER_CONTEXT *parser, PT_NODE *assignments, PT_NODE *from, PT_NODE *select_list)
 
static ODKU_INFOpt_to_odku_info (PARSER_CONTEXT *parser, PT_NODE *insert, XASL_NODE *xasl)
 
static REGU_VARIABLEpt_to_cume_dist_percent_rank_regu_variable (PARSER_CONTEXT *parser, PT_NODE *tree, UNBOX unbox)
 
static REGU_VARIABLEpt_to_regu_reserved_name (PARSER_CONTEXT *parser, PT_NODE *attr)
 
static int pt_reserved_id_to_valuelist_index (PARSER_CONTEXT *parser, PT_RESERVED_NAME_ID reserved_id)
 
static void pt_mark_spec_list_for_update_clause (PARSER_CONTEXT *parser, PT_NODE *statement, PT_SPEC_FLAG spec_flag)
 
static void pt_aggregate_info_append_value_list (AGGREGATE_INFO *info, VAL_LIST *value_list)
 
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)
 
static void pt_aggregate_info_update_scan_regu_list (AGGREGATE_INFO *info, REGU_VARIABLE_LIST scan_regu_list)
 
static PT_NODEpt_node_list_to_value_and_reguvar_list (PARSER_CONTEXT *parser, PT_NODE *node, VAL_LIST **value_list, REGU_VARIABLE_LIST *regu_position_list)
 
static PT_NODEpt_make_regu_list_from_value_list (PARSER_CONTEXT *parser, PT_NODE *node, VAL_LIST *value_list, REGU_VARIABLE_LIST *regu_list)
 
static int pt_make_constant_regu_list_from_val_list (PARSER_CONTEXT *parser, VAL_LIST *value_list, REGU_VARIABLE_LIST *regu_list)
 
static void pt_set_regu_list_pos_descr_from_idx (REGU_VARIABLE_LIST &regu_list, size_t starting_index)
 
static PT_NODEpt_fix_interpolation_aggregate_function_order_by (PARSER_CONTEXT *parser, PT_NODE *node)
 
static int pt_fix_buildlist_aggregate_cume_dist_percent_rank (PARSER_CONTEXT *parser, PT_NODE *node, AGGREGATE_INFO *info, REGU_VARIABLE *regu)
 
static RANGE op_type_to_range (const PT_OP_TYPE op_type, const int nterms)
 
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)
 
static int pt_to_range_key (PARSER_CONTEXT *parser, PT_NODE **term_exprs, int nterms, bool multi_col, KEY_INFO *key_infop)
 
static int pt_to_list_key (PARSER_CONTEXT *parser, PT_NODE **term_exprs, int nterms, bool multi_col, KEY_INFO *key_infop)
 
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)
 
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)
 
static int pt_instnum_to_key_limit (PARSER_CONTEXT *parser, QO_PLAN *plan, XASL_NODE *xasl)
 
static int pt_ordbynum_to_key_limit_multiple_ranges (PARSER_CONTEXT *parser, QO_PLAN *plan, XASL_NODE *xasl)
 
static INDX_INFOpt_to_index_info (PARSER_CONTEXT *parser, DB_OBJECT *class_, PRED_EXPR *where_pred, QO_PLAN *plan, QO_XASL_INDEX_INFO *qo_index_infop)
 
static ACCESS_SPEC_TYPEpt_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)
 
static ACCESS_SPEC_TYPEpt_to_subquery_table_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *subquery, PT_NODE *where_part, PT_NODE *where_hash_part)
 
static ACCESS_SPEC_TYPEpt_to_showstmt_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *where_part)
 
static ACCESS_SPEC_TYPEpt_to_set_expr_table_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *set_expr, PT_NODE *where_part)
 
static ACCESS_SPEC_TYPEpt_to_cselect_table_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *cselect, PT_NODE *src_derived_tbl)
 
static ACCESS_SPEC_TYPEpt_to_json_table_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *json_table, PT_NODE *src_derived_tbl, PT_NODE *where_p)
 
static ACCESS_SPEC_TYPEpt_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)
 
static json_table_nodept_make_json_table_spec_node (PARSER_CONTEXT *parser, PT_JSON_TABLE_INFO *json_table, size_t &start_id, TABLE_INFO *tbl_info)
 
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)
 
static XASL_NODEpt_find_xasl (XASL_NODE *list, XASL_NODE *match)
 
static void pt_set_aptr (PARSER_CONTEXT *parser, PT_NODE *select_node, XASL_NODE *xasl)
 
static XASL_NODEpt_append_scan (const XASL_NODE *to, const XASL_NODE *from)
 
static PT_NODEpt_uncorr_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_uncorr_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static XASL_NODEpt_to_uncorr_subquery_list (PARSER_CONTEXT *parser, PT_NODE *node)
 
static PT_NODEpt_corr_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static XASL_NODEpt_to_corr_subquery_list (PARSER_CONTEXT *parser, PT_NODE *node, UINTPTR id)
 
static SELUPD_LISTpt_link_regu_to_selupd_list (PARSER_CONTEXT *parser, REGU_VARIABLE_LIST regulist, SELUPD_LIST *selupd_list, DB_OBJECT *target_class)
 
static OUTPTR_LISTpt_to_outlist (PARSER_CONTEXT *parser, PT_NODE *node_list, SELUPD_LIST **selupd_list_ptr, UNBOX unbox)
 
static void pt_to_fetch_proc_list_recurse (PARSER_CONTEXT *parser, PT_NODE *spec, XASL_NODE *root)
 
static void pt_to_fetch_proc_list (PARSER_CONTEXT *parser, PT_NODE *spec, XASL_NODE *root)
 
static XASL_NODEpt_to_scan_proc_list (PARSER_CONTEXT *parser, PT_NODE *node, XASL_NODE *root)
 
static XASL_NODEpt_gen_optimized_plan (PARSER_CONTEXT *parser, PT_NODE *select_node, QO_PLAN *plan, XASL_NODE *xasl)
 
static XASL_NODEpt_gen_simple_plan (PARSER_CONTEXT *parser, PT_NODE *select_node, QO_PLAN *plan, XASL_NODE *xasl)
 
static XASL_NODEpt_to_buildlist_proc (PARSER_CONTEXT *parser, PT_NODE *select_node, QO_PLAN *qo_plan)
 
static XASL_NODEpt_to_buildschema_proc (PARSER_CONTEXT *parser, PT_NODE *select_node)
 
static XASL_NODEpt_to_buildvalue_proc (PARSER_CONTEXT *parser, PT_NODE *select_node, QO_PLAN *qo_plan)
 
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)
 
static bool pt_metadomains_compatible (ANALYTIC_KEY_METADOMAIN *f1, ANALYTIC_KEY_METADOMAIN *f2, ANALYTIC_KEY_METADOMAIN *out, int *lost_link_count, int level)
 
static void pt_metadomain_build_comp_graph (ANALYTIC_KEY_METADOMAIN *af_meta, int af_count, int level)
 
static SORT_LISTpt_sort_list_from_metadomain (PARSER_CONTEXT *parser, ANALYTIC_KEY_METADOMAIN *meta, PT_NODE **sort_list_index, PT_NODE *select_list)
 
static void pt_metadomain_adjust_key_prefix (ANALYTIC_KEY_METADOMAIN *meta)
 
static ANALYTIC_EVAL_TYPEpt_build_analytic_eval_list (PARSER_CONTEXT *parser, ANALYTIC_KEY_METADOMAIN *meta, ANALYTIC_EVAL_TYPE *eval, PT_NODE **sort_list_index, ANALYTIC_INFO *info)
 
static XASL_NODEpt_to_union_proc (PARSER_CONTEXT *parser, PT_NODE *node, PROC_TYPE type)
 
static XASL_NODEpt_plan_set_query (PARSER_CONTEXT *parser, PT_NODE *node, PROC_TYPE proc_type)
 
static XASL_NODEpt_plan_query (PARSER_CONTEXT *parser, PT_NODE *select_node)
 
static XASL_NODEpt_plan_schema (PARSER_CONTEXT *parser, PT_NODE *select_node)
 
static XASL_NODEparser_generate_xasl_proc (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *query_list)
 
static PT_NODEparser_generate_xasl_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
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)
 
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)
 
static PT_NODEparser_generate_xasl_post (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static XASL_NODEpt_make_aptr_parent_node (PARSER_CONTEXT *parser, PT_NODE *node, PROC_TYPE type)
 
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)
 
static XASL_NODEpt_to_fetch_as_scan_proc (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *join_term, XASL_NODE *xasl_to_scan)
 
static REGU_VARIABLE_LIST pt_to_regu_variable_list (PARSER_CONTEXT *p, PT_NODE *node, UNBOX unbox, VAL_LIST *value_list, int *attr_offsets)
 
static REGU_VARIABLEpt_attribute_to_regu (PARSER_CONTEXT *parser, PT_NODE *attr)
 
static TP_DOMAINpt_xasl_data_type_to_domain (PARSER_CONTEXT *parser, const PT_NODE *node)
 
static DB_VALUEpt_index_value (const VAL_LIST *value, int index)
 
static REGU_VARIABLEpt_join_term_to_regu_variable (PARSER_CONTEXT *parser, PT_NODE *join_term)
 
static PT_NODEpt_query_set_reference (PARSER_CONTEXT *parser, PT_NODE *node)
 
static REGU_VARIABLE_LIST pt_to_position_regu_variable_list (PARSER_CONTEXT *parser, PT_NODE *node_list, VAL_LIST *value_list, int *attr_offsets)
 
static DB_VALUEpt_regu_to_dbvalue (PARSER_CONTEXT *parser, REGU_VARIABLE *regu)
 
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)
 
static void pt_split_if_instnum (PARSER_CONTEXT *parser, PT_NODE *where, PT_NODE **if_part, PT_NODE **instnum_part)
 
static void pt_split_having_grbynum (PARSER_CONTEXT *parser, PT_NODE *having, PT_NODE **having_part, PT_NODE **grbynum_part)
 
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)
 
static int pt_split_hash_attrs (PARSER_CONTEXT *parser, TABLE_INFO *table_info, PT_NODE *pred, PT_NODE **build_attrs, PT_NODE **probe_attrs)
 
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)
 
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)
 
static int pt_get_pred_attrs (PARSER_CONTEXT *parser, TABLE_INFO *table_info, PT_NODE *pred, PT_NODE **pred_attrs)
 
static PT_NODEpt_flush_class_and_null_xasl (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_arg, int *continue_walk)
 
static PT_NODEpt_null_xasl (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_arg, int *continue_walk)
 
static PT_NODEpt_is_spec_node (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_arg, int *continue_walk)
 
static PT_NODEpt_check_hashable (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_arg, int *continue_walk)
 
static PT_NODEpt_find_hq_op_except_prior (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static VAL_LISTpt_clone_val_list (PARSER_CONTEXT *parser, PT_NODE *attribute_list)
 
static AGGREGATE_TYPEpt_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)
 
static SYMBOL_INFOpt_push_symbol_info (PARSER_CONTEXT *parser, PT_NODE *select_node)
 
static void pt_pop_symbol_info (PARSER_CONTEXT *parser)
 
static ACCESS_SPEC_TYPEpt_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)
 
static ACCESS_SPEC_TYPEpt_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)
 
static ACCESS_SPEC_TYPEpt_make_showstmt_access_spec (PRED_EXPR *where_pred, SHOWSTMT_TYPE show_type, REGU_VARIABLE_LIST arg_list)
 
static ACCESS_SPEC_TYPEpt_make_set_access_spec (REGU_VARIABLE *set_expr, ACCESS_METHOD access, INDX_INFO *indexptr, PRED_EXPR *where_pred, REGU_VARIABLE_LIST attr_list)
 
static ACCESS_SPEC_TYPEpt_make_cselect_access_spec (XASL_NODE *xasl, METHOD_SIG_LIST *method_sig_list, ACCESS_METHOD access, INDX_INFO *indexptr, PRED_EXPR *where_pred, REGU_VARIABLE_LIST attr_list)
 
static SORT_LISTpt_to_after_iscan (PARSER_CONTEXT *parser, PT_NODE *iscan_list, PT_NODE *root)
 
static SORT_LISTpt_to_groupby (PARSER_CONTEXT *parser, PT_NODE *group_list, PT_NODE *root)
 
static SORT_LISTpt_to_after_groupby (PARSER_CONTEXT *parser, PT_NODE *group_list, PT_NODE *root)
 
static TABLE_INFOpt_find_table_info (UINTPTR spec_id, TABLE_INFO *exposed_list)
 
static PT_NODEpt_build_do_stmt_aptr_list_pre (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static XASL_NODEpt_build_do_stmt_aptr_list (PARSER_CONTEXT *parser, PT_NODE *node)
 
static METHOD_SIG_LISTpt_to_method_sig_list (PARSER_CONTEXT *parser, PT_NODE *node_list, PT_NODE *subquery_as_attr_list)
 
static int pt_is_subquery (PT_NODE *node)
 
static int * pt_make_identity_offsets (PT_NODE *attr_list)
 
static void pt_to_pred_terms (PARSER_CONTEXT *parser, PT_NODE *terms, UINTPTR id, PRED_EXPR **pred)
 
static VAL_LISTpt_make_val_list (PARSER_CONTEXT *parser, PT_NODE *attribute_list)
 
static TABLE_INFOpt_make_table_info (PARSER_CONTEXT *parser, PT_NODE *table_spec)
 
static SYMBOL_INFOpt_symbol_info_alloc (void)
 
static PRED_EXPRpt_make_pred_expr_pred (const PRED_EXPR *arg1, const PRED_EXPR *arg2, const BOOL_OP bop)
 
static XASL_NODEpt_set_connect_by_xasl (PARSER_CONTEXT *parser, PT_NODE *select_node, XASL_NODE *xasl)
 
static XASL_NODEpt_make_connect_by_proc (PARSER_CONTEXT *parser, PT_NODE *select_node, XASL_NODE *select_xasl)
 
static int pt_add_pseudocolumns_placeholders (PARSER_CONTEXT *parser, OUTPTR_LIST *outptr_list, bool alloc_vals)
 
static OUTPTR_LISTpt_make_outlist_from_vallist (PARSER_CONTEXT *parser, VAL_LIST *val_list_p)
 
static REGU_VARIABLE_LIST pt_make_pos_regu_list (PARSER_CONTEXT *parser, VAL_LIST *val_list_p)
 
static VAL_LISTpt_copy_val_list (PARSER_CONTEXT *parser, VAL_LIST *val_list_p)
 
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)
 
static void pt_add_regu_var_to_list (REGU_VARIABLE_LIST *destination, REGU_VARIABLE_LIST source)
 
static void pt_merge_regu_var_lists (REGU_VARIABLE_LIST *destination, REGU_VARIABLE_LIST source)
 
static PRED_REGU_VARIABLE_P_LIST pt_get_pred_regu_variable_p_list (const PRED_EXPR *pred, int *err)
 
static PRED_REGU_VARIABLE_P_LIST pt_get_var_regu_variable_p_list (const REGU_VARIABLE *regu, bool is_prior, int *err)
 
static XASL_NODEpt_plan_single_table_hq_iterations (PARSER_CONTEXT *parser, PT_NODE *select_node, XASL_NODE *xasl)
 
static SORT_LISTpt_to_order_siblings_by (PARSER_CONTEXT *parser, XASL_NODE *xasl, XASL_NODE *connect_by_xasl)
 
static SORT_LISTpt_agg_orderby_to_sort_list (PARSER_CONTEXT *parser, PT_NODE *order_list, PT_NODE *agg_args_list)
 
static PT_NODEpt_substitute_assigned_name_node (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static bool pt_is_sort_list_covered (PARSER_CONTEXT *parser, SORT_LIST *covering_list_p, SORT_LIST *covered_list_p)
 
static int pt_set_limit_optimization_flags (PARSER_CONTEXT *parser, QO_PLAN *plan, XASL_NODE *xasl)
 
static DB_VALUE ** pt_make_reserved_value_list (PARSER_CONTEXT *parser, PT_RESERVED_NAME_TYPE type)
 
static int pt_mvcc_flag_specs_cond_reev (PARSER_CONTEXT *parser, PT_NODE *spec_list, PT_NODE *cond)
 
static int pt_mvcc_flag_specs_assign_reev (PARSER_CONTEXT *parser, PT_NODE *spec_list, PT_NODE *assign_list)
 
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)
 
static PT_NODEpt_mvcc_prepare_upd_del_select (PARSER_CONTEXT *parser, PT_NODE *select_stmt)
 
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)
 
static PT_NODEpt_has_reev_in_subquery_pre (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
static PT_NODEpt_has_reev_in_subquery_post (PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
 
static bool pt_has_reev_in_subquery (PARSER_CONTEXT *parser, PT_NODE *statement)
 
static void pt_init_xasl_supp_info ()
 
PRED_EXPRpt_to_pred_expr_with_arg (PARSER_CONTEXT *parser, PT_NODE *node_list, int *argp)
 
PRED_EXPRpt_to_pred_expr (PARSER_CONTEXT *parser, PT_NODE *node)
 
TP_DOMAINpt_xasl_type_enum_to_domain (const PT_TYPE_ENUM type)
 
TP_DOMAINpt_xasl_node_to_domain (PARSER_CONTEXT *parser, const PT_NODE *node)
 
PT_NODEpt_flush_classes (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
static PT_NODEpt_set_is_system_generated_stmt (PARSER_CONTEXT *parser, PT_NODE *tree, void *void_arg, int *continue_walk)
 
int pt_is_single_tuple (PARSER_CONTEXT *parser, PT_NODE *select_node)
 
int pt_find_attribute (PARSER_CONTEXT *parser, const PT_NODE *name, const PT_NODE *attributes)
 
static void pt_create_json_table_column (PARSER_CONTEXT *parser, PT_NODE *jt_column, TABLE_INFO *tbl_info, json_table_column &col_result)
 
void pt_to_pos_descr (PARSER_CONTEXT *parser, QFILE_TUPLE_VALUE_POSITION *pos_p, PT_NODE *node, PT_NODE *root, PT_NODE **referred_node)
 
SORT_LISTpt_to_orderby (PARSER_CONTEXT *parser, PT_NODE *order_list, PT_NODE *root)
 
REGU_VARIABLEpt_make_regu_arith (const REGU_VARIABLE *arg1, const REGU_VARIABLE *arg2, const REGU_VARIABLE *arg3, const OPERATOR_TYPE op, const TP_DOMAIN *domain)
 
PT_NODEpt_get_numbering_node_etc (PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
 
void pt_set_numbering_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, DB_VALUE **instnum_valp, DB_VALUE **ordbynum_valp)
 
PT_NODEpt_make_prim_data_type_fortonum (PARSER_CONTEXT *parser, int prec, int scale)
 
PT_NODEpt_make_prim_data_type (PARSER_CONTEXT *parser, PT_TYPE_ENUM e)
 
void pt_to_regu_resolve_domain (int *p_precision, int *p_scale, const PT_NODE *node)
 
REGU_VARIABLEpt_to_regu_variable (PARSER_CONTEXT *parser, PT_NODE *node, UNBOX unbox)
 
static ACCESS_SPEC_TYPEpt_to_cte_table_spec_list (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *cte_def, PT_NODE *where_part)
 
ACCESS_SPEC_TYPEpt_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)
 
VAL_LISTpt_to_val_list (PARSER_CONTEXT *parser, UINTPTR id)
 
XASL_NODEpt_append_xasl (XASL_NODE *to, XASL_NODE *from_list)
 
XASL_NODEpt_remove_xasl (XASL_NODE *xasl_list, XASL_NODE *remove)
 
void pt_set_dptr (PARSER_CONTEXT *parser, PT_NODE *node, XASL_NODE *xasl, UINTPTR id)
 
XASL_NODEpt_to_fetch_proc (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *pred)
 
XASL_NODEptqo_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)
 
XASL_NODEpt_skeleton_buildlist_proc (PARSER_CONTEXT *parser, PT_NODE *namelist)
 
XASL_NODEptqo_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_NODEptqo_to_merge_list_proc (PARSER_CONTEXT *parser, XASL_NODE *left, XASL_NODE *right, JOIN_TYPE join_type)
 
SORT_LISTptqo_single_orderby (PARSER_CONTEXT *parser)
 
XASL_NODEpt_gen_simple_merge_plan (PARSER_CONTEXT *parser, PT_NODE *select_node, QO_PLAN *plan, XASL_NODE *xasl)
 
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)
 
static bool pt_is_analytic_eval_list_valid (ANALYTIC_EVAL_TYPE *eval_list)
 
static ANALYTIC_EVAL_TYPEpt_generate_simple_analytic_eval_type (PARSER_CONTEXT *parser, ANALYTIC_INFO *info)
 
static ANALYTIC_EVAL_TYPEpt_optimize_analytic_list (PARSER_CONTEXT *parser, ANALYTIC_INFO *info, bool *no_optimization)
 
static XASL_NODEpt_plan_cte (PARSER_CONTEXT *parser, PT_NODE *node, PROC_TYPE proc_type)
 
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)
 
XASL_NODEpt_to_insert_xasl (PARSER_CONTEXT *parser, PT_NODE *statement)
 
PRED_EXPR_WITH_CONTEXTpt_to_pred_with_context (PARSER_CONTEXT *parser, PT_NODE *predicate, PT_NODE *spec)
 
int pt_copy_upddel_hints_to_select (PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE *select_stmt)
 
PT_NODEpt_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_NODEpt_to_delete_xasl (PARSER_CONTEXT *parser, PT_NODE *statement)
 
XASL_NODEpt_to_update_xasl (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE **non_null_attrs)
 
int pt_find_omitted_default_expr (PARSER_CONTEXT *parser, DB_OBJECT *class_obj, PT_NODE *specified_attrs, PT_NODE **default_expr_attrs)
 
int pt_append_omitted_on_update_expr_assignments (PARSER_CONTEXT *parser, PT_NODE *assigns, PT_NODE *from)
 
XASL_NODEparser_generate_xasl (PARSER_CONTEXT *parser, PT_NODE *node)
 
void pt_set_level_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, DB_VALUE **level_valp)
 
void pt_set_isleaf_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, DB_VALUE **isleaf_valp)
 
void pt_set_iscycle_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, DB_VALUE **iscycle_valp)
 
void pt_set_connect_by_operator_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, XASL_NODE *xasl)
 
void pt_set_qprior_node_etc (PARSER_CONTEXT *parser, PT_NODE *node_list, XASL_NODE *xasl)
 
XASL_NODEparser_generate_do_stmt_xasl (PARSER_CONTEXT *parser, PT_NODE *node)
 
void pt_to_pos_descr_groupby (PARSER_CONTEXT *parser, QFILE_TUPLE_VALUE_POSITION *pos_p, PT_NODE *node, PT_NODE *root)
 
FUNC_PREDpt_to_func_pred (PARSER_CONTEXT *parser, PT_NODE *spec, PT_NODE *expr)
 
PT_NODEpt_to_merge_update_query (PARSER_CONTEXT *parser, PT_NODE *select_list, PT_MERGE_INFO *info)
 
PT_NODEpt_to_merge_insert_query (PARSER_CONTEXT *parser, PT_NODE *select_list, PT_MERGE_INFO *info)
 
XASL_NODEpt_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)
 
PT_NODEpt_set_orderby_for_sort_limit_plan (PARSER_CONTEXT *parser, PT_NODE *statement, PT_NODE *nodes_list)
 
SORT_NULLS pt_to_null_ordering (PT_NODE *sort_spec)
 
XASL_NODEpt_to_instnum_pred (PARSER_CONTEXT *parser, XASL_NODE *xasl, PT_NODE *pred)
 

Variables

static ANALYTIC_KEY_METADOMAIN analitic_key_metadomain_Initializer = { {0}, 0, 0, {NULL}, 0, {NULL}, false, 0, NULL }
 
FILE * query_Plan_dump_fp = NULL
 
char * query_Plan_dump_filename = NULL
 
static XASL_SUPP_INFO xasl_Supp_info = { NULL, NULL, NULL, NULL, 0, 0, 0 }
 
static const int OID_LIST_GROWTH = 10
 

Macro Definition Documentation

#define ANALYTIC_OPT_MAX_FUNCTIONS   32

Definition at line 80 of file xasl_generation.c.

Referenced by pt_optimize_analytic_list().

#define ANALYTIC_OPT_MAX_SORT_LIST_COLUMNS   32
#define APPEND_TO_XASL (   xasl_head,
  list,
  xasl_tail 
)
Value:
do \
{ \
if (xasl_head) \
{ \
/* append xasl_tail to end of linked list denoted by list */ \
XASL_NODE **NAME2(list, ptr) = &xasl_head->list; \
while ((*NAME2(list, ptr))) \
{ \
NAME2(list, ptr) = &(*NAME2(list, ptr))->list; \
} \
(*NAME2(list, ptr)) = xasl_tail; \
} \
{ \
xasl_head = xasl_tail; \
} \
} \
while (0)
struct xasl_node XASL_NODE
Definition: xasl.h:55
if(extra_options)
Definition: dynamic_load.c:958
else
while(1)
Definition: cnvlex.c:816

Definition at line 311 of file xasl_generation.c.

Referenced by pt_to_fetch_proc_list_recurse().

#define CHECK_HASH_ATTR (   hashable_arg,
  hash_attr 
)
Value:
do \
{ \
if (hashable_arg.is_PRIOR && hashable_arg.is_NAME_without_prior) \
{ \
hash_attr = UNHASHABLE; \
} \
else if (hashable_arg.is_PRIOR && !hashable_arg.is_NAME_without_prior) \
{ \
hash_attr = PROBE; \
} \
else if (!hashable_arg.is_PRIOR && hashable_arg.is_NAME_without_prior) \
{ \
hash_attr = BUILD; \
} \
{ \
hash_attr = CONSTANT; \
} \
} \
while (0)
if(extra_options)
Definition: dynamic_load.c:958
else
while(1)
Definition: cnvlex.c:816

Definition at line 97 of file xasl_generation.c.

Referenced by pt_split_hash_attrs_for_HQ().

#define SORT_SPEC_EQ (   a,
 
)
Value:
((a)->info.sort_spec.pos_descr.pos_no == (b)->info.sort_spec.pos_descr.pos_no \
&& (a)->info.sort_spec.asc_or_desc == (b)->info.sort_spec.asc_or_desc \
&& (a)->info.sort_spec.nulls_first_or_last == (b)->info.sort_spec.nulls_first_or_last)

Definition at line 174 of file xasl_generation.c.

Referenced by pt_analytic_to_metadomain().

#define VALIDATE_REGU_KEY (   r)
Value:
((r)->type == TYPE_CONSTANT || (r)->type == TYPE_DBVAL || (r)->type == TYPE_POS_VALUE \
|| ((r)->type == TYPE_INARITH && validate_regu_key_function_index ((r))))
static bool validate_regu_key_function_index(REGU_VARIABLE *regu_var)

Definition at line 334 of file xasl_generation.c.

Referenced by pt_to_list_key(), pt_to_range_key(), pt_to_rangelist_key(), and pt_to_single_key().

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

Definition at line 331 of file xasl_generation.c.

Referenced by validate_regu_key_function_index().

Typedef Documentation

Definition at line 119 of file xasl_generation.c.

typedef struct corr_info CORR_INFO
typedef struct hashable HASHABLE

Definition at line 82 of file xasl_generation.c.

typedef struct uncorr_info UNCORR_INFO

Enumeration Type Documentation

enum HASH_ATTR
Enumerator
UNHASHABLE 
PROBE 
BUILD 
CONSTANT 

Definition at line 89 of file xasl_generation.c.

Enumerator
SORT_LIST_AFTER_ISCAN 
SORT_LIST_ORDERBY 
SORT_LIST_GROUPBY 
SORT_LIST_AFTER_GROUPBY 
SORT_LIST_ANALYTIC_WINDOW 

Definition at line 151 of file xasl_generation.c.

Function Documentation

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

Definition at line 17304 of file xasl_generation.c.

References parser_context::abort, ACCESS_SPEC_CLS_OID, assert, pt_query_info::correlation_level, pt_statement_info::cte, CTE_PROC, pt_name_info::db_object, pt_spec_info::derived_table_type, DIFFERENCE_PROC, pt_spec_info::flag, parser_context::flag, pt_spec_info::flat_entity_list, pt_select_info::from, pt_query_info::id, parser_node::info, INTERSECTION_PROC, xasl_node::mvcc_reev_extra_cls_cnt, pt_query_info::mvcc_reev_extra_cls_cnt, pt_statement_info::name, access_spec_node::next, parser_node::next, parser_node::node_type, NULL, OID_EQ, parser_append_node(), parser_new_node(), pt_spec_info::path_entities, PT_CTE, PT_DIFFERENCE, pt_has_error, PT_INTERNAL_ERROR, PT_INTERSECTION, PT_IS_QUERY, PT_IS_SET_EXPR, PT_IS_SUBQUERY, pt_plan_cte(), pt_plan_query(), pt_plan_schema(), pt_plan_set_query(), PT_SELECT, PT_SELECT_FULL_INFO_COLS_SCHEMA, PT_SELECT_INFO_COLS_SCHEMA, PT_SELECT_INFO_IDX_SCHEMA, PT_SELECT_INFO_IS_FLAGED, PT_SPEC, PT_SPEC_FLAG_DELETE, PT_SPEC_FLAG_UPDATE, PT_UNION, pt_query_info::q, pt_statement_info::query, query_Plan_dump_filename, query_Plan_dump_fp, READONLY_SCAN, xasl_node::scan_op_type, pt_query_info::scan_op_type, xasl_node::scan_ptr, pt_query_info::select, pt_statement_info::spec, xasl_node::spec_list, TARGET_CLASS, access_spec_node::type, UNION_PROC, xasl_node::upd_del_class_cnt, pt_query_info::upd_del_class_cnt, WS_ISVID, WS_REAL_OID, pt_cte_info::xasl, pt_query_info::xasl, XASL_SET_FLAG, and XASL_ZERO_CORR_LEVEL.

Referenced by parser_generate_xasl_post().

Here is the caller graph for this function:

static int pt_add_pseudocolumns_placeholders ( PARSER_CONTEXT parser,
OUTPTR_LIST outptr_list,
bool  alloc_vals 
)
static
static void pt_add_regu_var_to_list ( REGU_VARIABLE_LIST destination,
REGU_VARIABLE_LIST  source 
)
static

Definition at line 22651 of file xasl_generation.c.

References regu_variable_list_node::next, NULL, and pt_merge_regu_var_lists().

Referenced by pt_split_pred_regu_list(), and pt_to_aggregate_node().

Here is the caller graph for this function:

static void pt_aggregate_info_append_value_list ( AGGREGATE_INFO info,
VAL_LIST value_list 
)
static

Definition at line 26261 of file xasl_generation.c.

References assert, qproc_db_value_list::next, NULL, val_list_node::val_cnt, val_list_node::valp, and aggregate_info::value_list.

Referenced by pt_aggregate_info_update_value_and_reguvar_lists().

Here is the caller graph for this function:

static void pt_aggregate_info_update_scan_regu_list ( AGGREGATE_INFO info,
REGU_VARIABLE_LIST  scan_regu_list 
)
static
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 
)
static
static XASL_NODE * pt_append_scan ( const XASL_NODE to,
const XASL_NODE from 
)
static

Definition at line 13130 of file xasl_generation.c.

References xasl_node::scan_ptr.

Referenced by pt_to_scan_proc_list().

Here is the caller graph for this function:

XASL_NODE* pt_append_xasl ( XASL_NODE to,
XASL_NODE from_list 
)

Definition at line 12921 of file xasl_generation.c.

References xasl_node::next, NULL, and pt_find_xasl().

Referenced by add_subqueries(), add_uncorrelated(), pt_corr_pre(), pt_set_aptr(), pt_set_dptr(), and pt_uncorr_post().

Here is the caller graph for this function:

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

Definition at line 22757 of file xasl_generation.c.

References NULL, parser_walk_tree(), pt_build_do_stmt_aptr_list_pre(), and pt_continue_walk().

Referenced by parser_generate_do_stmt_xasl().

Here is the caller graph for this function:

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

Definition at line 3471 of file xasl_generation.c.

References hashable::is_NAME_without_prior, hashable::is_PRIOR, PT_CONTINUE_WALK, PT_IS_EXPR_NODE_WITH_OPERATOR, pt_is_name_node, PT_LIST_WALK, and PT_PRIOR.

Referenced by pt_split_hash_attrs_for_HQ().

Here is the caller graph for this function:

static VAL_LIST * pt_clone_val_list ( PARSER_CONTEXT parser,
PT_NODE attribute_list 
)
static
static int pt_cnt_attrs ( const REGU_VARIABLE_LIST  attr_list)
static
static VAL_LIST * pt_copy_val_list ( PARSER_CONTEXT parser,
VAL_LIST val_list_p 
)
static
static PT_NODE * pt_corr_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static void pt_fill_in_attrid_array ( REGU_VARIABLE_LIST  attr_list,
ATTR_ID attr_array,
int *  next_pos 
)
static
static PT_NODE * pt_find_hq_op_except_prior ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 3498 of file xasl_generation.c.

References pt_statement_info::expr, parser_node::info, parser_node::node_type, pt_expr_info::op, PT_CHECK_HQ_OP_EXCEPT_PRIOR, PT_EXPR, and PT_STOP_WALK.

Referenced by pt_split_hash_attrs_for_HQ().

Here is the caller graph for this function:

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

Definition at line 23026 of file xasl_generation.c.

References indx_info::class_oid, access_spec_node::indexptr, NULL, oid_compare(), xasl_node::scan_ptr, and xasl_node::spec_list.

Referenced by pt_ordbynum_to_key_limit_multiple_ranges().

Here is the caller graph for this function:

static TABLE_INFO * pt_find_table_info ( UINTPTR  spec_id,
TABLE_INFO exposed_list 
)
static
static XASL_NODE * pt_find_xasl ( XASL_NODE list,
XASL_NODE match 
)
static

Definition at line 12902 of file xasl_generation.c.

References xasl_node::next.

Referenced by pt_append_xasl().

Here is the caller graph for this function:

static void pt_fix_pseudocolumns_pos_regu_list ( PARSER_CONTEXT parser,
PT_NODE node_list,
REGU_VARIABLE_LIST  regu_list 
)
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 
)
static
PT_NODE* pt_get_numbering_node_etc ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)

Definition at line 6955 of file xasl_generation.c.

References parser_node::etc, pt_statement_info::expr, parser_node::info, NULL, pt_expr_info::op, PT_IS_EXPR_NODE, PT_ORDERBY_NUM, and PT_STOP_WALK.

Referenced by make_sort_limit_proc().

Here is the caller graph for this function:

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

Definition at line 20459 of file xasl_generation.c.

References parser_walk_tree(), pt_has_reev_in_subquery_post(), and pt_has_reev_in_subquery_pre().

Referenced by pt_to_update_xasl().

Here is the caller graph for this function:

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

Definition at line 20434 of file xasl_generation.c.

References PT_IS_QUERY.

Referenced by pt_has_reev_in_subquery().

Here is the caller graph for this function:

static PT_NODE * pt_has_reev_in_subquery_pre ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)
static
static DB_VALUE * pt_index_value ( const VAL_LIST value,
int  index 
)
static
static void pt_init_xasl_supp_info ( )
static
static bool pt_is_analytic_eval_list_valid ( ANALYTIC_EVAL_TYPE eval_list)
static

Definition at line 15332 of file xasl_generation.c.

References assert, cubxasl::analytic_eval_type::head, cubxasl::analytic_eval_type::next, NULL, and p.

Referenced by pt_optimize_analytic_list().

Here is the caller graph for this function:

static PT_NODE * pt_is_hash_agg_eligible ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  arg,
int *  continue_walk 
)
static
int pt_is_single_tuple ( PARSER_CONTEXT parser,
PT_NODE select_node 
)
static bool pt_is_sort_list_covered ( PARSER_CONTEXT parser,
SORT_LIST covering_list_p,
SORT_LIST covered_list_p 
)
static
static PT_NODE * pt_is_spec_node ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  void_arg,
int *  continue_walk 
)
static

Definition at line 3448 of file xasl_generation.c.

References parser_node::info, pt_statement_info::name, pt_is_name_node, PT_STOP_WALK, and pt_name_info::spec_id.

Referenced by pt_split_hash_attrs().

Here is the caller graph for this function:

static int pt_is_subquery ( PT_NODE node)
static

Definition at line 3524 of file xasl_generation.c.

References parser_node::info, pt_query_info::is_subquery, and pt_statement_info::query.

Referenced by pt_uncorr_post().

Here is the caller graph for this function:

static REGU_VARIABLE * pt_join_term_to_regu_variable ( PARSER_CONTEXT parser,
PT_NODE join_term 
)
static
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 
)
static
static XASL_NODE * pt_make_connect_by_proc ( PARSER_CONTEXT parser,
PT_NODE select_node,
XASL_NODE select_xasl 
)
static

Definition at line 656 of file xasl_generation.c.

References ACCESS_METHOD_SEQUENTIAL, pt_select_info::after_cb_filter, connectby_proc_node::after_cb_regu_list_pred, connectby_proc_node::after_cb_regu_list_rest, connectby_proc_node::after_connect_by_pred, pt_select_info::check_cycles, xasl_node::connect_by, pt_select_info::connect_by, CONNECT_BY_CYCLES_IGNORE, CONNECT_BY_CYCLES_NONE, CONNECT_BY_CYCLES_NONE_IGNORE, CONNECTBY_PROC, qproc_db_value_list::dom, pt_select_info::flavor, pt_select_info::from, list_spec_node::hash_list_scan_yn, pt_select_info::hint, pt_spec_info::id, xasl_node::if_pred, parser_node::info, connectby_proc_node::input_list_id, xasl_node::instnum_val, xasl_node::iscycle_val, xasl_node::isleaf_val, xasl_node::level_val, hybrid_node::list_node, MSGCAT_CATALOG_CUBRID, msgcat_message(), MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, qproc_db_value_list::next, parser_node::next, NO_ERROR, NULL, OPTIMIZATION_ENABLED, xasl_node::ordbynum_val, xasl_node::outptr_list, parser_copy_tree_list(), parser_free_tree(), connectby_proc_node::prior_outptr_list, connectby_proc_node::prior_regu_list_pred, connectby_proc_node::prior_regu_list_rest, connectby_proc_node::prior_val_list, xasl_node::proc, pt_add_pseudocolumns_placeholders(), pt_copy_val_list(), PT_ERROR, pt_has_error, PT_HINT_NO_HASH_LIST_SCAN, PT_INTERNAL_ERROR, pt_make_list_access_spec(), pt_make_outlist_from_vallist(), pt_make_pos_regu_list(), pt_plan_single_table_hq_iterations(), pt_set_connect_by_operator_node_etc(), pt_set_iscycle_node_etc(), pt_set_isleaf_node_etc(), pt_set_level_node_etc(), pt_set_numbering_node_etc(), pt_set_qprior_node_etc(), pt_split_hash_attrs_for_HQ(), pt_split_if_instnum(), pt_split_pred_regu_list(), pt_to_instnum_pred(), pt_to_pred_expr(), pt_to_pred_terms(), pt_to_regu_variable_list(), PT_USER_SELECT, pt_query_info::q, qo_get_optimization_param(), QO_PARAM_LEVEL, pt_statement_info::query, regu_alloc(), connectby_proc_node::regu_list_pred, connectby_proc_node::regu_list_rest, regu_xasl_node_alloc(), access_spec_node::s, xasl_node::scan_ptr, pt_query_info::select, connectby_proc_node::single_table_opt, pt_select_info::single_table_opt, pt_statement_info::spec, xasl_node::spec_list, pt_select_info::start_with, connectby_proc_node::start_with_list_id, connectby_proc_node::start_with_pred, parser_context::symbols, UNBOX_AS_VALUE, qproc_db_value_list::val, val_list_node::val_cnt, xasl_node::val_list, val_list_node::valp, pt_select_info::where, XASL_HAS_NOCYCLE, XASL_IGNORE_CYCLES, and XASL_SET_FLAG.

Referenced by pt_set_connect_by_xasl().

Here is the caller graph for this function:

static int pt_make_constant_regu_list_from_val_list ( PARSER_CONTEXT parser,
VAL_LIST value_list,
REGU_VARIABLE_LIST regu_list 
)
static
static ACCESS_SPEC_TYPE * pt_make_cselect_access_spec ( XASL_NODE xasl,
METHOD_SIG_LIST method_sig_list,
ACCESS_METHOD  access,
INDX_INFO indexptr,
PRED_EXPR where_pred,
REGU_VARIABLE_LIST  attr_list 
)
static
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 
)
static
static int * pt_make_identity_offsets ( PT_NODE attr_list)
static

Definition at line 2702 of file xasl_generation.c.

References i, NULL, and pt_length_of_list().

Referenced by pt_make_aptr_parent_node(), pt_make_regu_list_from_value_list(), pt_to_buildlist_proc(), and ptqo_to_list_scan_proc().

Here is the caller graph for this function:

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 
)
static
static REGU_VARIABLE_LIST pt_make_pos_regu_list ( PARSER_CONTEXT parser,
VAL_LIST val_list_p 
)
static
static REGU_VARIABLE * pt_make_pos_regu_var_from_scratch ( TP_DOMAIN dom,
DB_VALUE fetch_to,
int  pos_no 
)
static

Definition at line 9545 of file xasl_generation.c.

References NULL, regu_alloc(), and TYPE_POSITION.

Referenced by pt_make_pos_regu_list(), and pt_set_connect_by_xasl().

Here is the caller graph for this function:

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

Definition at line 9516 of file xasl_generation.c.

References i, NULL, pt_xasl_node_to_domain(), regu_alloc(), and TYPE_POSITION.

Referenced by pt_attribute_to_regu().

Here is the caller graph for this function:

static PRED_EXPR * pt_make_pred_term_not ( const PRED_EXPR arg1)
static

Definition at line 1249 of file xasl_generation.c.

References cubxasl::pred_expr::m_not_term, NULL, cubxasl::pred_expr::pe, regu_alloc(), T_NOT_TERM, and cubxasl::pred_expr::type.

Referenced by pt_to_pred_expr_local_with_arg().

Here is the caller graph for this function:

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 
)
static
PT_NODE* pt_make_prim_data_type_fortonum ( PARSER_CONTEXT parser,
int  prec,
int  scale 
)
static REGU_VARIABLE * pt_make_regu_iscycle ( PARSER_CONTEXT parser,
const PT_NODE node 
)
static

Definition at line 21987 of file xasl_generation.c.

References parser_node::etc, if(), NULL, PT_INTERNAL_ERROR, regu_alloc(), tp_Integer_domain, and TYPE_CONSTANT.

Referenced by pt_to_regu_variable().

Here is the caller graph for this function:

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

Definition at line 21889 of file xasl_generation.c.

References parser_node::etc, if(), NULL, PT_INTERNAL_ERROR, regu_alloc(), tp_Integer_domain, and TYPE_CONSTANT.

Referenced by pt_to_regu_variable().

Here is the caller graph for this function:

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

Definition at line 21792 of file xasl_generation.c.

References parser_node::etc, if(), NULL, PT_INTERNAL_ERROR, regu_alloc(), tp_Integer_domain, and TYPE_CONSTANT.

Referenced by pt_to_regu_variable().

Here is the caller graph for this function:

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

Definition at line 26372 of file xasl_generation.c.

References assert, free_and_init, NULL, pt_make_identity_offsets(), and pt_to_position_regu_variable_list().

Referenced by pt_node_list_to_value_and_reguvar_list().

Here is the caller graph for this function:

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

Definition at line 9398 of file xasl_generation.c.

References i, NULL, PT_GET_RESERVED_NAME_FIRST_AND_LAST, and regu_alloc().

Referenced by pt_to_class_spec_list().

Here is the caller graph for this function:

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

Definition at line 5218 of file xasl_generation.c.

References NULL, pt_make_access_spec(), access_spec_node::s, hybrid_node::set_node, set_spec_node::set_ptr, set_spec_node::set_regu_list, and TARGET_SET.

Referenced by pt_to_set_expr_table_spec_list().

Here is the caller graph for this function:

static ACCESS_SPEC_TYPE * pt_make_showstmt_access_spec ( PRED_EXPR where_pred,
SHOWSTMT_TYPE  show_type,
REGU_VARIABLE_LIST  arg_list 
)
static
static void pt_merge_regu_var_lists ( REGU_VARIABLE_LIST destination,
REGU_VARIABLE_LIST  source 
)
static

Definition at line 22665 of file xasl_generation.c.

References regu_variable_list_node::next, and NULL.

Referenced by pt_add_regu_var_to_list(), pt_aggregate_info_update_scan_regu_list(), and pt_aggregate_info_update_value_and_reguvar_lists().

Here is the caller graph for this function:

static void pt_metadomain_adjust_key_prefix ( ANALYTIC_KEY_METADOMAIN meta)
static

Definition at line 15087 of file xasl_generation.c.

References assert, analytic_key_metadomain::children, i, analytic_key_metadomain::key, analytic_key_metadomain::level, and NULL.

Referenced by pt_optimize_analytic_list().

Here is the caller graph for this function:

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

Definition at line 14991 of file xasl_generation.c.

References assert, i, analytic_key_metadomain::links, analytic_key_metadomain::links_count, NULL, and pt_metadomains_compatible().

Referenced by pt_optimize_analytic_list().

Here is the caller graph for this function:

static int pt_mvcc_flag_specs_assign_reev ( PARSER_CONTEXT parser,
PT_NODE spec_list,
PT_NODE assign_list 
)
static
static int pt_mvcc_flag_specs_cond_reev ( PARSER_CONTEXT parser,
PT_NODE spec_list,
PT_NODE cond 
)
static
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 
)
static
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 
)
static

Definition at line 26344 of file xasl_generation.c.

References assert, NULL, pt_make_regu_list_from_value_list(), and pt_make_val_list().

Referenced by pt_to_aggregate_node().

Here is the caller graph for this function:

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

Definition at line 3429 of file xasl_generation.c.

References parser_node::info, parser_node::node_type, NULL, PT_IS_QUERY_NODE_TYPE, pt_statement_info::query, and pt_query_info::xasl.

Referenced by pt_to_insert_xasl().

Here is the caller graph for this function:

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

Definition at line 17036 of file xasl_generation.c.

References parser_node::alias_print, parser_context::context, parser_context::custom_print, pt_spec_info::derived_table_type, DETAILED_DUMP, parser_node::flag, pt_select_info::from, pt_select_info::group_by, indx_info::groupby_skip, pt_select_info::hint, pt_select_info::index_ls, pt_select_info::index_ss, access_spec_node::indexptr, parser_node::info, pt_query_info::is_subquery, parser_node::is_system_generated_stmt, parser_node::node_type, NULL, pt_query_info::order_by, indx_info::orderby_skip, pt_select_info::ordered, parser_alloc(), parser_free_tree(), parser_print_tree(), port_close_memstream(), port_open_memstream(), prm_get_integer_value(), PRM_ID_QUERY_TRACE_FORMAT, pt_alloc_packing_buf(), PT_CONVERT_RANGE, PT_HINT_NONE, PT_IS_CTE_NON_REC_SUBQUERY, PT_IS_CTE_REC_SUBQUERY, PT_IS_SHOWSTMT, pt_is_single_tuple(), PT_NODE_PRINT_TO_ALIAS, PT_SELECT, PT_SELECT_FULL_INFO_COLS_SCHEMA, PT_SELECT_INFO_COLS_SCHEMA, PT_SELECT_INFO_IS_FLAGED, pt_to_buildlist_proc(), pt_to_buildvalue_proc(), pt_query_info::q, qo_get_optimization_param(), qo_need_skip_execution(), qo_optimize_query(), QO_PARAM_LEVEL, qo_plan_discard(), qo_plan_dump(), qo_plan_lite_print(), qo_top_plan_print_json(), qo_top_plan_print_text(), pt_statement_info::query, query_Plan_dump_fp, parser_context::query_trace, QUERY_TRACE_JSON, QUERY_TRACE_TEXT, pt_query_info::select, SIMPLE_DUMP, pt_statement_info::spec, xasl_node::spec_list, compile_context::sql_plan_alloc_size, compile_context::sql_plan_text, strlen, pt_select_info::use_idx, pt_select_info::use_merge, and pt_select_info::use_nl.

Referenced by parser_generate_xasl_proc().

Here is the caller graph for this function:

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

Definition at line 16897 of file xasl_generation.c.

References pt_to_union_proc().

Referenced by parser_generate_xasl_proc().

Here is the caller graph for this function:

static void pt_pop_symbol_info ( PARSER_CONTEXT parser)
static

Definition at line 4742 of file xasl_generation.c.

References NULL, pt_has_error, PT_INTERNAL_ERROR, symbol_info::stack, and parser_context::symbols.

Referenced by parser_generate_xasl_post().

Here is the caller graph for this function:

static SYMBOL_INFO * pt_push_fetch_spec_info ( PARSER_CONTEXT parser,
SYMBOL_INFO symbols,
PT_NODE fetch_spec 
)
static
static DB_VALUE * pt_regu_to_dbvalue ( PARSER_CONTEXT parser,
REGU_VARIABLE regu 
)
static

Definition at line 9483 of file xasl_generation.c.

References NULL, pt_has_error, PT_INTERNAL_ERROR, TYPE_CONSTANT, and TYPE_DBVAL.

Referenced by pt_clone_val_list(), pt_to_fetch_as_scan_proc(), and pt_to_fetch_proc().

Here is the caller graph for this function:

XASL_NODE* pt_remove_xasl ( XASL_NODE xasl_list,
XASL_NODE remove 
)

Definition at line 12967 of file xasl_generation.c.

References xasl_node::next, and NULL.

Referenced by add_subqueries(), add_uncorrelated(), pt_set_aptr(), and pt_set_dptr().

Here is the caller graph for this function:

static int pt_reserved_id_to_valuelist_index ( PARSER_CONTEXT parser,
PT_RESERVED_NAME_ID  reserved_id 
)
static

Definition at line 26004 of file xasl_generation.c.

References assert, BTREE_KEY_INFO_FIRST_OID, BTREE_KEY_INFO_KEY, BTREE_KEY_INFO_OID_COUNT, BTREE_KEY_INFO_OVERFLOW_KEY, BTREE_KEY_INFO_OVERFLOW_OIDS, BTREE_KEY_INFO_PAGEID, BTREE_KEY_INFO_SLOTID, BTREE_KEY_INFO_VOLUMEID, BTREE_NODE_INFO_FIRST_KEY, BTREE_NODE_INFO_KEY_COUNT, BTREE_NODE_INFO_LAST_KEY, BTREE_NODE_INFO_NODE_TYPE, BTREE_NODE_INFO_PAGEID, BTREE_NODE_INFO_VOLUMEID, HEAP_PAGE_INFO_ALIGNMENT, HEAP_PAGE_INFO_ANCHOR_TYPE, HEAP_PAGE_INFO_CLASS_OID, HEAP_PAGE_INFO_CONT_FREE, HEAP_PAGE_INFO_IS_SAVING, HEAP_PAGE_INFO_NEXT_PAGE, HEAP_PAGE_INFO_NUM_RECORDS, HEAP_PAGE_INFO_NUM_SLOTS, HEAP_PAGE_INFO_OFFSET_TO_FREE_AREA, HEAP_PAGE_INFO_PREV_PAGE, HEAP_PAGE_INFO_TOTAL_FREE, HEAP_PAGE_INFO_UPDATE_BEST, HEAP_RECORD_INFO_T_CHN, HEAP_RECORD_INFO_T_LENGTH, HEAP_RECORD_INFO_T_MVCC_DELID, HEAP_RECORD_INFO_T_MVCC_FLAGS, HEAP_RECORD_INFO_T_MVCC_INSID, HEAP_RECORD_INFO_T_MVCC_PREV_VERSION, HEAP_RECORD_INFO_T_OFFSET, HEAP_RECORD_INFO_T_PAGEID, HEAP_RECORD_INFO_T_REC_TYPE, HEAP_RECORD_INFO_T_REPRID, HEAP_RECORD_INFO_T_SLOTID, HEAP_RECORD_INFO_T_VOLUMEID, RESERVED_BT_NODE_FIRST_KEY, RESERVED_BT_NODE_KEY_COUNT, RESERVED_BT_NODE_LAST_KEY, RESERVED_BT_NODE_PAGEID, RESERVED_BT_NODE_TYPE, RESERVED_BT_NODE_VOLUMEID, RESERVED_KEY_FIRST_OID, RESERVED_KEY_KEY, RESERVED_KEY_OID_COUNT, RESERVED_KEY_OVERFLOW_KEY, RESERVED_KEY_OVERFLOW_OIDS, RESERVED_KEY_PAGEID, RESERVED_KEY_SLOTID, RESERVED_KEY_VOLUMEID, RESERVED_NAME_INVALID, RESERVED_P_ALIGNMENT, RESERVED_P_ANCHOR_TYPE, RESERVED_P_CLASS_OID, RESERVED_P_CONT_FREE, RESERVED_P_IS_SAVING, RESERVED_P_NEXT_PAGEID, RESERVED_P_NUM_RECORDS, RESERVED_P_NUM_SLOTS, RESERVED_P_OFFSET_TO_FREE_AREA, RESERVED_P_PREV_PAGEID, RESERVED_P_TOTAL_FREE, RESERVED_P_UPDATE_BEST, RESERVED_T_CHN, RESERVED_T_LENGTH, RESERVED_T_MVCC_DELID, RESERVED_T_MVCC_FLAGS, RESERVED_T_MVCC_INSID, RESERVED_T_MVCC_PREV_VERSION_LSA, RESERVED_T_OFFSET, RESERVED_T_PAGEID, RESERVED_T_REC_TYPE, RESERVED_T_REPRID, RESERVED_T_SLOTID, and RESERVED_T_VOLUMEID.

Referenced by pt_to_regu_reserved_name().

Here is the caller graph for this function:

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 
)
static
static PT_NODE * pt_set_analytic_node_etc ( PARSER_CONTEXT parser,
PT_NODE node 
)
static
static void pt_set_aptr ( PARSER_CONTEXT parser,
PT_NODE select_node,
XASL_NODE xasl 
)
static

Definition at line 13026 of file xasl_generation.c.

References xasl_node::aptr_list, pt_append_xasl(), pt_remove_xasl(), and pt_to_uncorr_subquery_list().

Referenced by pt_to_buildlist_proc(), pt_to_buildvalue_proc(), and pt_to_union_proc().

Here is the caller graph for this function:

void pt_set_connect_by_operator_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
XASL_NODE xasl 
)
static PT_NODE * pt_set_connect_by_operator_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
void pt_set_dptr ( PARSER_CONTEXT parser,
PT_NODE node,
XASL_NODE xasl,
UINTPTR  id 
)
static PT_NODE* pt_set_is_system_generated_stmt ( PARSER_CONTEXT parser,
PT_NODE tree,
void *  void_arg,
int *  continue_walk 
)
static

Definition at line 3367 of file xasl_generation.c.

References parser_node::flag, parser_node::is_system_generated_stmt, parser_node::node_type, and PT_IS_QUERY_NODE_TYPE.

Referenced by parser_generate_xasl().

Here is the caller graph for this function:

void pt_set_iscycle_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
DB_VALUE **  iscycle_valp 
)
static PT_NODE * pt_set_iscycle_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 21924 of file xasl_generation.c.

References parser_node::etc, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_CONNECT_BY_ISCYCLE, PT_EXPR, and regu_alloc().

Referenced by pt_set_iscycle_node_etc().

Here is the caller graph for this function:

void pt_set_isleaf_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
DB_VALUE **  isleaf_valp 
)
static PT_NODE * pt_set_isleaf_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 21826 of file xasl_generation.c.

References parser_node::etc, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_CONNECT_BY_ISLEAF, PT_EXPR, and regu_alloc().

Referenced by pt_set_isleaf_node_etc().

Here is the caller graph for this function:

void pt_set_level_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
DB_VALUE **  level_valp 
)
static PT_NODE * pt_set_level_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static

Definition at line 21729 of file xasl_generation.c.

References parser_node::etc, pt_statement_info::expr, parser_node::info, parser_node::node_type, NULL, pt_expr_info::op, PT_EXPR, PT_LEVEL, and regu_alloc().

Referenced by pt_set_level_node_etc().

Here is the caller graph for this function:

void pt_set_numbering_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
DB_VALUE **  instnum_valp,
DB_VALUE **  ordbynum_valp 
)
static PT_NODE * pt_set_numbering_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
void pt_set_qprior_node_etc ( PARSER_CONTEXT parser,
PT_NODE node_list,
XASL_NODE xasl 
)
static PT_NODE * pt_set_qprior_node_etc_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static void pt_set_regu_list_pos_descr_from_idx ( REGU_VARIABLE_LIST regu_list,
size_t  starting_index 
)
static

Definition at line 26456 of file xasl_generation.c.

References assert, NULL, and TYPE_POSITION.

Referenced by pt_to_aggregate_node().

Here is the caller graph for this function:

XASL_NODE* pt_skeleton_buildlist_proc ( PARSER_CONTEXT parser,
PT_NODE namelist 
)

Definition at line 14056 of file xasl_generation.c.

References assert, BUILDLIST_PROC, NULL, xasl_node::outptr_list, pt_to_outlist(), regu_xasl_node_alloc(), and UNBOX_AS_VALUE.

Referenced by make_buildlist_proc().

Here is the caller graph for this function:

static SORT_LIST * pt_sort_list_from_metadomain ( PARSER_CONTEXT parser,
ANALYTIC_KEY_METADOMAIN meta,
PT_NODE **  sort_list_index,
PT_NODE select_list 
)
static
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 
)
static

Referenced by parser_generate_xasl_post().

Here is the caller graph for this function:

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

Definition at line 2572 of file xasl_generation.c.

References ENTITY_COMPATIBLE, parser_node::next, NULL, parser_walk_tree(), pt_check_instnum_post(), pt_check_instnum_pre(), and pt_table_compatible().

Referenced by pt_gen_simple_plan().

Here is the caller graph for this function:

static int pt_split_hash_attrs ( PARSER_CONTEXT parser,
TABLE_INFO table_info,
PT_NODE pred,
PT_NODE **  build_attrs,
PT_NODE **  probe_attrs 
)
static
static void pt_split_having_grbynum ( PARSER_CONTEXT parser,
PT_NODE having,
PT_NODE **  having_part,
PT_NODE **  grbynum_part 
)
static

Definition at line 2663 of file xasl_generation.c.

References parser_node::next, NULL, parser_walk_tree(), pt_check_groupbynum_post(), and pt_check_groupbynum_pre().

Referenced by pt_to_buildlist_proc().

Here is the caller graph for this function:

static void pt_split_if_instnum ( PARSER_CONTEXT parser,
PT_NODE where,
PT_NODE **  if_part,
PT_NODE **  instnum_part 
)
static
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 
)
static
PT_NODE * pt_substitute_assigned_name_node ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static int pt_table_compatible ( PARSER_CONTEXT parser,
PT_NODE node,
PT_NODE spec 
)
static
static TABLE_INFO * pt_table_info_alloc ( void  )
static
static SORT_LIST * pt_to_after_groupby ( PARSER_CONTEXT parser,
PT_NODE group_list,
PT_NODE root 
)
static

Definition at line 5747 of file xasl_generation.c.

References pt_get_select_list(), pt_to_sort_list(), and SORT_LIST_AFTER_GROUPBY.

Referenced by pt_to_buildlist_proc().

Here is the caller graph for this function:

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

Definition at line 5702 of file xasl_generation.c.

References pt_get_select_list(), pt_to_sort_list(), and SORT_LIST_AFTER_ISCAN.

Referenced by pt_to_buildlist_proc().

Here is the caller graph for this function:

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

Definition at line 3959 of file xasl_generation.c.

References cubxasl::aggregate_list_node::accumulator, pt_function_info::all_or_distinct, pt_dot_info::arg2, pt_function_info::arg_list, assert, cubxasl::aggregate_list_node::btid, BTID_SET_NULL, aggregate_info::class_name, pt_value_info::data_value, DB_DEFAULT_PRECISION, db_make_null(), db_private_alloc, DB_TYPE_INTEGER, DB_TYPE_NULL, pt_value_info::db_value, cubxasl::aggregate_list_node::domain, pt_statement_info::dot, parser_node::etc, pt_statement_info::expr, cubxasl::aggregate_list_node::flag_agg_optimize, aggregate_info::flag_agg_optimize, cubxasl::aggregate_list_node::function, pt_statement_info::function, pt_function_info::function_type, aggregate_info::grbynum_valp, aggregate_info::head_list, pt_data_value::i, if(), cubxasl::aggregate_list_node::info, parser_node::info, cubxasl::aggregate_list_node::list_id, MSGCAT_CATALOG_CUBRID, msgcat_message(), MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, db_value::need_clear, cubxasl::aggregate_list_node::next, regu_variable_list_node::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, pt_expr_info::op, cubxasl::aggregate_list_node::operands, cubxasl::aggregate_list_node::opr_dbtype, cubxasl::aggregate_list_node::option, pt_function_info::order_by, aggregate_info::out_list, aggregate_info::out_names, parser_append_node(), parser_new_node(), cubxasl::aggregate_specific_function_info::percentile, pt_function_info::percentile, cubxasl::aggregate_percentile_info::percentile_reguvar, pr_clone_value(), pt_add_regu_var_to_list(), pt_agg_orderby_to_sort_list(), pt_aggregate_info_update_scan_regu_list(), pt_aggregate_info_update_value_and_reguvar_lists(), PT_ALL, PT_CONTINUE_WALK, PT_COUNT, PT_COUNT_STAR, PT_CUME_DIST, PT_CURRENT_VALUE, PT_DATA_TYPE, PT_DIFFERENCE, PT_DOT_, PT_ERROR, PT_EXPR, pt_find_name(), pt_fix_buildlist_aggregate_cume_dist_percent_rank(), pt_fix_interpolation_aggregate_function_order_by(), PT_GROUP_CONCAT, PT_GROUPBY_NUM, pt_has_error, PT_INTERNAL_ERROR, PT_INTERSECTION, pt_is_aggregate_function(), PT_IS_CONST, PT_IS_STRING_TYPE, PT_LIST_WALK, pt_make_constant_regu_list_from_val_list(), PT_MAX, PT_METHOD_CALL, PT_MIN, PT_NAME, PT_NEXT_VALUE, pt_node_list_to_value_and_reguvar_list(), pt_node_to_db_type(), PT_PERCENT_RANK, PT_PERCENTILE_CONT, PT_PERCENTILE_DISC, pt_point(), pt_register_orphan_db_value(), PT_SELECT, pt_set_regu_list_pos_descr_from_idx(), PT_SPEC, pt_to_cume_dist_percent_rank_regu_variable(), pt_to_regu_variable(), pt_to_regu_variable_list(), PT_TYPE_BIT, pt_type_enum_to_db(), PT_TYPE_INTEGER, PT_TYPE_VARBIT, PT_UNION, PT_VALUE, pt_xasl_node_to_domain(), Q_ALL, Q_DISTINCT, QPROC_IS_INTERPOLATION_FUNC, qstr_make_typed_string(), regu_alloc(), regu_dbval_type_init(), aggregate_info::regu_list, sm_find_class(), sm_find_index(), cubxasl::aggregate_list_node::sort_list, TP_DOMAIN_CODESET, TP_DOMAIN_COLLATION, tp_Integer_domain, TYPE_CONSTANT, parser_node::type_enum, UNBOX_AS_VALUE, qproc_db_value_list::val, val_list_node::valp, valptr_list_node::valptr_cnt, cubxasl::aggregate_accumulator::value, regu_variable_list_node::value, pt_statement_info::value, cubxasl::aggregate_accumulator::value2, and aggregate_info::value_list.

Referenced by pt_to_aggregate().

Here is the caller graph for this function:

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

Definition at line 23284 of file xasl_generation.c.

References pt_function_info::all_or_distinct, pt_function_info::analytic, pt_function_info::arg_list, assert, CAST_POINTER_TO_NODE, parser_node::column_number, db_make_null(), DB_TYPE_NULL, regu_variable_node::regu_data_value::dbval, regu_variable_node::regu_data_value::dbvalptr, cubxasl::analytic_list_node::default_idx, pt_function_info::default_value, cubxasl::analytic_list_node::domain, regu_variable_node::domain, parser_node::etc, cubxasl::analytic_list_node::from_last, pt_function_info::from_last, cubxasl::analytic_list_node::function, pt_statement_info::function, pt_function_info::function_type, analytic_info::head_list, cubxasl::analytic_list_node::ignore_nulls, pt_function_info::ignore_nulls, cubxasl::analytic_list_node::info, parser_node::info, cubxasl::analytic_list_node::is_const_operand, parser_node::line_number, MSGCAT_CATALOG_CUBRID, msgcat_message(), MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, cubxasl::analytic_list_node::next, parser_node::next, pt_pointer_info::node, NULL, pt_function_info::offset, cubxasl::analytic_list_node::offset_idx, cubxasl::analytic_list_node::operand, cubxasl::analytic_list_node::opr_dbtype, cubxasl::analytic_list_node::option, pt_function_info::order_by, parser_copy_tree_list(), parser_new_node(), pt_function_info::partition_by, cubxasl::analytic_function_info::percentile, pt_function_info::percentile, cubxasl::analytic_percentile_function_info::percentile_reguvar, pt_statement_info::pointer, PT_ALL, PT_ERROR, PT_INTERNAL_ERROR, PT_IS_ANALYTIC_NODE, PT_IS_CONST, PT_IS_POINTER_REF_NODE, PT_LAG, PT_LEAD, PT_NODE_POINTER, pt_node_to_db_type(), PT_NTH_VALUE, PT_PERCENTILE_CONT, PT_PERCENTILE_DISC, pt_resolve_analytic_references(), pt_to_regu_variable(), pt_xasl_node_to_domain(), Q_ALL, Q_DISTINCT, QPROC_IS_INTERPOLATION_FUNC, regu_alloc(), regu_dbval_type_init(), analytic_info::select_list, cubxasl::analytic_list_node::sort_list_size, analytic_info::sort_lists, cubxasl::analytic_list_node::sort_prefix_size, tp_Null_domain, regu_variable_node::type, TYPE_CONSTANT, TYPE_DBVAL, UNBOX_AS_VALUE, analytic_info::val_list, cubxasl::analytic_list_node::value, regu_variable_node::value, and cubxasl::analytic_list_node::value2.

Referenced by pt_initialize_analytic_info().

Here is the caller graph for this function:

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

Definition at line 15681 of file xasl_generation.c.

References buildlist_proc_node::a_eval_list, buildlist_proc_node::a_outptr_list, buildlist_proc_node::a_outptr_list_ex, buildlist_proc_node::a_outptr_list_interm, buildlist_proc_node::a_regu_list, buildlist_proc_node::a_val_list, buildlist_proc_node::after_groupby_list, xasl_node::after_iscan_list, pt_query_info::all_distinct, qo_plan::analytic_eval_list, assert, B_AND, xasl_node::buildlist, BUILDLIST_PROC, symbol_info::current_class, symbol_info::current_listfile, db_private_alloc, db_private_free, buildlist_proc_node::eptr_list, pt_sort_spec_info::expr, pt_query_info::flag, parser_node::flag, pt_select_info::flavor, xasl_node::fptr_list, free_and_init, pt_select_info::from, buildlist_proc_node::g_agg_list, buildlist_proc_node::g_func_count, buildlist_proc_node::g_grbynum_flag, buildlist_proc_node::g_grbynum_pred, buildlist_proc_node::g_grbynum_val, buildlist_proc_node::g_hash_eligible, buildlist_proc_node::g_having_pred, buildlist_proc_node::g_hk_scan_regu_list, buildlist_proc_node::g_hk_sort_regu_list, buildlist_proc_node::g_hkey_size, buildlist_proc_node::g_outptr_list, buildlist_proc_node::g_output_first_tuple, buildlist_proc_node::g_regu_list, buildlist_proc_node::g_scan_regu_list, buildlist_proc_node::g_val_list, buildlist_proc_node::g_with_rollup, pt_select_info::group_by, buildlist_proc_node::groupby_list, pt_select_info::having, analytic_info::head_list, pt_select_info::hint, i, parser_node::info, xasl_node::instnum_flag, xasl_node::instnum_pred, xasl_node::instnum_val, xasl_node::is_single_tuple, xasl_node::iscan_oid_order, xasl_node::iscycle_val, xasl_node::isleaf_val, pt_spec_info::join_type, xasl_node::level_val, pt_query_info::limit, xasl_node::limit_offset, xasl_node::limit_row_count, pt_select_info::list, symbol_info::listfile_value_list, MATCH_ALL, MSGCAT_RUNTIME_OUTER_JOIN_OPT_FAILED, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_RUNTIME, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, regu_variable_list_node::next, xasl_node::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, xasl_node::option, xasl_node::ordbynum_flag, xasl_node::ordbynum_pred, xasl_node::ordbynum_val, pt_query_info::order_by, pt_query_info::orderby_for, xasl_node::orderby_limit, xasl_node::orderby_list, pt_name_info::original, xasl_node::outptr_list, parser_context::parent_proc_xasl, parser_append_node(), parser_free_tree(), parser_walk_tree(), prm_get_bool_value(), PRM_ID_BT_INDEX_SCAN_OID_ORDER, xasl_node::proc, pt_adjust_analytic_sort_specs(), PT_ALL, PT_ERRORm, pt_expand_analytic_node(), PT_EXPR_INFO_GROUPBYNUM_LIMIT, PT_EXPR_INFO_IS_FLAGED, pt_fix_pseudocolumns_pos_regu_list(), pt_gen_optimized_plan(), pt_gen_simple_merge_plan(), pt_gen_simple_plan(), pt_generate_simple_analytic_eval_type(), pt_has_aggregate(), pt_has_analytic(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_NO_HASH_AGGREGATE, pt_initialize_analytic_info(), pt_instnum_to_key_limit(), PT_IS_ANALYTIC_NODE, pt_is_hash_agg_eligible(), PT_IS_HINT_NODE, PT_JOIN_NONE, pt_length_of_list(), pt_make_identity_offsets(), pt_make_outlist_from_vallist(), pt_make_pred_expr_pred(), pt_make_val_list(), PT_MERGE_SELECT, pt_optimize_analytic_list(), pt_point(), PT_PRED_ARG_GRBYNUM_CONTINUE, PT_PRED_ARG_ORDBYNUM_CONTINUE, pt_resolve_analytic_references(), PT_SELECT, PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_IS_MERGE_QUERY, PT_SELECT_INFO_LIST_PUSHER, PT_SELECT_INFO_MULTI_UPDATE_AGG, pt_set_analytic_node_etc(), pt_set_aptr(), pt_set_connect_by_operator_node_etc(), pt_set_connect_by_xasl(), pt_set_dptr(), pt_set_iscycle_node_etc(), pt_set_isleaf_node_etc(), pt_set_level_node_etc(), pt_set_limit_optimization_flags(), pt_set_numbering_node_etc(), pt_set_qprior_node_etc(), PT_SORT_SPEC, pt_split_having_grbynum(), pt_substitute_analytic_references(), pt_to_after_groupby(), pt_to_after_iscan(), pt_to_aggregate(), pt_to_analytic_final_node(), pt_to_corr_subquery_list(), pt_to_groupby(), pt_to_orderby(), pt_to_outlist(), pt_to_position_regu_variable_list(), pt_to_pred_expr(), pt_to_pred_expr_with_arg(), pt_to_regu_variable(), pt_to_regu_variable_list(), pt_select_info::push_list, buildlist_proc_node::push_list_id, pt_query_info::q, Q_ALL, Q_DISTINCT, qo_get_key_limit_from_ordbynum(), qo_plan_iscan_sort_list(), qo_plan_multi_range_opt(), qo_plan_skip_groupby(), qo_plan_skip_orderby(), pt_statement_info::query, REGU_VARIABLE_ANALYTIC_WINDOW, REGU_VARIABLE_SET_FLAG(), regu_xasl_node_alloc(), xasl_node::save_instnum_val, pt_query_info::select, xasl_node::selected_upd_list, pt_query_info::single_tuple, pt_statement_info::sort_spec, pt_statement_info::spec, xasl_node::spec_list, parser_context::symbols, UNBOX_AS_VALUE, qo_limit_info::upper, xasl_node::val_list, valptr_list_node::valptr_cnt, valptr_list_node::valptrp, regu_variable_list_node::value, selupd_list::wait_msecs, pt_select_info::waitsecs_hint, pt_select_info::where, parser_node::with_rollup, XASL_CLEAR_FLAG, XASL_G_GRBYNUM_FLAG_LIMIT_GT_LT, XASL_G_GRBYNUM_FLAG_LIMIT_LT, XASL_G_GRBYNUM_FLAG_SCAN_CONTINUE, XASL_INSTNUM_FLAG_EVAL_DEFER, XASL_INSTNUM_FLAG_SCAN_STOP_AT_ANALYTIC, XASL_IS_MERGE_QUERY, XASL_MULTI_UPDATE_AGG, XASL_OBJFETCH_IGNORE_CLASSOID, XASL_ORDBYNUM_FLAG_SCAN_CONTINUE, XASL_SET_FLAG, XASL_SKIP_ORDERBY_LIST, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by pt_plan_query().

Here is the caller graph for this function:

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

Definition at line 14585 of file xasl_generation.c.

References ACCESS_METHOD_SCHEMA, xasl_node::after_iscan_list, xasl_node::after_join_pred, xasl_node::aptr_list, xasl_node::bptr_list, BUILD_SCHEMA_PROC, COLUMNS_SCHEMA, xasl_node::connect_by_ptr, xasl_node::curr_spec, pt_name_info::db_object, xasl_node::dptr_list, xasl_node::flag, pt_spec_info::flat_entity_list, xasl_node::fptr_list, pt_select_info::from, FULL_COLUMNS_SCHEMA, xasl_node::if_pred, INDEX_SCHEMA, parser_node::info, xasl_node::instnum_flag, xasl_node::instnum_pred, xasl_node::instnum_val, xasl_node::is_single_tuple, xasl_node::iscycle_regu, xasl_node::iscycle_val, xasl_node::isleaf_regu, xasl_node::isleaf_val, xasl_node::level_regu, xasl_node::level_val, pt_select_info::list, xasl_node::merge_spec, xasl_node::merge_val_list, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, xasl_node::next, parser_node::node_type, NULL, xasl_node::option, xasl_node::ordbynum_flag, xasl_node::ordbynum_pred, xasl_node::ordbynum_val, pt_query_info::order_by, xasl_node::orderby_limit, xasl_node::orderby_list, xasl_node::outptr_list, PT_ERRORm, pt_make_class_access_spec(), PT_SELECT, PT_SELECT_FULL_INFO_COLS_SCHEMA, PT_SELECT_INFO_COLS_SCHEMA, PT_SELECT_INFO_IDX_SCHEMA, PT_SELECT_INFO_IS_FLAGED, pt_to_orderby(), pt_to_outlist(), pt_query_info::q, Q_ALL, pt_statement_info::query, regu_xasl_node_alloc(), xasl_node::save_instnum_val, xasl_node::scan_ptr, pt_query_info::select, xasl_node::selected_upd_list, xasl_node::single_tuple, pt_statement_info::spec, xasl_node::spec_list, parser_context::symbols, TARGET_CLASS, UNBOX_AS_VALUE, xasl_node::val_list, and XASL_ORDBYNUM_FLAG_SCAN_CONTINUE.

Referenced by pt_plan_schema().

Here is the caller graph for this function:

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

Definition at line 16590 of file xasl_generation.c.

References buildvalue_proc_node::agg_list, pt_query_info::all_distinct, xasl_node::buildvalue, BUILDVALUE_PROC, xasl_node::cardinality, symbol_info::current_class, pt_select_info::flavor, pt_select_info::from, buildvalue_proc_node::grbynum_val, pt_select_info::having, buildvalue_proc_node::having_pred, pt_select_info::hint, parser_node::info, xasl_node::instnum_val, buildvalue_proc_node::is_always_false, xasl_node::iscycle_val, xasl_node::isleaf_val, pt_spec_info::join_type, xasl_node::level_val, pt_select_info::list, MATCH_ALL, MSGCAT_RUNTIME_OUTER_JOIN_OPT_FAILED, MSGCAT_SET_PARSER_RUNTIME, pt_statement_info::name, xasl_node::next, parser_node::next, NO_ERROR, parser_node::node_type, NULL, xasl_node::option, xasl_node::ordbynum_val, pt_query_info::orderby_for, pt_name_info::original, buildvalue_proc_node::outarith_list, xasl_node::outptr_list, parser_context::parent_proc_xasl, xasl_node::proc, xasl_node::projected_size, PT_ALL, PT_ERRORm, pt_false_search_condition(), pt_gen_optimized_plan(), pt_gen_simple_merge_plan(), pt_gen_simple_plan(), pt_has_error, PT_HINT_LK_TIMEOUT, pt_instnum_to_key_limit(), PT_IS_HINT_NODE, PT_JOIN_NONE, PT_MERGE_SELECT, pt_ordbynum_to_key_limit_multiple_ranges(), PT_SELECT, pt_set_aptr(), pt_set_connect_by_operator_node_etc(), pt_set_connect_by_xasl(), pt_set_dptr(), pt_set_iscycle_node_etc(), pt_set_isleaf_node_etc(), pt_set_level_node_etc(), pt_set_numbering_node_etc(), pt_set_qprior_node_etc(), pt_to_aggregate(), pt_to_outlist(), pt_to_pred_expr(), pt_query_info::q, Q_ALL, Q_DISTINCT, qo_plan_multi_range_opt(), pt_statement_info::query, regu_xasl_node_alloc(), xasl_node::scan_ptr, pt_query_info::select, xasl_node::selected_upd_list, pt_statement_info::spec, xasl_node::spec_list, parser_context::symbols, UNBOX_AS_VALUE, xasl_node::val_list, selupd_list::wait_msecs, pt_select_info::waitsecs_hint, pt_select_info::where, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by pt_plan_query().

Here is the caller graph for this function:

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

Definition at line 12075 of file xasl_generation.c.

References access_spec_node::access, ACCESS_METHOD_INDEX, ACCESS_METHOD_INDEX_KEY_INFO, ACCESS_METHOD_INDEX_NODE_INFO, ACCESS_METHOD_SEQUENTIAL, ACCESS_METHOD_SEQUENTIAL_PAGE_SCAN, ACCESS_METHOD_SEQUENTIAL_RECORD_INFO, ACCESS_SPEC_FLAG_FOR_UPDATE, assert, table_info::attribute_list, symbol_info::cache_attrinfo, symbol_info::current_class, pt_name_info::db_object, pt_spec_info::flag, access_spec_node::flags, pt_spec_info::flat_entity_list, free_and_init, qo_node_index_entry::head, parser_node::info, pt_spec_info::meta_class, pt_statement_info::name, access_spec_node::next, parser_node::next, qo_xasl_index_info::ni_entry, NO_ERROR, NO_SCHEMA, qo_xasl_index_info::nterms, NULL, parser_free_tree(), pt_find_table_info(), pt_get_mvcc_reev_range_data(), pt_has_error, PT_IS_SPEC_FLAG_SET, PT_IS_VALUE_QUERY, pt_make_class_access_spec(), pt_make_outlist_from_vallist(), pt_make_prefix_index_data_filter(), pt_make_reserved_value_list(), PT_META_CLASS, PT_SPEC_FLAG_BTREE_NODE_INFO_SCAN, PT_SPEC_FLAG_FOR_UPDATE_CLAUSE, PT_SPEC_FLAG_KEY_INFO_SCAN, PT_SPEC_FLAG_PAGE_INFO_SCAN, PT_SPEC_FLAG_RECORD_INFO_SCAN, PT_SPEC_SPECIAL_INDEX_SCAN, pt_split_attrs(), pt_to_index_attrs(), pt_to_index_info(), pt_to_position_regu_variable_list(), pt_to_pred_expr(), pt_to_regu_variable_list(), qo_is_prefix_index(), regu_alloc(), RESERVED_NAME_BTREE_NODE_INFO, RESERVED_NAME_INVALID, RESERVED_NAME_KEY_INFO, RESERVED_NAME_PAGE_INFO, RESERVED_NAME_RECORD_INFO, symbol_info::reserved_values, pt_statement_info::spec, pt_name_info::spec_id, parser_context::symbols, symbol_info::table_info, TARGET_CLASS, TARGET_CLASS_ATTR, TARGET_REGUVAL_LIST, UNBOX_AS_VALUE, and table_info::value_list.

Referenced by pt_to_fetch_proc(), and pt_to_spec_list().

Here is the caller graph for this function:

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

Definition at line 13340 of file xasl_generation.c.

References corr_info::id, NULL, parser_walk_tree(), pt_continue_walk(), pt_corr_pre(), and corr_info::xasl_head.

Referenced by pt_set_dptr(), and pt_to_buildlist_proc().

Here is the caller graph for this function:

XASL_NODE* pt_to_delete_xasl ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 19891 of file xasl_generation.c.

References parser_node::alias_print, xasl_node::aptr_list, ARG_FILE_LINE, assert, upddel_class_info::att_id, upddel_class_info::class_hfid, xasl_node::class_locks, sm_attribute::class_mop, upddel_class_info::class_oid, xasl_node::class_oid_list, pt_delete_info::class_specs, delete_proc_node::classes, COPY_OID, cubregex::count(), xasl_node::creator_oid, db_attribute_next(), db_get_attributes(), db_get_user(), pt_name_info::db_object, DB_TYPE_BLOB, DB_TYPE_CLOB, xasl_node::dbval_cnt, xasl_node::delete_, pt_statement_info::delete_, DELETE_PROC, pt_spec_info::derived_table, er_errid(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_UNKNOWN_OBJECT, er_msg(), er_set(), error(), xasl_node::flag, pt_spec_info::flag, pt_spec_info::flat_entity_list, pt_select_info::from, pt_select_info::group_by, upddel_class_info::has_uniques, sm_attribute::header, HFID_COPY, pt_delete_info::hint, i, pr_type::id, sm_attribute::id, pt_spec_info::id, ID_ATTRIBUTE, ID_SHARED_ATTRIBUTE, parser_node::info, pt_delete_info::limit, xasl_node::limit_offset, xasl_node::limit_row_count, pt_select_info::list, upddel_class_info::lob_attr_ids, pt_name_info::meta_class, mq_translate(), delete_proc_node::mvcc_reev_classes, pt_query_info::mvcc_reev_extra_cls_cnt, xasl_node::n_oid_list, sm_component::name, pt_statement_info::name, sm_component::name_space, upddel_class_info::needs_pruning, sm_component::next, parser_node::next, NO_ERROR, delete_proc_node::no_logging, parser_node::node_type, NULL, upddel_class_info::num_attrs, delete_proc_node::num_classes, upddel_class_info::num_lob_attrs, delete_proc_node::num_reev_classes, upddel_class_info::num_subclasses, OID_SET_NULL, pt_name_info::original, parser_append_node(), parser_free_node(), parser_free_tree(), xasl_node::proc, pt_copy_upddel_hints_to_select(), pt_db_to_type_enum(), PT_ERRORc, pt_find_spec(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_NO_LOGGING, PT_IS_HINT_NODE, PT_IS_SPEC_FLAG_SET, pt_make_aptr_parent_node(), pt_mark_spec_list_for_update_clause(), pt_mvcc_flag_specs_cond_reev(), pt_mvcc_prepare_upd_del_select(), pt_name(), PT_NORMAL, pt_report_to_ersys(), PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_MVCC_LOCK_NEEDED, PT_SELECT_INFO_SET_FLAG, PT_SEMANTIC, PT_SHARED, PT_SPEC, PT_SPEC_FLAG_DELETE, PT_SPEC_FLAG_MVCC_COND_REEV, pt_to_regu_variable(), pt_to_upd_del_query(), pt_query_info::q, pt_statement_info::query, xasl_node::query_alias, pt_spec_info::range_var, regu_array_alloc(), regu_int_array_alloc(), regu_oid_array_alloc(), S_DELETE, pt_delete_info::search_cond, pt_query_info::select, sm_get_ch_heap(), sm_is_partitioned_class(), sm_partitioned_class_type(), pt_delete_info::spec, pt_statement_info::spec, pt_name_info::spec_id, xasl_node::tcard_list, sm_attribute::type, parser_node::type_enum, UNBOX_AS_VALUE, pt_query_info::upd_del_class_cnt, pt_delete_info::using_index, delete_proc_node::wait_msecs, pt_delete_info::waitsecs_hint, pt_delete_info::with, ws_identifier(), XASL_CLEAR_FLAG, XASL_INCLUDES_TDE_CLASS, XASL_SET_FLAG, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by build_xasl_for_server_delete(), and do_prepare_delete().

Here is the caller graph for this function:

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

Definition at line 13977 of file xasl_generation.c.

References xasl_node::dptr_list, xasl_node::if_pred, NULL, pt_to_fetch_proc_list_recurse(), and xasl_node::scan_ptr.

Referenced by pt_gen_simple_merge_plan(), pt_gen_simple_plan(), and pt_to_scan_proc_list().

Here is the caller graph for this function:

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

Definition at line 5732 of file xasl_generation.c.

References pt_get_select_list(), pt_to_sort_list(), and SORT_LIST_GROUPBY.

Referenced by pt_to_buildlist_proc().

Here is the caller graph for this function:

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

Definition at line 11658 of file xasl_generation.c.

References coll_opt::allow_index_opt, pt_expr_info::arg2, assert, sm_class_constraint::attributes, indx_info::btid, BTID_COPY, qo_index_entry::class_, indx_info::class_oid, sm_function_info::col_id, tp_domain::collation_id, qo_index_entry::constraints, qo_index_entry::cover_segments, indx_info::coverage, sm_attribute::domain, EQ_NA, pt_statement_info::expr, sm_function_info::fi_domain, sm_class_constraint::filter_predicate, indx_info::func_idx_col_id, sm_class_constraint::func_index_info, GE_INF, GE_LE, GE_LT, indx_info::groupby_desc, indx_info::groupby_skip, qo_index_entry::groupby_skip, GT_INF, GT_LE, GT_LT, qo_node_index_entry::head, i, pr_type::id, indx_info::ils_prefix_len, qo_index_entry::ils_prefix_len, sm_class_constraint::index_btid, INF_INF, parser_node::info, key_info::is_constant, qo_index_entry::is_iss_candidate, key_range::key1, key_range::key2, key_info::key_cnt, indx_info::key_info, qo_index_entry::key_limit, key_info::key_ranges, qo_class_info_entry::mop, qo_xasl_index_info::multi_col_pos, qo_index_entry::next, qo_xasl_index_info::ni_entry, NO_ERROR, NULL, vid_oid::oid, db_object::oid_info, pt_expr_info::op, parser_node::or_next, indx_info::orderby_desc, indx_info::orderby_skip, qo_index_entry::orderby_skip, tp_domain::precision, PT_BETWEEN, pt_create_iss_range(), PT_EQ, PT_EQ_SOME, pt_fix_first_term_expr_for_iss(), PT_GE, PT_GT, PT_INTERNAL_ERROR, PT_IS_IN, PT_LAST_OPCODE, PT_LE, PT_LT, PT_RANGE, pt_to_key_limit(), pt_to_list_key(), pt_to_range_key(), pt_to_rangelist_key(), pt_to_single_key(), qo_check_coll_optimization(), qo_check_type_index_covering(), QO_ENTRY_MULTI_COL, qo_is_filter_index(), qo_is_index_covering_scan(), qo_is_index_iss_scan(), qo_is_index_loose_scan(), qo_is_interesting_order_scan(), qo_is_prefix_index(), qo_plan_multi_range_opt(), qo_xasl_get_num_terms(), qo_xasl_get_terms(), R_KEY, R_KEYLIST, R_RANGE, R_RANGELIST, key_range::range, indx_info::range_type, rc, regu_alloc(), regu_array_alloc(), tp_domain::scale, tp_domain_resolve(), tp_domain::type, indx_info::use_desc_index, qo_index_entry::use_descending, and indx_info::use_iss.

Referenced by pt_to_class_spec_list().

Here is the caller graph for this function:

XASL_NODE* pt_to_insert_xasl ( PARSER_CONTEXT parser,
PT_NODE statement 
)

Definition at line 18179 of file xasl_generation.c.

References parser_node::alias_print, xasl_node::aptr_list, assert, ASSERT_ERROR_AND_SET, insert_proc_node::att_id, pt_insert_info::attr_list, AU_DISABLE, AU_ENABLE, au_fetch_class(), AU_FETCH_READ, AU_SELECT, insert_proc_node::class_hfid, xasl_supp_info::class_locks, xasl_node::class_locks, insert_proc_node::class_oid, xasl_supp_info::class_oid_list, xasl_node::class_oid_list, COPY_OID, xasl_node::creator_oid, symbol_info::current_class, symbol_info::current_listfile, DB_FETCH_QUERY_READ, db_get_user(), pt_name_info::db_object, xasl_node::dbval_cnt, insert_proc_node::do_replace, pt_insert_info::do_replace, ER_HEAP_UNKNOWN_OBJECT, er_msg(), error(), EXCLUDE_HIDDEN_COLUMNS, xasl_node::flag, parser_context::flag, pt_spec_info::flat_entity_list, pt_select_info::from, insert_proc_node::has_uniques, pt_insert_info::has_uniques, pt_insert_info::hint, i, xasl_supp_info::includes_tde_class, parser_node::info, xasl_node::insert, pt_statement_info::insert, INSERT_PROC, IX_LOCK, pt_node_list_info::list, pt_select_info::list, pt_node_list_info::list_type, symbol_info::listfile_attr_offset, symbol_info::listfile_unbox, symbol_info::listfile_value_list, locator_create_heap_if_needed(), locator_flush_class(), locator_is_class(), MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, xasl_supp_info::n_oid_list, xasl_node::n_oid_list, pt_statement_info::name, table_info::next, parser_node::next, NO_ERROR, insert_proc_node::no_logging, pt_statement_info::node_list, pt_insert_info::non_null_attrs, NULL, insert_proc_node::num_default_expr, insert_proc_node::num_val_lists, insert_proc_node::num_vals, insert_proc_node::odku, pt_insert_info::odku_assignments, OID_SET_NULL, pt_name_info::original, parser_generate_xasl_post(), parser_generate_xasl_pre(), parser_walk_tree(), xasl_node::proc, insert_proc_node::pruning_type, pt_append_assignment_references(), PT_ERRORc, PT_ERRORm, pt_find_omitted_default_expr(), pt_get_select_list(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_NO_LOGGING, pt_init_xasl_supp_info(), PT_INTERNAL_ERROR, PT_IS_HINT_NODE, PT_IS_QUERY, PT_IS_SELECT, PT_IS_SUBQUERY, pt_length_of_list(), pt_length_of_select_list(), pt_make_aptr_parent_node(), pt_make_table_info(), pt_make_val_list(), pt_null_xasl(), pt_report_to_ersys(), PT_SEMANTIC, pt_symbol_info_alloc(), pt_to_constraint_pred(), pt_to_odku_info(), pt_to_outlist(), pt_query_info::q, pt_statement_info::query, xasl_node::query_alias, regu_array_alloc(), regu_int_array_alloc(), regu_oid_array_alloc(), regu_xasl_node_alloc(), parser_context::return_generated_keys, pt_query_info::select, xasl_node::selected_upd_list, sm_att_id(), sm_ch_heap(), sm_is_reuse_oid_class(), sm_partitioned_class_type(), pt_insert_info::spec, pt_statement_info::spec, parser_context::symbols, symbol_info::table_info, xasl_supp_info::tcard_list, xasl_node::tcard_list, sm_class::tde_algorithm, TDE_ALGORITHM_NONE, UNBOX_AS_VALUE, xasl_node::val_list, insert_proc_node::valptr_lists, insert_proc_node::vals, pt_insert_info::value_clauses, insert_proc_node::wait_msecs, pt_insert_info::waitsecs_hint, ws_identifier(), XASL_CLASS_NO_TCARD, XASL_INCLUDES_TDE_CLASS, XASL_RETURN_GENERATED_KEYS, XASL_SET_FLAG, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by do_insert_at_server(), do_prepare_insert_internal(), and pt_make_regu_insert().

Here is the caller graph for this function:

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 
)
static
static XASL_NODE * pt_to_merge_insert_xasl ( PARSER_CONTEXT parser,
PT_NODE statement,
PT_NODE non_null_attrs,
PT_NODE default_expr_attrs 
)
static

Definition at line 25527 of file xasl_generation.c.

References xasl_node::aptr_list, ARG_FILE_LINE, assert, insert_proc_node::att_id, pt_merge_info::attr_list, au_fetch_class(), AU_FETCH_READ, AU_SELECT, insert_proc_node::class_hfid, xasl_node::class_locks, insert_proc_node::class_oid, xasl_node::class_oid_list, cleanup(), COPY_OID, xasl_node::creator_oid, DB_FETCH_QUERY_READ, db_get_user(), pt_name_info::db_object, xasl_node::dbval_cnt, insert_proc_node::do_replace, er_errid(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_UNKNOWN_OBJECT, er_set(), error(), EXCLUDE_HIDDEN_COLUMNS, xasl_node::flag, pt_merge_info::flags, pt_spec_info::flat_entity_list, insert_proc_node::has_uniques, pt_merge_info::hint, parser_node::info, xasl_node::insert, pt_merge_info::insert, INSERT_PROC, pt_merge_info::into, IX_LOCK, pt_node_list_info::list, locator_create_heap_if_needed(), locator_flush_class(), locator_is_class(), pt_statement_info::merge, mq_translate(), xasl_node::n_oid_list, pt_statement_info::name, parser_node::next, NO_ERROR, insert_proc_node::no_logging, pt_statement_info::node_list, NULL, insert_proc_node::num_default_expr, insert_proc_node::num_vals, OID_SET_NULL, pt_name_info::original, parser_free_tree(), xasl_node::proc, insert_proc_node::pruning_type, pt_get_select_list(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_NO_LOGGING, PT_IS_HINT_NODE, pt_length_of_list(), pt_length_of_select_list(), pt_make_aptr_parent_node(), PT_MERGE_INFO_HAS_UNIQUE, pt_report_to_ersys_with_statement(), PT_SEMANTIC, pt_to_constraint_pred(), pt_to_merge_insert_query(), regu_int_array_alloc(), regu_oid_array_alloc(), sm_att_id(), sm_ch_heap(), sm_is_reuse_oid_class(), sm_partitioned_class_type(), pt_statement_info::spec, xasl_node::tcard_list, sm_class::tde_algorithm, TDE_ALGORITHM_NONE, insert_proc_node::vals, pt_merge_info::value_clauses, insert_proc_node::wait_msecs, pt_merge_info::waitsecs_hint, ws_identifier(), XASL_CLASS_NO_TCARD, XASL_INCLUDES_TDE_CLASS, XASL_SET_FLAG, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by pt_to_merge_xasl().

Here is the caller graph for this function:

PT_NODE* pt_to_merge_update_query ( PARSER_CONTEXT parser,
PT_NODE select_list,
PT_MERGE_INFO info 
)

Definition at line 24651 of file xasl_generation.c.

References pt_expr_info::arg1, pt_expr_info::arg2, pt_sort_spec_info::asc_or_desc, pt_merge_info::assignment, parser_node::cannot_prepare, pt_merge_info::del_search_cond, qfile_tuple_value_position::dom, pt_sort_spec_info::expr, pt_statement_info::expr, parser_node::flag, pt_merge_info::flags, pt_select_info::from, pt_select_info::group_by, pt_merge_info::has_delete, pt_merge_info::hint, pt_merge_info::index_hint, parser_node::info, pt_merge_info::into, pt_select_info::list, parser_node::next, NULL, pt_expr_info::op, parser_append_node(), parser_copy_tree_list(), parser_free_tree(), parser_new_node(), parser_walk_tree(), pt_sort_spec_info::pos_descr, qfile_tuple_value_position::pos_no, pt_add_row_classoid_name(), pt_add_row_oid_name(), PT_AND, PT_ASC, PT_EXPR, PT_HINT_USE_UPDATE_IDX, PT_INTERNAL_ERROR, pt_make_integer_value(), pt_mark_spec_list_for_update_clause(), PT_MERGE_INFO_SERVER_OP, PT_NE, PT_SELECT, PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_IS_MERGE_QUERY, PT_SELECT_INFO_MULTI_UPDATE_AGG, PT_SELECT_INFO_MVCC_LOCK_NEEDED, PT_SELECT_INFO_NO_STRICT_OID_CHECK, PT_SELECT_INFO_SET_FLAG, PT_SORT_SPEC, PT_SPEC_FLAG_UPDATE, pt_substitute_assigned_name_node(), pt_xasl_node_to_domain(), pt_query_info::q, pt_statement_info::query, S_UPDATE, pt_query_info::scan_op_type, pt_merge_info::search_cond, pt_query_info::select, pt_statement_info::sort_spec, pt_query_info::upd_del_class_cnt, pt_merge_info::update, pt_merge_info::using_clause, pt_select_info::using_index, and pt_select_info::where.

Referenced by do_merge(), do_prepare_merge(), and pt_to_merge_update_xasl().

Here is the caller graph for this function:

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

Definition at line 25025 of file xasl_generation.c.

References xasl_node::aptr_list, pt_expr_info::arg2, ARG_FILE_LINE, assert, pt_merge_info::assignment, pt_assignments_helper::assignment, update_proc_node::assigns, upddel_class_info::att_id, update_assignment::att_idx, upddel_class_info::class_hfid, xasl_node::class_locks, upddel_class_info::class_oid, xasl_node::class_oid_list, update_proc_node::classes, cleanup(), update_assignment::cls_idx, update_assignment::constant, COPY_OID, xasl_node::creator_oid, db_attribute_domain(), db_get_attribute(), db_get_user(), DB_IS_NULL, pt_name_info::db_object, xasl_node::dbval_cnt, DOMAIN_COMPATIBLE, er_errid(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_UNKNOWN_OBJECT, ER_OBJ_ATTRIBUTE_CANT_BE_NULL, ER_OBJ_DOMAIN_CONFLICT, er_set(), error(), pt_statement_info::expr, xasl_node::flag, pt_spec_info::flag, pt_spec_info::flat_entity_list, pt_merge_info::has_delete, upddel_class_info::has_uniques, pt_merge_info::hint, pt_spec_info::id, parser_node::info, pt_merge_info::into, pt_assignments_helper::is_rhs_const, pt_assignments_helper::lhs, locator_flush_class(), pt_statement_info::merge, mq_translate(), pt_query_info::mvcc_reev_extra_cls_cnt, xasl_node::n_oid_list, pt_statement_info::name, upddel_class_info::needs_pruning, parser_node::next, NO_ERROR, update_proc_node::no_logging, parser_node::node_type, NULL, update_proc_node::num_assigns, upddel_class_info::num_attrs, update_proc_node::num_classes, upddel_class_info::num_subclasses, OID_SET_NULL, pt_name_info::original, p, parser_append_node(), parser_copy_tree(), parser_copy_tree_list(), parser_free_tree(), xasl_node::proc, pt_append_omitted_on_update_expr_assignments(), pt_get_assignment_lists(), pt_get_next_assignment(), pt_has_error, PT_HINT_LK_TIMEOUT, PT_HINT_NO_LOGGING, pt_init_assignments_helper(), PT_INTERNAL_ERROR, PT_IS_HINT_NODE, pt_make_aptr_parent_node(), pt_name_equal(), pt_report_to_ersys_with_statement(), pt_restore_assignment_links(), PT_SEMANTIC, PT_SPEC, PT_SPEC_FLAG_HAS_UNIQUE, pt_to_constraint_pred(), pt_to_merge_update_query(), pt_value_to_db(), pt_statement_info::query, pt_spec_info::range_var, regu_alloc(), regu_array_alloc(), regu_int_array_alloc(), regu_oid_array_alloc(), sm_att_id(), sm_get_ch_heap(), sm_partitioned_class_type(), pt_statement_info::spec, pt_name_info::spec_id, xasl_node::tcard_list, tp_value_coerce(), pt_query_info::upd_del_class_cnt, xasl_node::update, pt_merge_info::update, UPDATE_PROC, pt_merge_info::using_clause, update_proc_node::wait_msecs, pt_merge_info::waitsecs_hint, ws_identifier(), XASL_CLEAR_FLAG, XASL_INCLUDES_TDE_CLASS, XASL_SET_FLAG, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by pt_to_merge_xasl().

Here is the caller graph for this function:

static int * pt_to_method_arglist ( PARSER_CONTEXT parser,
PT_NODE target,
PT_NODE node_list,
PT_NODE subquery_as_attr_list 
)
static

Definition at line 3689 of file xasl_generation.c.

References i, parser_node::next, NULL, pt_find_attribute(), pt_length_of_list(), and regu_int_array_alloc().

Referenced by pt_to_method_sig_list().

Here is the caller graph for this function:

static void pt_to_misc_operand ( REGU_VARIABLE regu,
PT_MISC_TYPE  misc_specifier 
)
static

Definition at line 7081 of file xasl_generation.c.

References pt_misc_to_qp_misc_operand().

Referenced by pt_to_regu_variable().

Here is the caller graph for this function:

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

Definition at line 18653 of file xasl_generation.c.

References ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, odku_info::assignments, update_assignment::att_idx, odku_info::attr_ids, odku_info::attr_info, symbol_info::cache_attrinfo, CAST_POINTER_TO_NODE, update_assignment::cls_idx, odku_info::cons_pred, update_assignment::constant, symbol_info::current_class, symbol_info::current_listfile, db_attribute_domain(), db_get_attribute(), DB_IS_NULL, pt_name_info::db_object, DOMAIN_COMPATIBLE, pt_spec_info::entity_name, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, ER_OBJ_ATTRIBUTE_CANT_BE_NULL, ER_OBJ_DOMAIN_CONFLICT, er_set(), error(), pt_select_info::from, sm_attribute::header, i, sm_attribute::id, parser_node::info, pt_statement_info::insert, pt_assignments_helper::is_rhs_const, pt_assignments_helper::lhs, pt_node_list_info::list, pt_select_info::list, symbol_info::listfile_attr_offset, symbol_info::listfile_value_list, MSGCAT_RUNTIME_RESOURCES_EXHAUSTED, MSGCAT_SET_PARSER_RUNTIME, sm_component::name, pt_statement_info::name, table_info::next, parser_node::next, NO_ERROR, pt_statement_info::node_list, parser_node::node_type, NULL, odku_info::num_assigns, pt_insert_info::odku_assignments, pt_insert_info::odku_non_null_attrs, pt_name_info::original, parser_copy_tree(), parser_free_tree(), parser_generate_xasl(), parser_new_node(), pt_append_omitted_on_update_expr_assignments(), PT_ERRORm, PT_EXPR, pt_get_next_assignment(), pt_has_error, pt_init_assignments_helper(), PT_INSERT, PT_INTERNAL_ERROR, PT_IS_NOT_NULL, pt_is_query, PT_IS_SELECT, pt_make_table_info(), pt_name_equal(), pt_symbol_info_alloc(), pt_to_pred_expr(), pt_to_regu_variable(), pt_value_to_db(), pt_query_info::q, pt_statement_info::query, regu_alloc(), regu_array_alloc(), regu_int_array_alloc(), update_assignment::regu_var, pt_assignments_helper::rhs, pt_query_info::select, pt_insert_info::spec, pt_statement_info::spec, parser_context::symbols, symbol_info::table_info, tp_value_cast(), UNBOX_AS_VALUE, xasl_node::val_list, and pt_insert_info::value_clauses.

Referenced by pt_to_insert_xasl().

Here is the caller graph for this function:

static SORT_LIST * pt_to_order_siblings_by ( PARSER_CONTEXT parser,
XASL_NODE xasl,
XASL_NODE connect_by_xasl 
)
static
SORT_LIST* pt_to_orderby ( PARSER_CONTEXT parser,
PT_NODE order_list,
PT_NODE root 
)

Definition at line 5717 of file xasl_generation.c.

References pt_get_select_list(), pt_to_sort_list(), and SORT_LIST_ORDERBY.

Referenced by add_sort_spec(), pt_to_buildlist_proc(), pt_to_buildschema_proc(), and pt_to_union_proc().

Here is the caller graph for this function:

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

Definition at line 13448 of file xasl_generation.c.

References pt_dot_info::arg2, pt_expr_info::arg2, assert, CAST_POINTER_TO_NODE, cubregex::count(), pt_statement_info::data_type, parser_node::data_type, db_make_oid(), pt_name_info::db_object, DB_TYPE_NULL, pt_statement_info::dot, pt_data_type_info::entity, pt_statement_info::expr, i, if(), parser_node::info, xasl_node::is_single_tuple, pt_node_list_info::list, qfile_sorted_list_id::list_id, xasl_node::list_id, MSGCAT_SEMANTIC_OUT_OF_MEMORY, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, qproc_db_value_list::next, regu_variable_list_node::next, parser_node::next, parser_node::next_row, pt_statement_info::node_list, parser_node::node_type, NULL, OID_SET_NULL, parser_reinit_node(), pt_alloc_packing_buf(), PT_DECR, PT_DOT_, PT_ERRORm, PT_EXPR, pt_get_select_list(), PT_INCR, PT_IS_QUERY_NODE_TYPE, pt_link_regu_to_selupd_list(), pt_make_val_list(), PT_NODE_LIST, PT_ORDERBY_NUM, PT_SET_VALUE_QUERY, pt_to_regu_variable(), PT_TYPE_NULL, PT_TYPE_OBJECT, pt_xasl_node_to_domain(), pt_statement_info::query, regu_alloc(), xasl_node::single_tuple, TP_DOMAIN_TYPE, xasl_node::type, TYPE_CONSTANT, parser_node::type_enum, TYPE_LIST_ID, TYPE_ORDERBY_NUM, UNBOX_AS_TABLE, qproc_db_value_list::val, val_list_node::valp, valptr_list_node::valptr_cnt, valptr_list_node::valptrp, pt_data_type_info::virt_type_enum, pt_query_info::xasl, XASL_LINK_TO_REGU_VARIABLE, and XASL_SET_FLAG.

Referenced by parser_generate_do_stmt_xasl(), pt_skeleton_buildlist_proc(), pt_to_buildlist_proc(), pt_to_buildschema_proc(), pt_to_buildvalue_proc(), pt_to_fetch_proc(), and pt_to_insert_xasl().

Here is the caller graph for this function:

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

Definition at line 1472 of file xasl_generation.c.

References pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, assert, B_AND, B_IS, B_IS_NOT, B_OR, B_XOR, CAST_POINTER_TO_NODE, pt_value_info::data_value, DB_TYPE_INTEGER, DB_TYPE_NULL, parser_context::etc, pt_statement_info::expr, F_ALL, F_SOME, pt_data_value::i, parser_node::info, MSGCAT_SEMANTIC_WANT_ESC_LIT_STRING, MSGCAT_SET_PARSER_SEMANTIC, pt_pointer_info::node, parser_node::node_type, NULL, pt_expr_info::op, parser_node::or_next, parser_free_node(), parser_new_node(), pt_statement_info::pointer, prm_get_bool_value(), PRM_ID_NO_BACKSLASH_ESCAPES, PRM_ID_REQUIRE_LIKE_ESCAPE_CHARACTER, PT_AND, PT_BETWEEN, PT_BETWEEN_AND, PT_BETWEEN_EQ_NA, PT_BETWEEN_GE_INF, PT_BETWEEN_GE_LE, PT_BETWEEN_GE_LT, PT_BETWEEN_GT_INF, PT_BETWEEN_GT_LE, PT_BETWEEN_GT_LT, PT_BETWEEN_INF_LE, PT_BETWEEN_INF_LT, PT_EQ, PT_EQ_ALL, PT_EQ_SOME, PT_EQ_TORDER, PT_ERRORm, PT_EXISTS, PT_EXPR, PT_GE, PT_GE_ALL, PT_GE_SOME, PT_GT, PT_GT_ALL, PT_GT_SOME, pt_has_error, PT_HOST_VAR, PT_INTERNAL_ERROR, PT_IS, pt_is_between_range_op(), PT_IS_IN, PT_IS_NATIONAL_CHAR_STRING_TYPE, PT_IS_NOT, PT_IS_NOT_IN, PT_IS_NOT_NULL, PT_IS_NULL, PT_IS_POINTER_REF_NODE, PT_ISNULL, PT_LE, PT_LE_ALL, PT_LE_SOME, PT_LIKE, PT_LIKE_ESCAPE, PT_LT, PT_LT_ALL, PT_LT_SOME, pt_make_pred_expr_pred(), pt_make_pred_term_comp(), pt_make_pred_term_is(), pt_make_pred_term_like(), pt_make_pred_term_not(), pt_make_pred_term_rlike(), pt_make_pred_term_some_all(), pt_make_string_value(), PT_NE, PT_NE_ALL, PT_NE_SOME, pt_node_to_db_type(), PT_NOT, PT_NOT_BETWEEN, PT_NOT_LIKE, PT_NOT_RLIKE, PT_NOT_RLIKE_BINARY, PT_NULLSAFE_EQ, PT_OR, PT_PRED_ARG_GRBYNUM_CONTINUE, PT_PRED_ARG_INSTNUM_CONTINUE, PT_PRED_ARG_ORDBYNUM_CONTINUE, PT_RANGE, PT_RLIKE, PT_RLIKE_BINARY, PT_SETEQ, PT_SETNEQ, PT_SUBSET, PT_SUBSETEQ, PT_SUPERSET, PT_SUPERSETEQ, pt_to_pred_expr(), pt_to_regu_variable(), PT_TYPE_INTEGER, PT_TYPE_LOGICAL, PT_TYPE_MAYBE, PT_TYPE_NCHAR, PT_TYPE_VARNCHAR, PT_VALUE, PT_XOR, pt_expr_info::qualifier, R_EQ, R_EQ_TORDER, R_EXISTS, R_GE, R_GT, R_LE, R_LT, R_NE, R_NONE, R_NULL, R_NULLSAFE_EQ, R_SUBSET, R_SUBSETEQ, R_SUPERSET, R_SUPERSETEQ, pt_value_info::string_type, parser_node::type_enum, UNBOX_AS_TABLE, UNBOX_AS_VALUE, pt_statement_info::value, XASL_NEED_SINGLE_TUPLE_SCAN, and XASL_SET_FLAG.

Referenced by pt_to_pred_expr_with_arg().

Here is the caller graph for this function:

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 
)

Definition at line 7417 of file xasl_generation.c.

References pt_expr_info::arg1, pt_dot_info::arg2, pt_expr_info::arg2, pt_expr_info::arg3, ARG_FILE_LINE, assert, au_user_name(), CAST_POINTER_TO_NODE, pt_expr_info::cast_type, pt_select_info::check_cycles, pt_data_type_info::collation_flag, tp_domain::collation_id, pt_select_info::connect_by, CONNECT_BY_CYCLES_NONE, CONNECT_BY_CYCLES_NONE_IGNORE, symbol_info::current_class, pt_statement_info::data_type, parser_node::data_type, pt_value_info::data_value, DB_DEFAULT_PRECISION, DB_DEFAULT_SCALE, db_get_database_name(), db_get_database_version(), db_get_user_and_host_name(), db_make_int(), pt_name_info::db_object, db_private_free, db_private_free_and_init, db_string_free(), DB_TYPE_INTEGER, DB_TYPE_VARCHAR, db_value_domain_init(), dbname, do_get_serial_cached_num(), pt_statement_info::dot, er_errid(), ER_ERROR_SEVERITY, er_msg(), ER_OBJ_INVALID_ARGUMENTS, er_set(), parser_node::etc, parser_context::etc, EXCLUDE_HIDDEN_COLUMNS, parser_node::expected_domain, pt_statement_info::expr, pt_name_info::hidden_column, pt_data_value::i, if(), parser_node::info, pt_statement_info::insert_value, pt_insert_value_info::is_evaluated, pt_name_info::meta_class, MSGCAT_RUNTIME_WANT_ONE_COL, MSGCAT_SEMANTIC_IS_NOT_DEFINED, MSGCAT_SEMANTIC_ISCYCLE_REQUIRES_NOCYCLE, MSGCAT_SEMANTIC_NOT_HIERACHICAL_QUERY, MSGCAT_SEMANTIC_SERIAL_NOT_DEFINED, MSGCAT_SET_PARSER_RUNTIME, MSGCAT_SET_PARSER_SEMANTIC, pt_statement_info::name, parser_node::next, NO_ERROR, pt_pointer_info::node, parser_node::node_type, NULL, pt_expr_info::op, pt_data_value::op, pt_name_info::original, pt_insert_value_info::original_node, parser_context::parent_proc_xasl, parser_copy_tree(), parser_free_node(), parser_free_tree(), parser_generate_xasl(), parser_new_node(), parser_print_tree(), pt_statement_info::pointer, pr_clear_value(), tp_domain::precision, PT_ABS, PT_ACOS, PT_ADD_MONTHS, PT_ADDDATE, PT_ADDTIME, PT_AES_DECRYPT, PT_AES_ENCRYPT, pt_append_nulstring(), PT_ASCII, PT_ASIN, PT_ATAN, PT_ATAN2, pt_attribute_to_regu(), PT_BIN, PT_BIT_AND, PT_BIT_COUNT, PT_BIT_LENGTH, PT_BIT_NOT, PT_BIT_OR, PT_BIT_TO_BLOB, PT_BIT_XOR, PT_BITSHIFT_LEFT, PT_BITSHIFT_RIGHT, PT_BLOB_LENGTH, PT_BLOB_TO_BIT, PT_CASE, PT_CAST, PT_CEIL, PT_CHAR_LENGTH, PT_CHAR_TO_BLOB, PT_CHAR_TO_CLOB, PT_CHARSET, PT_CHR, PT_CLASSOID_ATTR, PT_CLOB_LENGTH, PT_CLOB_TO_CHAR, PT_COALESCE, PT_COLLATION, PT_CONCAT, PT_CONCAT_WS, PT_CONNECT_BY_ISCYCLE, PT_CONNECT_BY_ISLEAF, PT_CONNECT_BY_ROOT, PT_CONV, PT_CONV_TZ, PT_COS, PT_COT, PT_CRC32, PT_CURRENT_DATE, PT_CURRENT_DATETIME, PT_CURRENT_TIME, PT_CURRENT_TIMESTAMP, PT_CURRENT_USER, PT_CURRENT_VALUE, PT_DATABASE, PT_DATE_ADD, PT_DATE_FORMAT, PT_DATE_SUB, PT_DATEDIFF, PT_DATEF, PT_DAYF, PT_DAYOFMONTH, PT_DAYOFWEEK, PT_DAYOFYEAR, PT_DBTIMEZONE, pt_dbval_to_value(), PT_DECODE, PT_DECR, PT_DECRYPT, PT_DEFAULTF, PT_DEFINE_VARIABLE, PT_DEGREES, PT_DIFFERENCE, PT_DISK_SIZE, PT_DIV, PT_DIVIDE, PT_DOT_, PT_DRAND, PT_DRANDOM, PT_ENCRYPT, PT_ERRORc, PT_ERRORm, PT_ERRORmf, pt_evaluate_tree(), PT_EVALUATE_VARIABLE, PT_EXEC_STATS, PT_EXP, PT_EXPR, PT_EXPR_INFO_CAST_COLL_MODIFIER, PT_EXPR_INFO_CAST_NOFAIL, PT_EXPR_INFO_CAST_WRAP, PT_EXPR_INFO_IS_FLAGED, PT_EXTRACT, PT_FIELD, pt_find_value_of_label(), PT_FINDINSET, PT_FLOOR, PT_FORMAT, PT_FROM_BASE64, PT_FROM_TZ, PT_FROM_UNIXTIME, PT_FROMDAYS, PT_FUNCTION, PT_FUNCTION_HOLDER, pt_function_to_regu(), PT_GET_COLLATION_MODIFIER, pt_get_select_list(), PT_GREATEST, pt_has_error, PT_HEX, PT_HOST_VAR, PT_HOURF, PT_IF, PT_IFNULL, PT_INCR, PT_INDEX_CARDINALITY, PT_INDEX_PREFIX, PT_INET_ATON, PT_INET_NTOA, PT_INSERT, PT_INSERT_VALUE, PT_INST_NUM, PT_INSTR, PT_INTERNAL_ERROR, PT_INTERSECTION, pt_is_op_hv_late_bind(), PT_IS_POINTER_REF_NODE, PT_ISNULL, PT_LAST_DAY, PT_LAST_INSERT_ID, PT_LEAST, PT_LEFT, pt_length_of_select_list(), PT_LEVEL, PT_LIKE_LOWER_BOUND, PT_LIKE_UPPER_BOUND, PT_LIST_DBS, PT_LN, PT_LOCAL_TRANSACTION_ID, PT_LOCATE, PT_LOG, PT_LOG10, PT_LOG2, PT_LOWER, PT_LPAD, PT_LTRIM, pt_make_prim_data_type(), pt_make_prim_data_type_fortonum(), pt_make_regu_arith(), pt_make_regu_constant(), pt_make_regu_hostvar(), pt_make_regu_insert(), pt_make_regu_iscycle(), pt_make_regu_isleaf(), pt_make_regu_level(), pt_make_regu_numbering(), pt_make_regu_pred(), pt_make_regu_reguvalues_list(), pt_make_regu_subquery(), PT_MAKEDATE, PT_MAKETIME, PT_MD5, PT_META_ATTR, PT_META_CLASS, PT_METHOD_CALL, PT_MID, PT_MINUS, PT_MINUTEF, PT_MOD, PT_MODULUS, PT_MONTHF, PT_MONTHS_BETWEEN, PT_NAME, PT_NEW_TIME, PT_NEXT_VALUE, pt_node_data_type_to_db_domain(), PT_NODE_LIST, PT_NODE_PRINT_VALUE_TO_TEXT, pt_node_to_db_type(), PT_NORMAL, PT_NULLIF, PT_NVL, PT_NVL2, PT_OCTET_LENGTH, PT_OID_ATTR, PT_OID_OF_DUPLICATE_KEY, PT_ORDERBY_NUM, PT_PARAMETER, PT_PI, PT_PLUS, PT_POSITION, PT_POWER, PT_PRIOR, PT_QPRIOR, PT_QUARTERF, PT_RADIANS, PT_RAND, PT_RANDOM, PT_REPEAT, PT_REPLACE, PT_REQUIRES_HIERARCHICAL_QUERY, pt_resolve_serial(), PT_REVERSE, PT_RIGHT, PT_ROUND, PT_ROW_COUNT, PT_ROWNUM, PT_RPAD, PT_RTRIM, PT_SCHEMA, PT_SCHEMA_DEF, PT_SECONDF, PT_SECTOTIME, PT_SELECT, PT_SESSIONTIMEZONE, PT_SHA_ONE, PT_SHA_TWO, PT_SHARED, pt_show_binopcode(), PT_SIGN, PT_SIN, PT_SLEEP, PT_SPACE, PT_SQRT, PT_STR_TO_DATE, PT_STRCAT, PT_STRCMP, PT_SUBDATE, PT_SUBSTRING, PT_SUBSTRING_INDEX, PT_SYS_CONNECT_BY_PATH, PT_SYS_DATE, PT_SYS_DATETIME, PT_SYS_GUID, PT_SYS_TIME, PT_SYS_TIMESTAMP, PT_TAN, PT_TIME_FORMAT, PT_TIMEDIFF, PT_TIMEF, PT_TIMES, PT_TIMESTAMP, PT_TIMETOSEC, PT_TO_BASE64, PT_TO_CHAR, PT_TO_DATE, PT_TO_DATETIME, PT_TO_DATETIME_TZ, PT_TO_ENUMERATION_VALUE, pt_to_misc_operand(), PT_TO_NUMBER, pt_to_pred_expr(), pt_to_regu_resolve_domain(), pt_to_regu_variable(), PT_TO_TIME, PT_TO_TIMESTAMP, PT_TO_TIMESTAMP_TZ, PT_TODAYS, PT_TRACE_STATS, PT_TRANSLATE, PT_TRIM, PT_TRUNC, PT_TYPE_BIGINT, PT_TYPE_BLOB, PT_TYPE_CLOB, PT_TYPE_DATE, PT_TYPE_DATETIME, PT_TYPE_DATETIMETZ, PT_TYPE_DOUBLE, PT_TYPE_ENUMERATION, PT_TYPE_LOGICAL, PT_TYPE_MAYBE, PT_TYPE_NULL, PT_TYPE_NUMERIC, PT_TYPE_OBJECT, PT_TYPE_TIME, PT_TYPE_TIMESTAMP, PT_TYPE_TIMESTAMPTZ, PT_TYPE_VARBIT, PT_TYPE_VARCHAR, PT_TYPEOF, PT_TZ_OFFSET, PT_UNARY_MINUS, PT_UNION, PT_UNIX_TIMESTAMP, PT_UPPER, PT_USER, PT_UTC_DATE, PT_UTC_TIME, PT_UTC_TIMESTAMP, PT_VALUE, pt_value_to_db(), PT_VERSION, PT_WEEKDAY, PT_WEEKF, PT_WIDTH_BUCKET, pt_xasl_data_type_to_domain(), pt_xasl_node_to_domain(), PT_YEARF, pt_query_info::q, pt_expr_info::qualifier, pt_statement_info::query, symbol_info::query_node, regu_alloc(), REGU_VARIABLE_APPLY_COLLATION, REGU_VARIABLE_FIELD_COMPARE, REGU_VARIABLE_FIELD_NESTED, REGU_VARIABLE_HIDDEN_COLUMN, REGU_VARIABLE_SET_FLAG(), tp_domain::scale, pt_query_info::select, pt_data_value::str, pt_value_info::string_type, strlen, parser_context::symbols, T_ABS, T_ACOS, T_ADD, T_ADD_MONTHS, T_ADDDATE, T_ADDTIME, T_AES_DECRYPT, T_AES_ENCRYPT, T_ASCII, T_ASIN, T_ATAN, T_ATAN2, T_BIN, T_BIT_AND, T_BIT_COUNT, T_BIT_LENGTH, T_BIT_NOT, T_BIT_OR, T_BIT_TO_BLOB, T_BIT_XOR, T_BITSHIFT_LEFT, T_BITSHIFT_RIGHT, T_BLOB_TO_BIT, T_CASE, T_CAST, T_CAST_NOFAIL, T_CAST_WRAP, T_CEIL, T_CHAR_LENGTH, T_CHAR_TO_CLOB, T_CHARSET, T_CHR, T_CLOB_TO_CHAR, T_COALESCE, T_COLLATION, T_CONCAT, T_CONCAT_WS, T_CONNECT_BY_ROOT, T_CONV, T_CONV_TZ, T_COS, T_COT, T_CRC32, T_CURRENT_DATE, T_CURRENT_DATETIME, T_CURRENT_TIME, T_CURRENT_TIMESTAMP, T_CURRENT_VALUE, T_DATE, T_DATE_ADD, T_DATE_FORMAT, T_DATE_SUB, T_DATEDIFF, T_DAY, T_DAYOFWEEK, T_DAYOFYEAR, T_DBTIMEZONE, T_DECODE, T_DECR, T_DEFAULT, T_DEFINE_VARIABLE, T_DEGREES, T_DISK_SIZE, T_DIV, T_DRAND, T_DRANDOM, T_EVALUATE_VARIABLE, T_EXEC_STATS, T_EXP, T_EXTRACT, T_FIELD, T_FINDINSET, T_FLOOR, T_FORMAT, T_FROM_BASE64, T_FROM_TZ, T_FROM_UNIXTIME, T_FROMDAYS, T_GREATEST, T_HEX, T_HOUR, T_IF, T_IFNULL, T_INCR, T_INDEX_CARDINALITY, T_INDEX_PREFIX, T_INET_ATON, T_INET_NTOA, T_INSTR, T_INTDIV, T_INTMOD, T_ISNULL, T_LAST_DAY, T_LAST_INSERT_ID, T_LEAST, T_LEFT, T_LIKE_LOWER_BOUND, T_LIKE_UPPER_BOUND, T_LIST_DBS, T_LN, T_LOB_LENGTH, T_LOCAL_TRANSACTION_ID, T_LOCATE, T_LOG, T_LOG10, T_LOG2, T_LOWER, T_LPAD, T_LTRIM, T_MAKEDATE, T_MAKETIME, T_MD5, T_MID, T_MINUTE, T_MOD, T_MONTH, T_MONTHS_BETWEEN, T_MUL, T_NEW_TIME, T_NEXT_VALUE, T_NULLIF, T_NVL, T_NVL2, T_OCTET_LENGTH, T_PI, T_POSITION, T_POWER, T_PRIOR, T_QPRIOR, T_QUARTER, T_RADIANS, T_RAND, T_RANDOM, T_REPEAT, T_REPLACE, T_REVERSE, T_RIGHT, T_ROUND, T_ROW_COUNT, T_RPAD, T_RTRIM, T_SECOND, T_SECTOTIME, T_SESSIONTIMEZONE, T_SHA_ONE, T_SHA_TWO, T_SIGN, T_SIN, T_SLEEP, T_SPACE, T_SQRT, T_STR_TO_DATE, T_STRCAT, T_STRCMP, T_SUB, T_SUBDATE, T_SUBSTRING, T_SUBSTRING_INDEX, T_SYS_CONNECT_BY_PATH, T_SYS_DATE, T_SYS_DATETIME, T_SYS_GUID, T_SYS_TIME, T_SYS_TIMESTAMP, T_TAN, T_TIME, T_TIME_FORMAT, T_TIMEDIFF, T_TIMESTAMP, T_TIMETOSEC, T_TO_BASE64, T_TO_CHAR, T_TO_DATE, T_TO_DATETIME, T_TO_DATETIME_TZ, T_TO_ENUMERATION_VALUE, T_TO_NUMBER, T_TO_TIME, T_TO_TIMESTAMP, T_TO_TIMESTAMP_TZ, T_TODAYS, T_TRACE_STATS, T_TRANSLATE, T_TRIM, T_TRUNC, T_TYPEOF, T_TZ_OFFSET, T_UNIX_TIMESTAMP, T_UNMINUS, T_UPPER, T_UTC_DATE, T_UTC_TIME, T_UTC_TIMESTAMP, T_WEEK, T_WEEKDAY, T_WIDTH_BUCKET, T_YEAR, tp_domain_cache(), TP_DOMAIN_COLL_LEAVE, tp_domain_resolve_value(), TYPE_CONSTANT, parser_node::type_enum, UNBOX_AS_TABLE, ustr_upper(), pt_insert_value_info::value, pt_statement_info::value, pt_query_info::xasl, XASL_NO_FIXED_SCAN, and XASL_SET_FLAG.

Referenced by pt_fix_buildlist_aggregate_cume_dist_percent_rank(), pt_join_term_to_regu_variable(), pt_make_pred_term_is(), pt_make_regu_reguvalues_list(), pt_plan_cte(), pt_to_aggregate_node(), pt_to_analytic_node(), pt_to_buildlist_proc(), pt_to_delete_xasl(), pt_to_func_pred(), pt_to_json_table_spec_list(), pt_to_key_limit(), pt_to_list_key(), pt_to_odku_info(), pt_to_outlist(), pt_to_pred_expr_local_with_arg(), pt_to_range_key(), pt_to_rangelist_key(), pt_to_regu_variable(), pt_to_regu_variable_list(), pt_to_set_expr_table_spec_list(), pt_to_single_key(), pt_to_union_proc(), pt_to_update_xasl(), and qo_get_limit_from_eval_term().

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 
)
static
static SORT_LIST * pt_to_sort_list ( PARSER_CONTEXT parser,
PT_NODE node_list,
PT_NODE col_list,
SORT_LIST_MODE  sort_mode 
)
static
static XASL_NODE * pt_to_uncorr_subquery_list ( PARSER_CONTEXT parser,
PT_NODE node 
)
static

Definition at line 13281 of file xasl_generation.c.

References uncorr_info::level, NULL, parser_walk_leaves(), pt_uncorr_post(), pt_uncorr_pre(), and uncorr_info::xasl.

Referenced by pt_set_aptr().

Here is the caller graph for this function:

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 
)

Definition at line 19560 of file xasl_generation.c.

References parser_node::alias_print, pt_expr_info::arg1, pt_expr_info::arg2, pt_expr_info::arg3, assert, tp_domain::codeset, tp_domain::collation_id, parser_node::data_type, db_value_domain_default(), tp_domain::enumeration, pt_statement_info::expr, pt_select_info::from, pt_select_info::group_by, pt_select_info::hint, parser_node::info, pt_select_info::list, mq_is_outer_join_spec(), pt_statement_info::name, parser_node::next, NO_ERROR, NULL, OID_NAME, pt_expr_info::op, pt_query_info::order_by, pt_query_info::orderby_for, parser_append_node(), parser_copy_tree_list(), parser_free_node(), parser_free_tree(), parser_new_node(), parser_print_tree(), pr_clear_value(), tp_domain::precision, pt_add_row_classoid_name(), pt_add_row_oid_name(), PT_ASC, pt_check_order_by(), pt_convert_to_logical_expr(), pt_dbval_to_value(), PT_EXPR, pt_has_analytic(), PT_HINT_NO_HASH_AGGREGATE, PT_IF, PT_INTERNAL_ERROR, PT_ISNULL, pt_mark_spec_list_for_update_clause(), PT_NODE_MOVE_NUMBER_OUTERLINK, PT_SELECT, PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_IS_UPD_DEL_QUERY, PT_SELECT_INFO_MULTI_UPDATE_AGG, PT_SELECT_INFO_MVCC_LOCK_NEEDED, PT_SELECT_INFO_NO_STRICT_OID_CHECK, PT_SELECT_INFO_SET_FLAG, PT_SORT_SPEC, PT_SPEC, PT_SPEC_FLAG_DELETE, PT_SPEC_FLAG_UPDATE, pt_spec_to_oid_attr(), pt_type_enum_to_db(), PT_TYPE_NONE, PT_TYPE_NULL, pt_value_to_db(), pt_xasl_node_to_domain(), pt_query_info::q, pt_statement_info::query, S_UPDATE, tp_domain::scale, pt_query_info::scan_op_type, pt_query_info::select, pt_name_info::spec_id, tp_domain_resolve_default(), parser_node::type_enum, pt_query_info::upd_del_class_cnt, pt_select_info::using_index, pt_select_info::where, and pt_query_info::with.

Referenced by do_prepare_delete(), do_prepare_update(), get_select_list_to_update(), pt_to_delete_xasl(), pt_to_update_xasl(), and select_delete_list().

Here is the caller graph for this function:

XASL_NODE* pt_to_update_xasl ( PARSER_CONTEXT parser,
PT_NODE statement,
PT_NODE **  non_null_attrs 
)

Definition at line 20482 of file xasl_generation.c.

References parser_node::alias_print, xasl_node::aptr_list, pt_expr_info::arg2, ARG_FILE_LINE, assert, pt_update_info::assignment, pt_assignments_helper::assignment, update_proc_node::assigns, upddel_class_info::att_id, update_assignment::att_idx, upddel_class_info::class_hfid, xasl_node::class_locks, upddel_class_info::class_oid, xasl_node::class_oid_list, pt_update_info::class_specs, update_proc_node::classes, cleanup(), update_assignment::cls_idx, update_assignment::constant, COPY_OID, xasl_node::creator_oid, db_attribute_domain(), db_get_attribute(), db_get_user(), DB_IS_NULL, pt_name_info::db_object, xasl_node::dbval_cnt, pt_spec_info::derived_table, DOMAIN_COMPATIBLE, er_errid(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_HEAP_UNKNOWN_OBJECT, ER_OBJ_ATTRIBUTE_CANT_BE_NULL, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), EXCLUDE_HIDDEN_COLUMNS, pt_statement_info::expr, xasl_node::flag, pt_spec_info::flag, pt_spec_info::flat_entity_list, pt_select_info::from, pt_select_info::group_by, upddel_class_info::has_uniques, pt_update_info::hint, pt_spec_info::id, parser_node::info, pt_assignments_helper::is_rhs_const, pt_assignments_helper::lhs, pt_update_info::limit, xasl_node::limit_offset, xasl_node::limit_row_count, pt_select_info::list, locator_flush_class(), mq_translate(), upddel_class_info::mvcc_extra_assign_reev, update_proc_node::mvcc_reev_classes, pt_query_info::mvcc_reev_extra_cls_cnt, xasl_node::n_oid_list, pt_statement_info::name, upddel_class_info::needs_pruning, parser_node::next, NO_ERROR, update_proc_node::no_logging, parser_node::node_type, NULL, update_proc_node::num_assign_reev_classes, update_proc_node::num_assigns, upddel_class_info::num_attrs, update_proc_node::num_classes, upddel_class_info::num_extra_assign_reev, update_proc_node::num_orderby_keys, update_proc_node::num_reev_classes, upddel_class_info::num_subclasses, OID_SET_NULL, pt_update_info::order_by, pt_update_info::orderby_for, pt_name_info::original, p, parser_free_tree(), xasl_node::proc, pt_append_omitted_on_update_expr_assignments(), pt_copy_upddel_hints_to_select(), pt_get_assignment_lists(), pt_get_next_assignment(), pt_has_error, pt_has_reev_in_subquery(), PT_HINT_LK_TIMEOUT, PT_HINT_NO_LOGGING, pt_init_assignments_helper(), PT_INTERNAL_ERROR, PT_IS_HINT_NODE, PT_IS_SPEC_FLAG_SET, pt_length_of_list(), pt_length_of_select_list(), pt_make_aptr_parent_node(), pt_mark_spec_list_for_update_clause(), pt_mvcc_flag_specs_assign_reev(), pt_mvcc_flag_specs_cond_reev(), pt_mvcc_prepare_upd_del_select(), pt_mvcc_set_spec_assign_reev_extra_indexes(), pt_name_equal(), pt_report_to_ersys(), pt_report_to_ersys_with_statement(), pt_restore_assignment_links(), PT_SELECT_INFO_IS_FLAGED, PT_SELECT_INFO_MVCC_LOCK_NEEDED, PT_SELECT_INFO_SET_FLAG, PT_SEMANTIC, PT_SPEC, PT_SPEC_FLAG_HAS_UNIQUE, PT_SPEC_FLAG_MVCC_ASSIGN_REEV, PT_SPEC_FLAG_MVCC_COND_REEV, PT_SPEC_FLAG_UPDATE, pt_to_constraint_pred(), pt_to_regu_variable(), pt_to_upd_del_query(), pt_value_to_db(), pt_query_info::q, pt_statement_info::query, xasl_node::query_alias, pt_spec_info::range_var, regu_alloc(), regu_array_alloc(), regu_int_array_alloc(), regu_oid_array_alloc(), S_UPDATE, pt_update_info::search_cond, pt_query_info::select, sm_att_id(), sm_get_ch_heap(), sm_is_partitioned_class(), sm_partitioned_class_type(), pt_update_info::spec, pt_statement_info::spec, pt_name_info::spec_id, xasl_node::tcard_list, tp_domain_status_er_set(), tp_value_auto_cast(), UNBOX_AS_VALUE, pt_query_info::upd_del_class_cnt, xasl_node::update, pt_statement_info::update, UPDATE_PROC, pt_update_info::using_index, update_proc_node::wait_msecs, pt_update_info::waitsecs_hint, pt_update_info::with, ws_identifier(), XASL_CLEAR_FLAG, XASL_INCLUDES_TDE_CLASS, XASL_SET_FLAG, and XASL_WAIT_MSECS_NOCHANGE.

Referenced by do_prepare_update(), and statement_to_update_xasl().

Here is the caller graph for this function:

VAL_LIST* pt_to_val_list ( PARSER_CONTEXT parser,
UINTPTR  id 
)
static PT_NODE * pt_uncorr_pre ( PARSER_CONTEXT parser,
PT_NODE node,
void *  arg,
int *  continue_walk 
)
static
static TP_DOMAIN * pt_xasl_data_type_to_domain ( PARSER_CONTEXT parser,
const PT_NODE node 
)
static

Definition at line 2246 of file xasl_generation.c.

References db_datetime::date, db_date_encode(), db_datetime_decode(), db_strftime(), NULL, pt_data_type_to_db_domain(), db_datetime::time, and tp_domain_cache().

Referenced by pt_to_regu_variable().

Here is the caller graph for this function:

TP_DOMAIN* pt_xasl_type_enum_to_domain ( const PT_TYPE_ENUM  type)

Definition at line 2206 of file xasl_generation.c.

References pt_type_enum_to_db_domain(), and tp_domain_cache().

Referenced by pt_coerce_value_internal(), pt_eval_expr_type(), and pt_make_regu_hostvar().

Here is the caller graph for this function:

SORT_LIST* ptqo_single_orderby ( PARSER_CONTEXT parser)

Definition at line 14218 of file xasl_generation.c.

References sort_list::next, NULL, and regu_alloc().

Referenced by make_mergelist_proc().

Here is the caller graph for this function:

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

Definition at line 4432 of file query_planner.c.

References qo_plan::vtbl.

Referenced by pt_plan_query(), qo_follow_info(), qo_join_info(), qo_plan_dump(), and qo_sort_info().

Here is the caller graph for this function:

static int set_has_objs ( DB_SET seq)
static

Definition at line 5914 of file xasl_generation.c.

References db_seq_size(), db_set_get(), DB_TYPE_OBJECT, db_value_clear(), DB_VALUE_DOMAIN_TYPE, and i.

Referenced by pt_make_regu_constant().

Here is the caller graph for this function:

Variable Documentation

ANALYTIC_KEY_METADOMAIN analitic_key_metadomain_Initializer = { {0}, 0, 0, {NULL}, 0, {NULL}, false, 0, NULL }
static

Definition at line 149 of file xasl_generation.c.

Referenced by pt_optimize_analytic_list().

const int OID_LIST_GROWTH = 10
static
char* query_Plan_dump_filename = NULL

Definition at line 364 of file xasl_generation.c.

Referenced by db_query_plan_dump_file(), and parser_generate_xasl_proc().

XASL_SUPP_INFO xasl_Supp_info = { NULL, NULL, NULL, NULL, 0, 0, 0 }
static

Definition at line 366 of file xasl_generation.c.