CUBRID Engine  latest
xasl_to_stream.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "xasl_to_stream.h"
#include "error_manager.h"
#include "server_interface.h"
#include "class_object.h"
#include "object_primitive.h"
#include "work_space.h"
#include "memory_alloc.h"
#include "xasl.h"
#include "xasl_aggregate.hpp"
#include "xasl_analytic.hpp"
#include "xasl_predicate.hpp"
#include "xasl_stream.hpp"
#include "xasl_unpack_info.hpp"
Include dependency graph for xasl_to_stream.c:

Go to the source code of this file.

Classes

struct  xts_visited_ptr
 

Macros

#define BYTE_SIZE   OR_INT_SIZE
 
#define LONG_SIZE   OR_INT_SIZE
 
#define PTR_SIZE   OR_INT_SIZE
 
#define pack_char   or_pack_int
 
#define pack_long   or_pack_int
 
#define OFFSET_BUFFER_SIZE   32
 

Typedefs

typedef struct xts_visited_ptr XTS_VISITED_PTR
 

Functions

static int xts_save_aggregate_type (const AGGREGATE_TYPE *aggregate)
 
static int xts_save_function_type (const FUNCTION_TYPE *function)
 
static int xts_save_analytic_type (const ANALYTIC_TYPE *analytic)
 
static int xts_save_analytic_eval_type (const ANALYTIC_EVAL_TYPE *analytic)
 
static int xts_save_srlist_id (const QFILE_SORTED_LIST_ID *sort_list_id)
 
static int xts_save_list_id (const QFILE_LIST_ID *list_id)
 
static int xts_save_arith_type (const ARITH_TYPE *arithmetic)
 
static int xts_save_indx_info (const INDX_INFO *indx_info)
 
static int xts_save_outptr_list (const OUTPTR_LIST *outptr_list)
 
static int xts_save_selupd_list (const SELUPD_LIST *selupd_list)
 
static int xts_save_pred_expr (const PRED_EXPR *ptr)
 
static int xts_save_regu_variable (const REGU_VARIABLE *ptr)
 
static int xts_save_regu_variable_list (const REGU_VARIABLE_LIST ptr)
 
static int xts_save_regu_varlist_list (const REGU_VARLIST_LIST ptr)
 
static int xts_save_sort_list (const SORT_LIST *ptr)
 
static int xts_save_string (const char *str)
 
static int xts_save_val_list (const VAL_LIST *ptr)
 
static int xts_save_db_value (const DB_VALUE *ptr)
 
static int xts_save_xasl_node (const XASL_NODE *ptr)
 
static int xts_save_filter_pred_node (const PRED_EXPR_WITH_CONTEXT *pred)
 
static int xts_save_func_pred (const FUNC_PRED *ptr)
 
static int xts_save_cache_attrinfo (const HEAP_CACHE_ATTRINFO *ptr)
 
template<typename T >
static int xts_save (const T &t)
 
template<typename T >
static void xts_debug_check (const T &t, char *pack_start, const char *pack_end)
 
template<typename T >
static void xts_debug_clear (T &t)
 
static int xts_save_db_value_array (DB_VALUE **ptr, int size)
 
static int xts_save_int_array (int *ptr, int size)
 
static int xts_save_hfid_array (HFID *ptr, int size)
 
static int xts_save_oid_array (OID *ptr, int size)
 
static int xts_save_method_sig_list (const METHOD_SIG_LIST *ptr)
 
static int xts_save_method_sig (const METHOD_SIG *ptr, int size)
 
static int xts_save_key_range_array (const KEY_RANGE *ptr, int size)
 
static int xts_save_upddel_class_info_array (const UPDDEL_CLASS_INFO *classes, int nelements)
 
static int xts_save_update_assignment_array (const UPDATE_ASSIGNMENT *assigns, int nelements)
 
static int xts_save_odku_info (const ODKU_INFO *odku_info)
 
static char * xts_process (char *ptr, const json_table_column &json_table_col)
 
static char * xts_process (char *ptr, const json_table_node &json_table_node)
 
static char * xts_process (char *ptr, const json_table_spec_node &set_spec)
 
static char * xts_process_xasl_node (char *ptr, const XASL_NODE *xasl)
 
static char * xts_process_xasl_header (char *ptr, const XASL_NODE_HEADER header)
 
static char * xts_process_filter_pred_node (char *ptr, const PRED_EXPR_WITH_CONTEXT *pred)
 
static char * xts_process_func_pred (char *ptr, const FUNC_PRED *xasl)
 
static char * xts_process_cache_attrinfo (char *ptr)
 
static char * xts_process_union_proc (char *ptr, const UNION_PROC_NODE *union_proc)
 
static char * xts_process_fetch_proc (char *ptr, const FETCH_PROC_NODE *obj_set_fetch_proc)
 
static char * xts_process_buildlist_proc (char *ptr, const BUILDLIST_PROC_NODE *build_list_proc)
 
static char * xts_process_buildvalue_proc (char *ptr, const BUILDVALUE_PROC_NODE *build_value_proc)
 
