CUBRID Engine
latest
|
Go to the source code of this file.
Classes | |
struct | pruning_scan_cache |
struct | scancache_list |
struct | pruning_context |
Namespaces | |
cubquery | |
Typedefs | |
using | HIERARCHY_AGGREGATE_HELPER = cubquery::hierarchy_aggregate_helper |
typedef struct pruning_scan_cache | PRUNING_SCAN_CACHE |
typedef struct scancache_list | SCANCACHE_LIST |
typedef struct pruning_context | PRUNING_CONTEXT |
Definition at line 45 of file partition_sr.h.
typedef struct pruning_context PRUNING_CONTEXT |
Definition at line 66 of file partition_sr.h.
typedef struct pruning_scan_cache PRUNING_SCAN_CACHE |
Definition at line 49 of file partition_sr.h.
typedef struct scancache_list SCANCACHE_LIST |
Definition at line 59 of file partition_sr.h.
void partition_cache_finalize | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 748 of file partition.c.
References ARG_FILE_LINE, csect_enter, csect_exit, CSECT_PARTITION_CACHE, er_log_debug, INF_WAIT, mht_destroy(), mht_map(), NO_ERROR, NULL, partition_free_cache_entry_kv(), and PARTITION_IS_CACHE_INITIALIZED.
Referenced by boot_server_all_finalize().
int partition_cache_init | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 711 of file partition.c.
References ARG_FILE_LINE, cleanup(), csect_enter, csect_exit, CSECT_PARTITION_CACHE, ER_FAILED, er_log_debug, error(), INF_WAIT, mht_create(), NO_ERROR, NULL, oid_compare_equals(), oid_hash(), PARTITION_CACHE_NAME, PARTITION_CACHE_SIZE, and PARTITION_IS_CACHE_INITIALIZED.
Referenced by boot_restart_server().
void partition_clear_pruning_context | ( | PRUNING_CONTEXT * | pinfo | ) |
Definition at line 2380 of file partition.c.
References assert, pruning_context::attr_info, pruning_context::count, db_private_free, pruning_scan_cache::func_index_pred, heap_attrinfo_end(), heap_clear_partition_info(), heap_free_func_pred_unpack_info(), heap_scancache_end(), pruning_context::is_attr_info_inited, pruning_context::is_from_cache, pruning_scan_cache::is_scan_cache_started, pruning_scan_cache::n_indexes, scancache_list::next, NULL, partition_free_partition_predicate(), pruning_context::partitions, pruning_scan_cache::scan_cache, scancache_list::scan_cache, pruning_context::scan_cache_list, pruning_context::selected_partition, and pruning_context::thread_p.
Referenced by btree_check_foreign_key(), btree_load_check_fk(), locator_check_foreign_key(), logtb_tran_load_global_stats_func(), partition_attrinfo_get_key(), partition_get_partition_oids(), partition_load_aggregate_helper(), partition_load_pruning_context(), partition_prune_insert(), partition_prune_spec(), partition_prune_update(), qexec_clear_internal_classes(), qexec_execute_insert(), qexec_init_agg_hierarchy_helpers(), redistribute_partition_data(), and xbtree_find_multi_uniques().
void partition_decache_class | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid | ||
) |
Definition at line 775 of file partition.c.
References csect_enter, csect_exit, CSECT_PARTITION_CACHE, INF_WAIT, mht_rem(), NO_ERROR, NULL, partition_free_cache_entry_kv(), and PARTITION_IS_CACHE_INITIALIZED.
Referenced by log_cleanup_modified_class().
int partition_find_root_class_oid | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid, | ||
OID * | super_oid | ||
) |
Definition at line 2199 of file partition.c.
References ASSERT_ERROR, COPY_OID, error(), free_and_init, heap_get_class_supers(), NO_ERROR, NULL, and OID_SET_NULL.
Referenced by partition_load_pruning_context(), partition_prune_update(), and qexec_evaluate_aggregates_optimize().
int partition_get_partition_oids | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid, | ||
OID ** | partition_oids, | ||
int * | count | ||
) |
Definition at line 3380 of file partition.c.
References assert_release, or_partition::class_oid, cleanup(), COPY_OID, pruning_context::count, DB_PARTITIONED_CLASS, db_private_alloc, db_private_free, ER_FAILED, error(), or_classrep::has_partition_info, heap_classrepr_free_and_init, heap_classrepr_get(), i, NO_ERROR, NULL, NULL_REPRID, partition_clear_pruning_context(), partition_init_pruning_context(), partition_load_pruning_context(), pruning_context::partitions, and PARTITIONS_COUNT.
Referenced by catalog_get_cardinality(), and xstats_update_statistics().
PRUNING_SCAN_CACHE* partition_get_scancache | ( | PRUNING_CONTEXT * | pcontext, |
const OID * | partition_oid | ||
) |
Definition at line 3320 of file partition.c.
References assert_release, heap_scancache_node::class_oid, scancache_list::next, heap_scancache::node, NULL, OID_EQ, pruning_scan_cache::scan_cache, scancache_list::scan_cache, and pruning_context::scan_cache_list.
Referenced by locator_get_partition_scancache().
void partition_init_pruning_context | ( | PRUNING_CONTEXT * | pinfo | ) |
Definition at line 2164 of file partition.c.
References assert, pruning_context::attr_position, pruning_context::count, DB_PARTITIONED_CLASS, pruning_context::error_code, pruning_context::fp_cache_context, pruning_context::is_attr_info_inited, pruning_context::is_from_cache, NO_ERROR, NULL, OID_SET_NULL, pruning_context::partition_pred, pruning_context::partitions, pruning_context::pruning_type, pruning_context::root_oid, pruning_context::scan_cache_list, pruning_context::selected_partition, pruning_context::spec, pruning_context::thread_p, and pruning_context::vd.
Referenced by btree_check_foreign_key(), btree_load_check_fk(), locator_check_foreign_key(), logtb_tran_load_global_stats_func(), partition_attrinfo_get_key(), partition_get_partition_oids(), partition_load_aggregate_helper(), partition_load_pruning_context(), partition_prune_insert(), partition_prune_spec(), partition_prune_update(), qexec_create_internal_classes(), qexec_execute_insert(), qexec_init_agg_hierarchy_helpers(), redistribute_partition_data(), and xbtree_find_multi_uniques().
int partition_load_aggregate_helper | ( | PRUNING_CONTEXT * | pcontext, |
access_spec_node * | spec, | ||
int | pruned_count, | ||
BTID * | root_btid, | ||
HIERARCHY_AGGREGATE_HELPER * | helper | ||
) |
Definition at line 3639 of file partition.c.
References assert, assert_release, pruning_context::attr_position, BTID_IS_NULL, cubquery::hierarchy_aggregate_helper::btids, btree_is_unique_type(), BTREE_PRIMARY_KEY, cleanup(), pruning_context::count, cubquery::hierarchy_aggregate_helper::count, DB_PARTITIONED_CLASS, db_private_alloc, db_private_free_and_init, ER_OUT_OF_VIRTUAL_MEMORY, error(), free_and_init, heap_get_index_with_name(), heap_get_indexinfo_of_btid(), HFID_COPY, cubquery::hierarchy_aggregate_helper::hfids, i, NO_ERROR, NULL, partition_clear_pruning_context(), partition_get_position_in_key(), partition_init_pruning_context(), partition_load_pruning_context(), access_spec_node::pruning_type, pruning_context::root_oid, and pruning_context::thread_p.
Referenced by qexec_init_agg_hierarchy_helpers().
int partition_load_pruning_context | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid, | ||
int | pruning_type, | ||
PRUNING_CONTEXT * | pinfo | ||
) |
Definition at line 2249 of file partition.c.
References assert, ASSERT_ERROR, assert_release, pruning_context::attr_id, COPY_OID, pruning_context::count, DB_PARTITION_CLASS, DB_PARTITIONED_CLASS, ER_FAILED, error(), pruning_context::error_code, func_pred::func_regu, heap_clear_partition_info(), heap_get_class_partitions(), pruning_context::is_from_cache, NO_ERROR, NULL, partition_cache_pruning_context(), partition_clear_pruning_context(), partition_find_root_class_oid(), partition_free_partition_predicate(), partition_get_attribute_id(), partition_init_pruning_context(), partition_load_context_from_cache(), partition_load_partition_predicate(), pruning_context::partition_pred, partition_set_specified_partition(), pruning_context::partition_type, or_partition::partition_type, pruning_context::partitions, pruning_context::pruning_type, or_partition::rep_id, pruning_context::root_oid, pruning_context::root_repr_id, and pruning_context::thread_p.
Referenced by btree_check_foreign_key(), btree_load_check_fk(), locator_check_foreign_key(), logtb_tran_load_global_stats_func(), partition_attrinfo_get_key(), partition_get_partition_oids(), partition_load_aggregate_helper(), partition_prune_insert(), partition_prune_spec(), partition_prune_update(), qexec_create_internal_classes(), qexec_execute_insert(), qexec_init_agg_hierarchy_helpers(), redistribute_partition_data(), and xbtree_find_multi_uniques().
PRUNING_SCAN_CACHE* partition_new_scancache | ( | PRUNING_CONTEXT * | pcontext | ) |
Definition at line 3350 of file partition.c.
References db_private_alloc, pruning_scan_cache::func_index_pred, pruning_scan_cache::is_scan_cache_started, pruning_scan_cache::n_indexes, scancache_list::next, NULL, scancache_list::scan_cache, pruning_context::scan_cache_list, and pruning_context::thread_p.
Referenced by locator_get_partition_scancache().
int partition_prune_insert | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid, | ||
RECDES * | recdes, | ||
HEAP_SCANCACHE * | scan_cache, | ||
PRUNING_CONTEXT * | pcontext, | ||
int | op_type, | ||
OID * | pruned_class_oid, | ||
HFID * | pruned_hfid, | ||
OID * | superclass_oid | ||
) |
Definition at line 3092 of file partition.c.
References ARG_FILE_LINE, assert, or_partition::class_oid, cleanup(), COPY_OID, DB_NOT_PARTITIONED_CLASS, DB_PARTITION_CLASS, ER_ERROR_SEVERITY, ER_INVALID_DATA_FOR_PARTITION, er_set(), error(), NO_ERROR, NULL, OID_EQ, OID_SET_NULL, partition_clear_pruning_context(), partition_find_partition_for_record(), partition_init_pruning_context(), partition_load_pruning_context(), pruning_context::partitions, pruning_context::root_oid, and pruning_context::selected_partition.
Referenced by locator_insert_force().
int partition_prune_partition_index | ( | PRUNING_CONTEXT * | pcontext, |
DB_VALUE * | key, | ||
OID * | class_oid, | ||
BTID * | btid, | ||
int * | position | ||
) |
Definition at line 3926 of file partition.c.
References assert, assert_release, DB_PARTITION_CLASS, ER_FAILED, error(), MATCH_NOT_FOUND, NO_ERROR, NULL, OID_SET_NULL, partition_attrinfo_get_key(), partition_find_inherited_btid(), partition_prune_db_val(), PARTITIONS_COUNT, PO_EQ, pr_clear_value(), pruning_context::pruning_type, pruningset_init(), pruningset_iterator_init(), pruningset_iterator_next(), pruningset_popcount(), pruning_context::root_oid, and pruning_context::thread_p.
Referenced by btree_load_check_fk(), and partition_prune_unique_btid().
int partition_prune_spec | ( | THREAD_ENTRY * | thread_p, |
val_descr * | vd, | ||
access_spec_node * | access_spec | ||
) |
Definition at line 2841 of file partition.c.
References access_spec_node::access, ACCESS_METHOD_SEQUENTIAL, ACCESS_METHOD_SEQUENTIAL_PAGE_SCAN, ACCESS_METHOD_SEQUENTIAL_RECORD_INFO, ACCESS_SPEC_CLS_OID, ARG_FILE_LINE, assert, ASSERT_ERROR, pruning_context::attr_position, indx_info::btid, DB_PARTITIONED_CLASS, ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, er_set(), error(), func_pred::func_regu, access_spec_node::indexptr, NO_ERROR, NULL, partition_clear_pruning_context(), partition_get_position_in_key(), partition_init_pruning_context(), partition_load_pruning_context(), pruning_context::partition_pred, partition_prune_heap_scan(), partition_prune_index_scan(), pruning_context::partitions, access_spec_node::pruning_type, pruning_context::spec, TARGET_CLASS, TARGET_CLASS_ATTR, access_spec_node::type, TYPE_ATTR_ID, and pruning_context::vd.
Referenced by qexec_execute_obj_fetch(), and qexec_prune_spec().
int partition_prune_unique_btid | ( | PRUNING_CONTEXT * | pcontext, |
DB_VALUE * | key, | ||
OID * | class_oid, | ||
HFID * | class_hfid, | ||
BTID * | btid | ||
) |
Definition at line 3553 of file partition.c.
References BTID_COPY, or_partition::class_hfid, or_partition::class_oid, COPY_OID, error(), HFID_COPY, NO_ERROR, partition_find_inherited_btid(), partition_prune_partition_index(), pruning_context::partitions, pruning_context::root_oid, and pruning_context::thread_p.
Referenced by btree_check_foreign_key(), btree_load_check_fk(), locator_check_foreign_key(), qexec_oid_of_duplicate_key_update(), qexec_remove_duplicates_for_replace(), and xbtree_find_multi_uniques().
int partition_prune_update | ( | THREAD_ENTRY * | thread_p, |
const OID * | class_oid, | ||
RECDES * | recdes, | ||
PRUNING_CONTEXT * | pcontext, | ||
int | pruning_type, | ||
OID * | pruned_class_oid, | ||
HFID * | pruned_hfid, | ||
OID * | superclass_oid | ||
) |
Definition at line 3199 of file partition.c.
References ARG_FILE_LINE, assert, or_partition::class_oid, cleanup(), COPY_OID, DB_NOT_PARTITIONED_CLASS, DB_PARTITION_CLASS, ER_ERROR_SEVERITY, ER_FAILED, ER_GENERIC_ERROR, ER_INVALID_DATA_FOR_PARTITION, er_set(), error(), NO_ERROR, NULL, OID_EQ, OID_IS_ROOTOID, OID_ISNULL, OID_SET_NULL, partition_clear_pruning_context(), partition_find_partition_for_record(), partition_find_root_class_oid(), partition_init_pruning_context(), partition_load_pruning_context(), pruning_context::partitions, pruning_context::pruning_type, pruning_context::root_oid, and pruning_context::selected_partition.
Referenced by locator_update_force().