static char * xts_process_mergelist_proc (char *ptr, const MERGELIST_PROC_NODE *merge_list_info)
 
static char * xts_process_ls_merge_info (char *ptr, const QFILE_LIST_MERGE_INFO *qfile_list_merge_info)
 
static char * xts_save_upddel_class_info (char *ptr, const UPDDEL_CLASS_INFO *upd_cls)
 
static char * xts_save_update_assignment (char *ptr, const UPDATE_ASSIGNMENT *assign)
 
static char * xts_process_update_proc (char *ptr, const UPDATE_PROC_NODE *update_info)
 
static char * xts_process_delete_proc (char *ptr, const DELETE_PROC_NODE *delete_proc)
 
static char * xts_process_insert_proc (char *ptr, const INSERT_PROC_NODE *insert_proc)
 
static char * xts_process_merge_proc (char *ptr, const MERGE_PROC_NODE *merge_info)
 
static char * xts_process_cte_proc (char *ptr, const CTE_PROC_NODE *cte_proc)
 
static char * xts_process_outptr_list (char *ptr, const OUTPTR_LIST *outptr_list)
 
static char * xts_process_selupd_list (char *ptr, const SELUPD_LIST *selupd_list)
 
static char * xts_process_pred_expr (char *ptr, const PRED_EXPR *pred_expr)
 
static char * xts_process_pred (char *ptr, const PRED *pred)
 
static char * xts_process_eval_term (char *ptr, const EVAL_TERM *eval_term)
 
static char * xts_process_comp_eval_term (char *ptr, const COMP_EVAL_TERM *comp_eval_term)
 
static char * xts_process_alsm_eval_term (char *ptr, const ALSM_EVAL_TERM *alsm_eval_term)
 
static char * xts_process_like_eval_term (char *ptr, const LIKE_EVAL_TERM *like_eval_term)
 
static char * xts_process_rlike_eval_term (char *ptr, const RLIKE_EVAL_TERM *rlike_eval_term)
 
static char * xts_process_access_spec_type (char *ptr, const ACCESS_SPEC_TYPE *access_spec)
 
static char * xts_process_indx_info (char *ptr, const INDX_INFO *indx_info)
 
static char * xts_process_key_info (char *ptr, const KEY_INFO *key_info)
 
static char * xts_process_cls_spec_type (char *ptr, const CLS_SPEC_TYPE *cls_spec)
 
static char * xts_process_list_spec_type (char *ptr, const LIST_SPEC_TYPE *list_spec)
 
static char * xts_process_showstmt_spec_type (char *ptr, const SHOWSTMT_SPEC_TYPE *list_spec)
 
static char * xts_process_set_spec_type (char *ptr, const SET_SPEC_TYPE *set_spec)
 
static char * xts_process_json_table_column_behavior (char *ptr, const json_table_column_behavior *behavior)
 
static char * xts_process_method_spec_type (char *ptr, const METHOD_SPEC_TYPE *method_spec)
 
static char * xts_process_rlist_spec_type (char *ptr, const LIST_SPEC_TYPE *list_spec)
 
static char * xts_process_list_id (char *ptr, const QFILE_LIST_ID *list_id)
 
static char * xts_process_val_list (char *ptr, const VAL_LIST *val_list)
 
static char * xts_process_regu_variable (char *ptr, const REGU_VARIABLE *regu_var)
 
static char * xts_pack_regu_variable_value (char *ptr, const REGU_VARIABLE *regu_var)
 
static char * xts_process_attr_descr (char *ptr, const ATTR_DESCR *attr_descr)
 
static char * xts_process_pos_descr (char *ptr, const QFILE_TUPLE_VALUE_POSITION *position_descr)
 
static char * xts_process_db_value (char *ptr, const DB_VALUE *value)
 
static char * xts_process_arith_type (char *ptr, const ARITH_TYPE *arith)
 
static char * xts_process_aggregate_type (char *ptr, const AGGREGATE_TYPE *aggregate)
 
static char * xts_process_analytic_type (char *ptr, const ANALYTIC_TYPE *analytic)
 
static char * xts_process_analytic_eval_type (char *ptr, const ANALYTIC_EVAL_TYPE *analytic)
 
static char * xts_process_function_type (char *ptr, const FUNCTION_TYPE *function)
 
static char * xts_process_srlist_id (char *ptr, const QFILE_SORTED_LIST_ID *sort_list_id)
 
static char * xts_process_sort_list (char *ptr, const SORT_LIST *sort_list)
 
static char * xts_process_method_sig_list (char *ptr, const METHOD_SIG_LIST *method_sig_list)
 
static char * xts_process_method_sig (char *ptr, const METHOD_SIG *method_sig, int size)
 
static char * xts_process_connectby_proc (char *ptr, const CONNECTBY_PROC_NODE *connectby_proc)
 
static char * xts_process_regu_value_list (char *ptr, const REGU_VALUE_LIST *regu_value_list)
 
static int xts_sizeof (const json_table_column &ptr)
 
static int xts_sizeof (const json_table_node &ptr)
 
static int xts_sizeof (const json_table_spec_node &ptr)
 
static int xts_sizeof_xasl_node (const XASL_NODE *ptr)
 
static int xts_sizeof_filter_pred_node (const PRED_EXPR_WITH_CONTEXT *ptr)
 
static int xts_sizeof_func_pred (const FUNC_PRED *ptr)
 
static int xts_sizeof_cache_attrinfo (const HEAP_CACHE_ATTRINFO *ptr)
 
static int xts_sizeof_union_proc (const UNION_PROC_NODE *ptr)
 
static int xts_sizeof_fetch_proc (const FETCH_PROC_NODE *ptr)
 
static int xts_sizeof_buildlist_proc (const BUILDLIST_PROC_NODE *ptr)
 
static int xts_sizeof_buildvalue_proc (const BUILDVALUE_PROC_NODE *ptr)
 
static int xts_sizeof_mergelist_proc (const MERGELIST_PROC_NODE *ptr)
 
static int xts_sizeof_ls_merge_info (const QFILE_LIST_MERGE_INFO *ptr)
 
static int xts_sizeof_upddel_class_info (const UPDDEL_CLASS_INFO *upd_cls)
 
static int xts_sizeof_update_assignment (const UPDATE_ASSIGNMENT *assign)
 
static int xts_sizeof_odku_info (const ODKU_INFO *odku_info)
 
static int xts_sizeof_update_proc (const UPDATE_PROC_NODE *ptr)
 
static int xts_sizeof_delete_proc (const DELETE_PROC_NODE *ptr)
 
static int xts_sizeof_insert_proc (const INSERT_PROC_NODE *ptr)
 
static int xts_sizeof_merge_proc (const MERGE_PROC_NODE *ptr)
 
static int xts_sizeof_outptr_list (const OUTPTR_LIST *ptr)
 
static int xts_sizeof_selupd_list (const SELUPD_LIST *ptr)
 
static int xts_sizeof_pred_expr (const PRED_EXPR *ptr)
 
static int xts_sizeof_pred (const PRED *ptr)
 
static int xts_sizeof_eval_term (const EVAL_TERM *ptr)
 
static int xts_sizeof_comp_eval_term (const COMP_EVAL_TERM *ptr)
 
static int xts_sizeof_alsm_eval_term (const ALSM_EVAL_TERM *ptr)
 
static int xts_sizeof_like_eval_term (const LIKE_EVAL_TERM *ptr)
 
static int xts_sizeof_rlike_eval_term (const RLIKE_EVAL_TERM *ptr)
 
static int xts_sizeof_access_spec_type (const ACCESS_SPEC_TYPE *ptr)
 
static int xts_sizeof_indx_info (const INDX_INFO *ptr)
 
static int xts_sizeof_key_info (const KEY_INFO *ptr)
 
static int xts_sizeof_cls_spec_type (const CLS_SPEC_TYPE *ptr)
 
static int xts_sizeof_list_spec_type (const LIST_SPEC_TYPE *ptr)
 
static int xts_sizeof_showstmt_spec_type (const SHOWSTMT_SPEC_TYPE *ptr)
 
static int xts_sizeof_set_spec_type (const SET_SPEC_TYPE *ptr)
 
static int xts_sizeof_method_spec_type (const METHOD_SPEC_TYPE *ptr)
 
static int xts_sizeof_json_table_column_behavior (const json_table_column_behavior *behavior)
 
static int xts_sizeof_list_id (const QFILE_LIST_ID *ptr)
 
static int xts_sizeof_val_list (const VAL_LIST *ptr)
 
static int xts_sizeof_regu_variable (const REGU_VARIABLE *ptr)
 
static int xts_get_regu_variable_value_size (const REGU_VARIABLE *ptr)
 
static int xts_sizeof_attr_descr (const ATTR_DESCR *ptr)
 
static int xts_sizeof_pos_descr (const QFILE_TUPLE_VALUE_POSITION *ptr)
 
static int xts_sizeof_db_value (const DB_VALUE *ptr)
 
static int xts_sizeof_arith_type (const ARITH_TYPE *ptr)
 
static int xts_sizeof_aggregate_type (const AGGREGATE_TYPE *ptr)
 
static int xts_sizeof_function_type (const FUNCTION_TYPE *ptr)
 
static int xts_sizeof_analytic_type (const ANALYTIC_TYPE *ptr)
 
static int xts_sizeof_analytic_eval_type (const ANALYTIC_EVAL_TYPE *ptr)
 
static int xts_sizeof_srlist_id (const QFILE_SORTED_LIST_ID *ptr)
 
static int xts_sizeof_sort_list (const SORT_LIST *ptr)
 
static int xts_sizeof_method_sig_list (const METHOD_SIG_LIST *ptr)
 
static int xts_sizeof_method_sig (const METHOD_SIG *ptr)
 
static int xts_sizeof_connectby_proc (const CONNECTBY_PROC_NODE *ptr)
 
static int xts_sizeof_regu_value_list (const REGU_VALUE_LIST *regu_value_list)
 
static int xts_sizeof_cte_proc (const CTE_PROC_NODE *ptr)
 
static int xts_mark_ptr_visited (const void *ptr, int offset)
 
static int xts_get_offset_visited_ptr (const void *ptr)
 
static void xts_free_visited_ptrs (void)
 
static int xts_reserve_location_in_stream (int size)
 
static int xts_sizeof_regu_variable_list (const REGU_VARIABLE_LIST regu_var_list)
 
static char * xts_process_regu_variable_list (char *ptr, const REGU_VARIABLE_LIST regu_var_list)
 
int xts_map_xasl_to_stream (const XASL_NODE *xasl_tree, XASL_STREAM *stream)
 
int xts_map_filter_pred_to_stream (const PRED_EXPR_WITH_CONTEXT *pred, char **pred_stream, int *pred_stream_size)
 
int xts_map_func_pred_to_stream (const FUNC_PRED *xasl_tree, char **xasl_stream, int *xasl_stream_size)
 

Variables

static char * xts_Stream_buffer = NULL
 
static int xts_Stream_size = 0
 
static int xts_Free_offset_in_stream = 0
 
static XTS_VISITED_PTRxts_Ptr_blocks [MAX_PTR_BLOCKS] = { 0 }
 
static int xts_Ptr_lwm [MAX_PTR_BLOCKS] = { 0 }
 
static int xts_Ptr_max [MAX_PTR_BLOCKS] = { 0 }
 
static int xts_Xasl_errcode = NO_ERROR
 

Macro Definition Documentation

#define BYTE_SIZE   OR_INT_SIZE

Definition at line 48 of file xasl_to_stream.c.

#define LONG_SIZE   OR_INT_SIZE

Definition at line 49 of file xasl_to_stream.c.

#define OFFSET_BUFFER_SIZE   32

Definition at line 2512 of file xasl_to_stream.c.

Referenced by xts_save_regu_variable_list(), and xts_save_regu_varlist_list().

#define pack_char   or_pack_int

Definition at line 51 of file xasl_to_stream.c.

#define pack_long   or_pack_int

Definition at line 52 of file xasl_to_stream.c.

Typedef Documentation

Definition at line 55 of file xasl_to_stream.c.

Function Documentation

template<typename T >
static void xts_debug_check ( const T &  t,
char *  pack_start,
const char *  pack_end 
)
static
template<typename T >
static void xts_debug_clear ( T &  t)
static

Definition at line 7590 of file xasl_to_stream.c.

Referenced by xts_debug_check().

Here is the caller graph for this function:

static void xts_free_visited_ptrs ( void  )
static

Definition at line 7405 of file xasl_to_stream.c.

References i, MAX_PTR_BLOCKS, and xts_Ptr_lwm.

Referenced by xts_map_filter_pred_to_stream(), xts_map_func_pred_to_stream(), and xts_map_xasl_to_stream().

Here is the caller graph for this function:

int xts_map_func_pred_to_stream ( const FUNC_PRED xasl_tree,
char **  xasl_stream,
int *  xasl_stream_size 
)
static char * xts_process_alsm_eval_term ( char *  ptr,
const ALSM_EVAL_TERM alsm_eval_term 
)
static
static char * xts_process_analytic_eval_type ( char *  ptr,
const ANALYTIC_EVAL_TYPE analytic 
)
static
static char * xts_process_attr_descr ( char *  ptr,
const ATTR_DESCR attr_descr 
)
static
static char * xts_process_buildlist_proc ( char *  ptr,
const BUILDLIST_PROC_NODE build_list_proc 
)
static
static char * xts_process_cache_attrinfo ( char *  ptr)
static

Definition at line 3169 of file xasl_to_stream.c.

References or_pack_int(), and xts_visited_ptr::ptr.

Referenced by xts_save_cache_attrinfo().

Here is the caller graph for this function:

static char * xts_process_comp_eval_term ( char *  ptr,
const COMP_EVAL_TERM comp_eval_term 
)
static
static char * xts_process_cte_proc ( char *  ptr,
const CTE_PROC_NODE cte_proc 
)
static
static char * xts_process_db_value ( char *  ptr,
const DB_VALUE value 
)
static

Definition at line 5130 of file xasl_to_stream.c.

References or_pack_db_value(), and xts_visited_ptr::ptr.

Referenced by xts_pack_regu_variable_value(), xts_process_json_table_column_behavior(), and xts_save_db_value().

Here is the caller graph for this function:

static char * xts_process_fetch_proc ( char *  ptr,
const FETCH_PROC_NODE obj_set_fetch_proc 
)
static
static char * xts_process_func_pred ( char *  ptr,
const FUNC_PRED xasl 
)
static
static char * xts_process_function_type ( char *  ptr,
const FUNCTION_TYPE function 
)
static

Definition at line 5276 of file xasl_to_stream.c.

References ER_FAILED, NULL, xts_visited_ptr::offset, or_pack_int(), xts_visited_ptr::ptr, xts_save_db_value(), and xts_save_regu_variable_list().

Referenced by xts_save_function_type().

Here is the caller graph for this function:

static char * xts_process_json_table_column_behavior ( char *  ptr,
const json_table_column_behavior behavior 
)
static
static char * xts_process_like_eval_term ( char *  ptr,
const LIKE_EVAL_TERM like_eval_term 
)
static
static char * xts_process_list_id ( char *  ptr,
const QFILE_LIST_ID list_id 
)
static

Definition at line 4931 of file xasl_to_stream.c.

References assert_release, qfile_tuple_value_type_list::domp, NULL, or_pack_listid(), qfile_tuple_value_type_list::type_cnt, and qfile_list_id::type_list.

Referenced by xts_save_list_id().

Here is the caller graph for this function:

static char * xts_process_merge_proc ( char *  ptr,
const MERGE_PROC_NODE merge_info 
)
static
static char * xts_process_method_sig ( char *  ptr,
const METHOD_SIG method_sig,
int  size 
)
static
static char * xts_process_method_sig_list ( char *  ptr,
const METHOD_SIG_LIST method_sig_list 
)
static
static char * xts_process_method_spec_type ( char *  ptr,
const METHOD_SPEC_TYPE method_spec 
)
static
static char * xts_process_outptr_list ( char *  ptr,
const OUTPTR_LIST outptr_list 
)
static
static char * xts_process_pos_descr ( char *  ptr,
const QFILE_TUPLE_VALUE_POSITION position_descr 
)
static
static char * xts_process_pred ( char *  ptr,
const PRED pred 
)
static
static char * xts_process_regu_value_list ( char *  ptr,
const REGU_VALUE_LIST regu_value_list 
)
static
static char * xts_process_regu_variable_list ( char *  ptr,
const REGU_VARIABLE_LIST  regu_var_list 
)
static

Definition at line 7488 of file xasl_to_stream.c.

References assert, ER_FAILED, NULL, xts_visited_ptr::offset, or_pack_int(), xts_visited_ptr::ptr, and xts_save_regu_variable_list().

Referenced by xts_pack_regu_variable_value(), and xts_process_aggregate_type().

Here is the caller graph for this function:

static char * xts_process_rlike_eval_term ( char *  ptr,
const RLIKE_EVAL_TERM rlike_eval_term 
)
static
static char * xts_process_rlist_spec_type ( char *  ptr,
const LIST_SPEC_TYPE list_spec 
)
static

Definition at line 4741 of file xasl_to_stream.c.

References xts_visited_ptr::ptr.

Referenced by xts_process_access_spec_type().

Here is the caller graph for this function:

static char * xts_process_set_spec_type ( char *  ptr,
const SET_SPEC_TYPE set_spec 
)
static
static char * xts_process_showstmt_spec_type ( char *  ptr,
const SHOWSTMT_SPEC_TYPE list_spec 
)
static
static char * xts_process_sort_list ( char *  ptr,
const SORT_LIST sort_list 
)
static
static char * xts_process_srlist_id ( char *  ptr,
const QFILE_SORTED_LIST_ID sort_list_id 
)
static
static char * xts_process_union_proc ( char *  ptr,
const UNION_PROC_NODE union_proc 
)
static

Definition at line 3183 of file xasl_to_stream.c.

References ER_FAILED, union_proc_node::left, NULL, xts_visited_ptr::offset, or_pack_int(), xts_visited_ptr::ptr, union_proc_node::right, and xts_save_xasl_node().

Referenced by xts_process_xasl_node().

Here is the caller graph for this function:

static char * xts_process_val_list ( char *  ptr,
const VAL_LIST val_list 
)
static
static char * xts_process_xasl_header ( char *  ptr,
const XASL_NODE_HEADER  header 
)
static

Definition at line 2723 of file xasl_to_stream.c.

References ASSERT_ALIGN, INT_ALIGNMENT, NULL, OR_PACK_XASL_NODE_HEADER, and xts_visited_ptr::ptr.

Referenced by xts_process_xasl_node().

Here is the caller graph for this function:

static char * xts_process_xasl_node ( char *  ptr,
const XASL_NODE xasl 
)
static

Definition at line 2736 of file xasl_to_stream.c.

References xasl_node::after_iscan_list, xasl_node::after_join_pred, xasl_node::aptr_list, assert, xasl_node::bptr_list, BUILD_SCHEMA_PROC, xasl_node::buildlist, BUILDLIST_PROC, xasl_node::buildvalue, BUILDVALUE_PROC, xasl_node::cardinality, xasl_node::cat_fetched, xasl_node::connect_by, xasl_node::connect_by_ptr, CONNECTBY_PROC, xasl_node::cte, CTE_PROC, xasl_node::curr_spec, xasl_node::delete_, DELETE_PROC, DIFFERENCE_PROC, DO_PROC, xasl_node::dptr_list, ER_FAILED, ER_QPROC_INVALID_XASLNODE, xasl_node::fetch, xasl_node::flag, xasl_node::fptr_list, xasl_node::header, xasl_node::if_pred, xasl_node::insert, INSERT_PROC, xasl_node::instnum_flag, xasl_node::instnum_pred, xasl_node::instnum_val, INTERSECTION_PROC, xasl_node::is_single_tuple, xasl_node::iscan_oid_order, xasl_node::iscycle_regu, xasl_node::iscycle_val, xasl_node::isleaf_regu, xasl_node::isleaf_val, xasl_node::level_regu, xasl_node::level_val, xasl_node::limit_offset, xasl_node::limit_row_count, xasl_node::list_id, MAX_ALIGNMENT, xasl_node::merge, MERGE_PROC, xasl_node::merge_spec, xasl_node::merge_val_list, xasl_node::mergelist, MERGELIST_PROC, xasl_node::mvcc_reev_extra_cls_cnt, access_spec_node::next, xasl_node::next, xasl_node::next_scan_block_on, xasl_node::next_scan_on, NULL, OBJFETCH_PROC, xts_visited_ptr::offset, xasl_node::option, or_pack_double(), or_pack_int(), xasl_node::ordbynum_flag, xasl_node::ordbynum_pred, xasl_node::ordbynum_val, xasl_node::orderby_limit, xasl_node::orderby_list, xasl_node::outptr_list, xasl_node::proc, xasl_node::projected_size, xts_visited_ptr::ptr, PTR_ALIGN, xasl_node::query_alias, xasl_node::save_instnum_val, xasl_node::scan_op_type, SCAN_PROC, xasl_node::scan_ptr, xasl_node::selected_upd_list, xasl_node::single_tuple, xasl_node::spec_list, xasl_node::type, xasl_node::union_, UNION_PROC, xasl_node::upd_del_class_cnt, xasl_node::update, UPDATE_PROC, xasl_node::val_list, xts_process_access_spec_type(), xts_process_buildlist_proc(), xts_process_buildvalue_proc(), xts_process_connectby_proc(), xts_process_cte_proc(), xts_process_delete_proc(), xts_process_fetch_proc(), xts_process_insert_proc(), xts_process_merge_proc(), xts_process_mergelist_proc(), xts_process_union_proc(), xts_process_update_proc(), xts_process_xasl_header(), xts_save_db_value(), xts_save_list_id(), xts_save_outptr_list(), xts_save_pred_expr(), xts_save_regu_variable(), xts_save_selupd_list(), xts_save_sort_list(), xts_save_string(), xts_save_val_list(), xts_save_xasl_node(), and xts_Xasl_errcode.

Referenced by xts_save_xasl_node().

Here is the caller graph for this function:

static int xts_save_db_value_array ( DB_VALUE **  ptr,
int  size 
)
static
static int xts_save_hfid_array ( HFID ptr,
int  size 
)
static

Definition at line 2457 of file xasl_to_stream.c.

References ER_FAILED, i, NULL, xts_visited_ptr::offset, OR_HFID_SIZE, or_pack_hfid(), xts_visited_ptr::ptr, xts_reserve_location_in_stream(), and xts_Stream_buffer.

Referenced by xts_save_upddel_class_info().

Here is the caller graph for this function:

static int xts_save_key_range_array ( const KEY_RANGE ptr,
int  size 
)
static

Definition at line 2653 of file xasl_to_stream.c.

References ER_FAILED, free_and_init, i, NULL, xts_visited_ptr::offset, key_range::range, xts_get_offset_visited_ptr(), xts_save_int_array(), and xts_save_regu_variable().

Referenced by xts_process_key_info().

Here is the caller graph for this function:

static int xts_save_oid_array ( OID ptr,
int  size 
)
static

Definition at line 2483 of file xasl_to_stream.c.

References ER_FAILED, i, NULL, xts_visited_ptr::offset, OR_OID_SIZE, or_pack_oid(), xts_visited_ptr::ptr, xts_reserve_location_in_stream(), and xts_Stream_buffer.

Referenced by xts_save_upddel_class_info().

Here is the caller graph for this function:

static int xts_save_regu_varlist_list ( const REGU_VARLIST_LIST  ptr)
static
static char * xts_save_update_assignment ( char *  ptr,
const UPDATE_ASSIGNMENT assign 
)
static
static int xts_save_update_assignment_array ( const UPDATE_ASSIGNMENT assigns,
int  nelements 
)
static
static int xts_save_upddel_class_info_array ( const UPDDEL_CLASS_INFO classes,
int  nelements 
)
static
static int xts_sizeof ( const json_table_spec_node ptr)
static
static int xts_sizeof_alsm_eval_term ( const ALSM_EVAL_TERM ptr)
static

Definition at line 6411 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_eval_term().

Here is the caller graph for this function:

static int xts_sizeof_analytic_eval_type ( const ANALYTIC_EVAL_TYPE ptr)
static

Definition at line 7145 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_save_analytic_eval_type().

Here is the caller graph for this function:

static int xts_sizeof_arith_type ( const ARITH_TYPE ptr)
static

Definition at line 6995 of file xasl_to_stream.c.

References arith_list_node::domain, arith_list_node::opcode, OR_INT_SIZE, or_packed_domain_size(), PTR_SIZE, T_CASE, T_DECODE, T_IF, and T_PREDICATE.

Referenced by xts_save_arith_type().

Here is the caller graph for this function:

static int xts_sizeof_attr_descr ( const ATTR_DESCR ptr)
static

Definition at line 6951 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_get_regu_variable_value_size().

Here is the caller graph for this function:

static int xts_sizeof_buildlist_proc ( const BUILDLIST_PROC_NODE ptr)
static

Definition at line 5941 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_buildvalue_proc ( const BUILDVALUE_PROC_NODE ptr)
static

Definition at line 5981 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_cache_attrinfo ( const HEAP_CACHE_ATTRINFO ptr)
static

Definition at line 5896 of file xasl_to_stream.c.

References OR_INT_SIZE.

Referenced by xts_save_cache_attrinfo().

Here is the caller graph for this function:

static int xts_sizeof_cls_spec_type ( const CLS_SPEC_TYPE ptr)
static

Definition at line 6618 of file xasl_to_stream.c.

References OR_HFID_SIZE, OR_INT_SIZE, OR_OID_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_access_spec_type().

Here is the caller graph for this function:

static int xts_sizeof_comp_eval_term ( const COMP_EVAL_TERM ptr)
static

Definition at line 6393 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_eval_term().

Here is the caller graph for this function:

static int xts_sizeof_connectby_proc ( const CONNECTBY_PROC_NODE ptr)
static

Definition at line 7236 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_cte_proc ( const CTE_PROC_NODE ptr)
static

Definition at line 6204 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_db_value ( const DB_VALUE ptr)
static

Definition at line 6984 of file xasl_to_stream.c.

References or_db_value_size().

Referenced by xts_save_db_value().

Here is the caller graph for this function:

static int xts_sizeof_delete_proc ( const DELETE_PROC_NODE ptr)
static

Definition at line 6138 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_fetch_proc ( const FETCH_PROC_NODE ptr)
static

Definition at line 5923 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_filter_pred_node ( const PRED_EXPR_WITH_CONTEXT ptr)
static

Definition at line 5862 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_filter_pred_node().

Here is the caller graph for this function:

static int xts_sizeof_func_pred ( const FUNC_PRED ptr)
static

Definition at line 5880 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_save_func_pred().

Here is the caller graph for this function:

static int xts_sizeof_function_type ( const FUNCTION_TYPE ptr)
static

Definition at line 7074 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_function_type().

Here is the caller graph for this function:

static int xts_sizeof_indx_info ( const INDX_INFO ptr)
static

Definition at line 6560 of file xasl_to_stream.c.

References ER_FAILED, indx_info::key_info, OR_BTID_ALIGNED_SIZE, OR_INT_SIZE, PTR_SIZE, and xts_sizeof_key_info().

Referenced by xts_save_indx_info().

Here is the caller graph for this function:

static int xts_sizeof_insert_proc ( const INSERT_PROC_NODE ptr)
static

Definition at line 6158 of file xasl_to_stream.c.

References insert_proc_node::num_val_lists, OR_HFID_SIZE, OR_INT_SIZE, OR_OID_SIZE, and PTR_SIZE.

Referenced by xts_save_cache_attrinfo(), and xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_json_table_column_behavior ( const json_table_column_behavior behavior)
static

Definition at line 6720 of file xasl_to_stream.c.

References JSON_TABLE_DEFAULT_VALUE, json_table_column_behavior::m_behavior, json_table_column_behavior::m_default_value, OR_INT_SIZE, and OR_VALUE_ALIGNED_SIZE.

Referenced by xts_sizeof().

Here is the caller graph for this function:

static int xts_sizeof_key_info ( const KEY_INFO ptr)
static

Definition at line 6597 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_indx_info().

Here is the caller graph for this function:

static int xts_sizeof_like_eval_term ( const LIKE_EVAL_TERM ptr)
static

Definition at line 6430 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_eval_term().

Here is the caller graph for this function:

static int xts_sizeof_list_id ( const QFILE_LIST_ID ptr)
static

Definition at line 6813 of file xasl_to_stream.c.

References or_listid_length().

Referenced by xts_save_list_id().

Here is the caller graph for this function:

static int xts_sizeof_list_spec_type ( const LIST_SPEC_TYPE ptr)
static

Definition at line 6656 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_access_spec_type().

Here is the caller graph for this function:

static int xts_sizeof_ls_merge_info ( const QFILE_LIST_MERGE_INFO ptr)
static

Definition at line 6000 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_cache_attrinfo(), and xts_sizeof_mergelist_proc().

Here is the caller graph for this function:

static int xts_sizeof_merge_proc ( const MERGE_PROC_NODE ptr)
static

Definition at line 6187 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_mergelist_proc ( const MERGELIST_PROC_NODE ptr)
static
static int xts_sizeof_method_sig ( const METHOD_SIG ptr)
static

Definition at line 7216 of file xasl_to_stream.c.

References method_sig_node::num_method_args, OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_method_sig().

Here is the caller graph for this function:

static int xts_sizeof_method_sig_list ( const METHOD_SIG_LIST ptr)
static

Definition at line 7205 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_method_sig_list().

Here is the caller graph for this function:

static int xts_sizeof_method_spec_type ( const METHOD_SPEC_TYPE ptr)
static

Definition at line 6708 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_access_spec_type().

Here is the caller graph for this function:

static int xts_sizeof_odku_info ( const ODKU_INFO odku_info)
static

Definition at line 6094 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_odku_info().

Here is the caller graph for this function:

static int xts_sizeof_outptr_list ( const OUTPTR_LIST ptr)
static

Definition at line 6221 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_outptr_list().

Here is the caller graph for this function:

static int xts_sizeof_pos_descr ( const QFILE_TUPLE_VALUE_POSITION ptr)
static

Definition at line 6968 of file xasl_to_stream.c.

References qfile_tuple_value_position::dom, OR_INT_SIZE, and or_packed_domain_size().

Referenced by xts_get_regu_variable_value_size(), and xts_sizeof_sort_list().

Here is the caller graph for this function:

static int xts_sizeof_pred ( const PRED ptr)
static

Definition at line 6301 of file xasl_to_stream.c.

References cubxasl::pred_expr::m_pred, OR_INT_SIZE, cubxasl::pred_expr::pe, PTR_SIZE, cubxasl::pred::rhs, T_PRED, and cubxasl::pred_expr::type.

Referenced by xts_sizeof_pred_expr().

Here is the caller graph for this function:

static int xts_sizeof_regu_value_list ( const REGU_VALUE_LIST regu_value_list)
static
static int xts_sizeof_regu_variable ( const REGU_VARIABLE ptr)
static

Definition at line 6849 of file xasl_to_stream.c.

References ER_FAILED, NULL, OR_INT_SIZE, or_packed_domain_size(), PTR_SIZE, and xts_get_regu_variable_value_size().

Referenced by xts_save_regu_variable(), xts_sizeof_aggregate_type(), and xts_sizeof_analytic_type().

Here is the caller graph for this function:

static int xts_sizeof_regu_variable_list ( const REGU_VARIABLE_LIST  regu_var_list)
static
static int xts_sizeof_rlike_eval_term ( const RLIKE_EVAL_TERM ptr)
static

Definition at line 6447 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_eval_term().

Here is the caller graph for this function:

static int xts_sizeof_selupd_list ( const SELUPD_LIST ptr)
static

Definition at line 6281 of file xasl_to_stream.c.

References OR_HFID_SIZE, OR_INT_SIZE, OR_OID_SIZE, and PTR_SIZE.

Referenced by xts_save_selupd_list().

Here is the caller graph for this function:

static int xts_sizeof_set_spec_type ( const SET_SPEC_TYPE ptr)
static

Definition at line 6692 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_access_spec_type().

Here is the caller graph for this function:

static int xts_sizeof_showstmt_spec_type ( const SHOWSTMT_SPEC_TYPE ptr)
static

Definition at line 6676 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_access_spec_type().

Here is the caller graph for this function:

static int xts_sizeof_sort_list ( const SORT_LIST ptr)
static

Definition at line 7178 of file xasl_to_stream.c.

References ER_FAILED, OR_INT_SIZE, sort_list::pos_descr, PTR_SIZE, and xts_sizeof_pos_descr().

Referenced by xts_save_sort_list().

Here is the caller graph for this function:

static int xts_sizeof_srlist_id ( const QFILE_SORTED_LIST_ID ptr)
static

Definition at line 7162 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_srlist_id().

Here is the caller graph for this function:

static int xts_sizeof_union_proc ( const UNION_PROC_NODE ptr)
static

Definition at line 5907 of file xasl_to_stream.c.

References PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_update_assignment ( const UPDATE_ASSIGNMENT assign)
static

Definition at line 6081 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_update_assignment_array().

Here is the caller graph for this function:

static int xts_sizeof_update_proc ( const UPDATE_PROC_NODE ptr)
static

Definition at line 6113 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_sizeof_xasl_node().

Here is the caller graph for this function:

static int xts_sizeof_upddel_class_info ( const UPDDEL_CLASS_INFO upd_cls)
static

Definition at line 6056 of file xasl_to_stream.c.

References OR_INT_SIZE, and PTR_SIZE.

Referenced by xts_save_upddel_class_info_array().

Here is the caller graph for this function:

static int xts_sizeof_val_list ( const VAL_LIST ptr)
static

Definition at line 6828 of file xasl_to_stream.c.

References qproc_db_value_list::next, NULL, OR_INT_SIZE, p, PTR_SIZE, and val_list_node::valp.

Referenced by xts_save_val_list().

Here is the caller graph for this function:

Variable Documentation

int xts_Free_offset_in_stream = 0
static
XTS_VISITED_PTR* xts_Ptr_blocks[MAX_PTR_BLOCKS] = { 0 }
static

Definition at line 68 of file xasl_to_stream.c.

int xts_Ptr_lwm[MAX_PTR_BLOCKS] = { 0 }
static
int xts_Ptr_max[MAX_PTR_BLOCKS] = { 0 }
static

Definition at line 72 of file xasl_to_stream.c.

Referenced by xts_mark_ptr_visited().