FileList > cubrid > src > parser > view_transform.c
Go to the source code of this file
#include <assert.h>
#include "authenticate.h"
#include "view_transform.h"
#include "parser.h"
#include "parser_message.h"
#include "schema_manager.h"
#include "semantic_check.h"
#include "optimizer.h"
#include "execute_schema.h"
#include "dbi.h"
#include "object_accessor.h"
#include "object_primitive.h"
#include "locator_cl.h"
#include "virtual_object.h"
#include "dbtype.h"
#include "boot.h"
Classes
Public Types
Public Static Attributes
Public Functions
| Type |
Name |
| PT_NODE * |
mq_bump_correlation_level (PARSER_CONTEXT * parser, PT_NODE * node, int increment, int match)
|
| PT_NODE * |
mq_class_lambda (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * class_, PT_NODE * corresponding_spec, PT_NODE * class_where_part, PT_NODE * class_check_part, PT_NODE * class_group_by_part, PT_NODE * class_having_part)
|
| PT_NODE * |
mq_clear_ids (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * spec)
|
| int |
mq_copypush_sargable_terms (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| int |
mq_evaluate_check_option (PARSER_CONTEXT * parser, PT_NODE * check_where, DB_OBJECT * object, PT_NODE * view_class)
|
| int |
mq_evaluate_expression (PARSER_CONTEXT * parser, PT_NODE * expr, DB_VALUE * value, DB_OBJECT * object, UINTPTR spec_id)
|
| int |
mq_evaluate_expression_having_serial (PARSER_CONTEXT * parser, PT_NODE * expr, DB_VALUE * values, int values_count, DB_OBJECT * object, UINTPTR spec_id)
|
| PT_NODE * |
mq_fetch_attributes (PARSER_CONTEXT * parser, PT_NODE * class_)
|
| DB_OBJECT * |
mq_fetch_one_real_class (DB_OBJECT * vclass_object)
|
| void |
mq_free_virtual_query_cache (PARSER_CONTEXT * parser)
|
| const char * |
mq_generate_name (PARSER_CONTEXT * parser, const char * root, int * version)
|
| int |
mq_get_attribute (DB_OBJECT * vclass_object, const char * attr_name, DB_OBJECT * real_class_object, DB_VALUE * virtual_value, DB_OBJECT * real_instance)
|
| int |
mq_get_expression (DB_OBJECT * object, const char * expr, DB_VALUE * value)
|
| PT_NODE * |
mq_get_references (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_get_references_helper (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, bool get_spec_referenced_attr)
|
| PT_NODE * |
mq_has_click_counter (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| bool |
mq_is_outer_join_spec (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| int |
mq_is_real_class_of_vclass (PARSER_CONTEXT * parser, const PT_NODE * s_class, const PT_NODE * d_class)
|
| bool |
mq_is_right_outer_join_spec (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| bool |
mq_is_updatable (DB_OBJECT * class_object)
|
| bool |
mq_is_updatable_att (PARSER_CONTEXT * parser, DB_OBJECT * vmop, const char * att_nam, DB_OBJECT * rmop)
|
| bool |
mq_is_updatable_attribute (DB_OBJECT * vclass_object, const char * attr_name, DB_OBJECT * real_class_object)
|
| bool |
mq_is_updatable_strict (DB_OBJECT * class_object)
|
| PT_NODE * |
mq_lambda (PARSER_CONTEXT * parser, PT_NODE * tree_with_names, PT_NODE * name_node, PT_NODE * corresponding_tree)
|
| PT_NODE * |
mq_make_derived_spec (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * subquery, int * idx, PT_NODE ** spec_ptr, PT_NODE ** attr_list_ptr)
|
| PT_NODE * |
mq_oid (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| PT_NODE * |
mq_regenerate_if_ambiguous (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * statement, PT_NODE * from)
|
| PT_NODE * |
mq_reset_ids (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_reset_ids_in_methods (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| PT_NODE * |
mq_reset_ids_in_statement (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| PT_NODE * |
mq_reset_paths (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * root_spec)
|
| PT_NODE * |
mq_rewrite_aggregate_as_derived (PARSER_CONTEXT * parser, PT_NODE * agg_sel)
|
| PT_NODE * |
mq_rewrite_query_as_derived (PARSER_CONTEXT * parser, PT_NODE * query)
|
| PT_NODE * |
mq_set_references (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_translate (PARSER_CONTEXT * parser, PT_NODE *volatile node)
|
| PT_UPDATABILITY |
mq_updatable (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| int |
mq_update_attribute (DB_OBJECT * vclass_object, const char * attr_name, DB_OBJECT * real_class_object, DB_VALUE * virtual_value, DB_VALUE * real_value, const char ** real_name, int db_auth)
|
| PARSER_CONTEXT * |
mq_virtual_queries (DB_OBJECT * class_object)
|
Public Static Functions
| Type |
Name |
| const char * |
get_authorization_name (DB_AUTH auth)
|
| PT_NODE * |
mq_add_dummy_from_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| void |
mq_auto_param_merge_clauses (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| PT_NODE * |
mq_bump_corr_post (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_bump_corr_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| void |
mq_bump_order_dep_corr_lvl (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
mq_bump_order_dep_corr_lvl_post (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_bump_order_dep_corr_lvl_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| int |
mq_check_authorization_path_entities (PARSER_CONTEXT * parser, PT_NODE * class_spec, int what_for)
|
| void |
mq_check_cte_inline_or_materialize (PARSER_CONTEXT * parser, PT_NODE * node)
|
| bool |
mq_check_cycle (DB_OBJECT * class_object)
|
| void |
mq_check_delete (PARSER_CONTEXT * parser, PT_NODE * delete_stmt)
|
| bool |
mq_check_keep_join_pred (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * node, PT_NODE * subquery, PT_NODE * class_)
|
| void |
mq_check_merge (PARSER_CONTEXT * parser, PT_NODE * merge_statement)
|
| PT_NODE * |
mq_check_non_updatable_vclass_oid (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_check_rewrite_select (PARSER_CONTEXT * parser, PT_NODE * select_statement)
|
| int |
mq_check_subqueries_for_prepare (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * subquery)
|
| void |
mq_check_update (PARSER_CONTEXT * parser, PT_NODE * update_statement)
|
| int |
mq_check_using_index (PARSER_CONTEXT * parser, PT_NODE * using_index)
|
| bool |
mq_check_vclass_for_insert (PARSER_CONTEXT * parser, PT_NODE * stmt)
|
| PT_NODE * |
mq_class_meth_corr_subq_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_clean_dot (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_clear_all_ids (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_clear_other_ids (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_coerce_resolved (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_collapse_dot (PARSER_CONTEXT * parser, PT_NODE * tree)
|
| DB_AUTH |
mq_compute_authorization (DB_OBJECT * class_object)
|
| DB_AUTH |
mq_compute_query_authorization (PT_NODE * statement)
|
| bool |
mq_conditionally_add_objects (PARSER_CONTEXT * parser, PT_NODE * flat, DB_OBJECT *** classes, int * index, int * max)
|
| void |
mq_copy_sql_hint (PARSER_CONTEXT * parser, PT_NODE * dest_query, PT_NODE * src_query)
|
| void |
mq_copy_view_error_msgs (PARSER_CONTEXT * parser, PARSER_CONTEXT * query_cache)
|
| int |
mq_copypush_sargable_terms_dblink (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, PT_NODE * new_query, FIND_ID_INFO * infop)
|
| int |
mq_copypush_sargable_terms_helper (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, PT_NODE * subquery, FIND_ID_INFO * infop)
|
| PT_NODE * |
mq_count_cte_references (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_derived_path (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * path)
|
| PT_NODE * |
mq_fetch_expression_for_real_class_update (PARSER_CONTEXT * parser, DB_OBJECT * vclass_obj, PT_NODE * attr, PT_NODE * real_class, PT_FETCH_AS fetch_as, DB_AUTH what_for, UINTPTR * spec_id)
|
| PT_NODE * |
mq_fetch_one_real_class_get_cache (DB_OBJECT * vclass_object, PARSER_CONTEXT ** query_cache)
|
| PT_NODE * |
mq_fetch_select_for_real_class_update (PARSER_CONTEXT * parser, PT_NODE * vclass, PT_NODE * real_class, PT_FETCH_AS fetch_as, DB_AUTH what_for)
|
| PT_NODE * |
mq_fetch_subqueries (PARSER_CONTEXT * parser, PT_NODE * class_)
|
| PT_NODE * |
mq_fetch_subqueries_for_update (PARSER_CONTEXT * parser, PT_NODE * class_, PT_FETCH_AS fetch_as, DB_AUTH what_for)
|
| PT_NODE * |
mq_fetch_subqueries_for_update_local (PARSER_CONTEXT * parser, PT_NODE * class_, PT_FETCH_AS fetch_as, DB_AUTH what_for, PARSER_CONTEXT ** qry_cache)
|
| PT_NODE * |
mq_fix_derived (PARSER_CONTEXT * parser, PT_NODE * select_statement, PT_NODE * spec)
|
| PT_NODE * |
mq_fix_derived_in_union (PARSER_CONTEXT * parser, PT_NODE * statement, UINTPTR spec_id)
|
| PT_NODE * |
mq_flatten_union (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| PT_NODE * |
mq_generate_unique (PARSER_CONTEXT * parser, PT_NODE * name_list)
|
| PT_NODE * |
mq_get_references_node (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| bool |
mq_has_class_methods_corr_subqueries (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
mq_inline_cte_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_inline_view_lambda (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * derived_table, PT_NODE * corresponding_spec, PT_NODE * class_where_part, PT_NODE * class_check_part, PT_NODE * class_group_by_part, PT_NODE * class_having_part)
|
| void |
mq_insert_symbol (PARSER_CONTEXT * parser, PT_NODE ** listhead, PT_NODE * attr)
|
| void |
mq_invert_assign (PARSER_CONTEXT * parser, PT_NODE * attr, PT_NODE *& expr, PT_NODE * inverted)
|
| void |
mq_invert_insert_select (PARSER_CONTEXT * parser, PT_NODE * attr, PT_NODE * subquery)
|
| void |
mq_invert_insert_subquery (PARSER_CONTEXT * parser, PT_NODE ** attr, PT_NODE * subquery)
|
| void |
mq_invert_subqueries (PARSER_CONTEXT * parser, PT_NODE * select_statements, PT_NODE * attributes)
|
| bool |
mq_is_dblink_pushable_term (PARSER_CONTEXT * parser, PT_NODE * term)
|
| bool |
mq_is_order_dependent_node (PT_NODE * node)
|
| PUSHABLE_TYPE |
mq_is_pushable_subquery (PARSER_CONTEXT * parser, PT_NODE * subquery, PT_NODE * mainquery, PT_NODE * class_spec, bool is_vclass, PT_NODE * order_by, PT_NODE * class_)
|
| int |
mq_is_referenced (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PUSHABLE_TYPE |
mq_is_removable_select_list (PARSER_CONTEXT * parser, PT_NODE * subquery, PT_NODE * mainquery)
|
| bool |
mq_is_rownum_only_predicate (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * node, PT_NODE * order_by, PT_NODE * subquery, PT_NODE * class_)
|
| int |
mq_is_union_translation (PARSER_CONTEXT * parser, PT_NODE * spec)
|
| bool |
mq_is_updatable_local (DB_OBJECT * class_object, PT_FETCH_AS fetch_as)
|
| PT_NODE * |
mq_lambda_node (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_lambda_node_pre (PARSER_CONTEXT * parser, PT_NODE * tree, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_lookup_symbol (PARSER_CONTEXT * parser, PT_NODE * attr_list, PT_NODE * attr)
|
| PT_NODE * |
mq_mark_location (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| bool |
mq_mark_order_dependent_nodes (PT_NODE * node)
|
| int |
mq_mget_exprs (DB_OBJECT ** objects, int rows, char ** exprs, int cols, int qOnErr, DB_VALUE * values, int * results, char * emsg)
|
| PT_NODE * |
mq_new_spec (PARSER_CONTEXT * parser, const char * class_name)
|
| PT_NODE * |
mq_path_name_lambda (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * lambda_name, PT_NODE * lambda_expr, UINTPTR spec_id)
|
| PT_NODE * |
mq_path_spec_lambda (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * root_spec, PT_NODE ** prev_ptr, PT_NODE * old_spec, PT_NODE * new_spec)
|
| PT_NODE * |
mq_push_arg2 (PARSER_CONTEXT * parser, PT_NODE * query, PT_NODE * dot_arg2)
|
| void |
mq_push_dot_in_query (PARSER_CONTEXT * parser, PT_NODE * query, int i, PT_NODE * name)
|
| PT_NODE * |
mq_push_path (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, PT_NODE * path)
|
| PT_NODE * |
mq_push_paths (PARSER_CONTEXT * parser, PT_NODE * statement, void * void_arg, int * continue_walk)
|
| void |
mq_push_paths_select (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_referenced_post (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_referenced_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_remove_select_list_for_inline_view (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * derived_table, PT_NODE ** new_spec)
|
| PT_NODE * |
mq_rename_resolved (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * statement, const char * newname)
|
| PT_NODE * |
mq_replace_name_with_path (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_replace_virtual_oid_with_real_oid (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_all_ids (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_ids_and_references (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_reset_ids_and_references_helper (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, bool get_spec_referenced_attr)
|
| PT_NODE * |
mq_reset_references_to_query_string (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_select_spec_node (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_select_specs (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_spec_distr_subpath_post (PARSER_CONTEXT * parser, PT_NODE * spec, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_spec_distr_subpath_pre (PARSER_CONTEXT * parser, PT_NODE * spec, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_spec_ids (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_spec_in_method_names (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_reset_specs_from_column (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * column)
|
| PT_NODE * |
mq_resolve_insert_statement (PARSER_CONTEXT * parser, PT_NODE * insert_statement)
|
| PT_NODE * |
mq_resolve_n_check_using_index (PARSER_CONTEXT * parser, PT_NODE * statement, bool aggregate_rewrote_as_derived)
|
| PT_NODE * |
mq_rewrite_agg_names (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_rewrite_agg_names_post (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_rewrite_cte_as_derived (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
mq_rewrite_dblink_as_derived (PARSER_CONTEXT * parser, PT_NODE * query)
|
| PT_NODE * |
mq_rewrite_dblink_as_subquery (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * walk)
|
| PT_NODE * |
mq_rewrite_order_dependent_nodes (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * select, int * unique)
|
| PT_NODE * |
mq_rewrite_order_dependent_query (PARSER_CONTEXT * parser, PT_NODE * select, int * unique)
|
| PT_NODE * |
mq_rewrite_upd_del_top_level_specs (PARSER_CONTEXT * parser, PT_NODE * statement, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_rewrite_vclass_spec_as_derived (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec, PT_NODE * query_spec, bool remove_sel_list)
|
| PT_NODE * |
mq_set_all_ids (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_set_names_dbobject (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| void |
mq_set_non_updatable_oid (PARSER_CONTEXT * parser, PT_NODE * stmt, PT_NODE * virt_entity)
|
| PT_NODE * |
mq_set_references_local (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * spec)
|
| PT_NODE * |
mq_set_types (PARSER_CONTEXT * parser, PT_NODE * query_spec, PT_NODE * attributes, DB_OBJECT * vclass_object, int cascaded_check)
|
| void |
mq_set_union_query (PARSER_CONTEXT * parser, PT_NODE * statement, PT_MISC_TYPE is_union)
|
| PT_NODE * |
mq_set_virt_object (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_substitute_inline_view_in_statement (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * subquery, PT_NODE * derived_spec, PT_NODE * order_by)
|
| PT_NODE * |
mq_substitute_path (PARSER_CONTEXT * parser, PT_NODE * node, PATH_LAMBDA_INFO * path_info)
|
| PT_NODE * |
mq_substitute_path_pre (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_substitute_select_for_inline_view (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * query_spec, PT_NODE * derived_table)
|
| PT_NODE * |
mq_substitute_select_in_statement (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * query_spec, PT_NODE * class_)
|
| PT_NODE * |
mq_substitute_spec_in_method_and_hints (PARSER_CONTEXT * parser, PT_NODE * node, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_substitute_subquery_in_statement (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * query_spec, PT_NODE * class_, PT_NODE * order_by, int what_for)
|
| PT_NODE * |
mq_substitute_subquery_list_in_statement (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * query_spec_list, PT_NODE * class_, PT_NODE * order_by, int what_for)
|
| int |
mq_translatable_class (PARSER_CONTEXT * parser, PT_NODE * class_)
|
| PT_NODE * |
mq_translate_delete (PARSER_CONTEXT * parser, PT_NODE * delete_statement)
|
| PT_NODE * |
mq_translate_helper (PARSER_CONTEXT * parser, PT_NODE * node)
|
| PT_NODE * |
mq_translate_insert (PARSER_CONTEXT * parser, PT_NODE * insert_statement)
|
| PT_NODE * |
mq_translate_local (PARSER_CONTEXT * parser, PT_NODE * statement, void * void_arg, int * continue_walk)
|
| PT_NODE * |
mq_translate_merge (PARSER_CONTEXT * parser, PT_NODE * merge_statement)
|
| PT_NODE * |
mq_translate_paths (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * root_spec)
|
| PT_NODE * |
mq_translate_select (PARSER_CONTEXT * parser, PT_NODE * select_statement)
|
| PT_NODE * |
mq_translate_subqueries (PARSER_CONTEXT * parser, DB_OBJECT * class_object, PT_NODE * attributes, DB_AUTH * authorization)
|
| PT_NODE * |
mq_translate_tree (PARSER_CONTEXT * parser, PT_NODE * tree, PT_NODE * spec_list, PT_NODE * order_by, int what_for)
|
| PT_NODE * |
mq_translate_update (PARSER_CONTEXT * parser, PT_NODE * update_statement)
|
| PT_NODE * |
mq_translate_value (PARSER_CONTEXT * parser, PT_NODE * value)
|
| PT_NODE * |
mq_union_bump_correlation (PARSER_CONTEXT * parser, PT_NODE * left, PT_NODE * right)
|
| PT_UPDATABILITY |
mq_updatable_local (PARSER_CONTEXT * parser, PT_NODE * statement, DB_OBJECT *** classes, int * i, int * max)
|
| PT_NODE * |
mq_update_analytic_sort_spec_expr (PARSER_CONTEXT * parser, PT_NODE * new_select_list, PT_NODE * old_select_list)
|
| PT_NODE * |
mq_update_order_by (PARSER_CONTEXT * parser, PT_NODE * statement, PT_NODE * query_spec, PT_NODE * class_, PT_NODE * derived_spec, bool skip_adding_hidden_col)
|
| int |
pt_check_for_update_clause (PARSER_CONTEXT * parser, PT_NODE * query, bool root)
|
| PT_NODE * |
pt_check_for_update_subquery (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_odku_refs_pre (PARSER_CONTEXT * parser, PT_NODE * odku, void * arg, int * continue_walk)
|
| void |
pt_check_odku_refs_view (PARSER_CONTEXT * parser, PT_NODE * statement)
|
| PT_NODE * |
pt_check_pushable (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| PT_NODE * |
pt_check_pushable_select_list (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| bool |
pt_check_pushable_subquery_select_list (PARSER_CONTEXT * parser, PT_NODE * query, int pos)
|
| bool |
pt_check_pushable_term (PARSER_CONTEXT * parser, PT_NODE * term, FIND_ID_INFO * infop)
|
| void |
pt_copypush_terms (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * query, PT_NODE * term_list, FIND_ID_TYPE type)
|
| PT_NODE * |
pt_find_only_name_id (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
|
| int |
pt_for_update_prepare_query (PARSER_CONTEXT * parser, PT_NODE * query)
|
| int |
pt_for_update_prepare_query_internal (PARSER_CONTEXT * parser, PT_NODE * query)
|
| PT_NODE * |
pt_remove_cast_wrap_for_dblink (PARSER_CONTEXT * parser, PT_NODE * old_node, void * arg, int * continue_walk)
|
Macros
Public Types Documentation
typedef CHECK_PUSHABLE_INFO
typedef struct check_pushable_info CHECK_PUSHABLE_INFO;
typedef EXISTS_INFO
typedef struct exists_info EXISTS_INFO;
typedef FIND_ID_INFO
typedef struct find_id_info FIND_ID_INFO;
enum FIND_ID_TYPE
enum FIND_ID_TYPE {
FIND_ID_INLINE_VIEW = 0,
FIND_ID_VCLASS
};
typedef MQ_BUMP_CORR_INFO
typedef struct mq_bump_core_info MQ_BUMP_CORR_INFO;
typedef MQ_LAMBDA_ARG
typedef struct mq_lambda_arg MQ_LAMBDA_ARG;
typedef PATH_LAMBDA_INFO
typedef struct path_lambda_info PATH_LAMBDA_INFO;
typedef struct extra_specs_frame PT_EXTRA_SPECS_FRAME;
typedef PT_RESET_SELECT_SPEC_INFO
typedef struct pt_reset_select_spec_info PT_RESET_SELECT_SPEC_INFO;
typedef PUSHABLE_TYPE
typedef enum pushable_type PUSHABLE_TYPE;
typedef REPLACE_NAME_INFO
typedef struct replace_name_info REPLACE_NAME_INFO;
typedef SET_NAMES_INFO
typedef struct set_names_info SET_NAMES_INFO;
typedef SPEC_RESET_INFO
typedef struct spec_reset_info SPEC_RESET_INFO;
enum pushable_type
enum pushable_type {
HAS_ERROR = 0,
NON_PUSHABLE = 1,
PUSHABLE = 2
};
Public Static Attributes Documentation
variable cycle_buffer
DB_OBJECT* cycle_buffer[300];
variable top_cycle
Public Functions Documentation
function mq_bump_correlation_level
PT_NODE * mq_bump_correlation_level (
PARSER_CONTEXT * parser,
PT_NODE * node,
int increment,
int match
)
function mq_class_lambda
PT_NODE * mq_class_lambda (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * class_,
PT_NODE * corresponding_spec,
PT_NODE * class_where_part,
PT_NODE * class_check_part,
PT_NODE * class_group_by_part,
PT_NODE * class_having_part
)
function mq_clear_ids
PT_NODE * mq_clear_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * spec
)
function mq_copypush_sargable_terms
int mq_copypush_sargable_terms (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_evaluate_check_option
int mq_evaluate_check_option (
PARSER_CONTEXT * parser,
PT_NODE * check_where,
DB_OBJECT * object,
PT_NODE * view_class
)
function mq_evaluate_expression
int mq_evaluate_expression (
PARSER_CONTEXT * parser,
PT_NODE * expr,
DB_VALUE * value,
DB_OBJECT * object,
UINTPTR spec_id
)
function mq_evaluate_expression_having_serial
int mq_evaluate_expression_having_serial (
PARSER_CONTEXT * parser,
PT_NODE * expr,
DB_VALUE * values,
int values_count,
DB_OBJECT * object,
UINTPTR spec_id
)
function mq_fetch_attributes
PT_NODE * mq_fetch_attributes (
PARSER_CONTEXT * parser,
PT_NODE * class_
)
function mq_fetch_one_real_class
DB_OBJECT * mq_fetch_one_real_class (
DB_OBJECT * vclass_object
)
function mq_free_virtual_query_cache
void mq_free_virtual_query_cache (
PARSER_CONTEXT * parser
)
function mq_generate_name
const char * mq_generate_name (
PARSER_CONTEXT * parser,
const char * root,
int * version
)
function mq_get_attribute
int mq_get_attribute (
DB_OBJECT * vclass_object,
const char * attr_name,
DB_OBJECT * real_class_object,
DB_VALUE * virtual_value,
DB_OBJECT * real_instance
)
function mq_get_expression
int mq_get_expression (
DB_OBJECT * object,
const char * expr,
DB_VALUE * value
)
function mq_get_references
PT_NODE * mq_get_references (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_get_references_helper
PT_NODE * mq_get_references_helper (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
bool get_spec_referenced_attr
)
function mq_has_click_counter
PT_NODE * mq_has_click_counter (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_is_outer_join_spec
bool mq_is_outer_join_spec (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function mq_is_real_class_of_vclass
int mq_is_real_class_of_vclass (
PARSER_CONTEXT * parser,
const PT_NODE * s_class,
const PT_NODE * d_class
)
function mq_is_right_outer_join_spec
bool mq_is_right_outer_join_spec (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function mq_is_updatable
bool mq_is_updatable (
DB_OBJECT * class_object
)
function mq_is_updatable_att
bool mq_is_updatable_att (
PARSER_CONTEXT * parser,
DB_OBJECT * vmop,
const char * att_nam,
DB_OBJECT * rmop
)
function mq_is_updatable_attribute
bool mq_is_updatable_attribute (
DB_OBJECT * vclass_object,
const char * attr_name,
DB_OBJECT * real_class_object
)
function mq_is_updatable_strict
bool mq_is_updatable_strict (
DB_OBJECT * class_object
)
function mq_lambda
PT_NODE * mq_lambda (
PARSER_CONTEXT * parser,
PT_NODE * tree_with_names,
PT_NODE * name_node,
PT_NODE * corresponding_tree
)
function mq_make_derived_spec
PT_NODE * mq_make_derived_spec (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * subquery,
int * idx,
PT_NODE ** spec_ptr,
PT_NODE ** attr_list_ptr
)
function mq_oid
PT_NODE * mq_oid (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function mq_regenerate_if_ambiguous
PT_NODE * mq_regenerate_if_ambiguous (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * statement,
PT_NODE * from
)
function mq_reset_ids
PT_NODE * mq_reset_ids (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_reset_ids_in_methods
PT_NODE * mq_reset_ids_in_methods (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function mq_reset_ids_in_statement
PT_NODE * mq_reset_ids_in_statement (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function mq_reset_paths
PT_NODE * mq_reset_paths (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * root_spec
)
function mq_rewrite_aggregate_as_derived
PT_NODE * mq_rewrite_aggregate_as_derived (
PARSER_CONTEXT * parser,
PT_NODE * agg_sel
)
function mq_rewrite_query_as_derived
PT_NODE * mq_rewrite_query_as_derived (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function mq_set_references
PT_NODE * mq_set_references (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_translate
PT_NODE * mq_translate (
PARSER_CONTEXT * parser,
PT_NODE * volatile node
)
function mq_updatable
PT_UPDATABILITY mq_updatable (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function mq_update_attribute
int mq_update_attribute (
DB_OBJECT * vclass_object,
const char * attr_name,
DB_OBJECT * real_class_object,
DB_VALUE * virtual_value,
DB_VALUE * real_value,
const char ** real_name,
int db_auth
)
function mq_virtual_queries
PARSER_CONTEXT * mq_virtual_queries (
DB_OBJECT * class_object
)
Public Static Functions Documentation
function get_authorization_name
static const char * get_authorization_name (
DB_AUTH auth
)
function mq_add_dummy_from_pre
static PT_NODE * mq_add_dummy_from_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_auto_param_merge_clauses
static void mq_auto_param_merge_clauses (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function mq_bump_corr_post
static PT_NODE * mq_bump_corr_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_bump_corr_pre
static PT_NODE * mq_bump_corr_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_bump_order_dep_corr_lvl
static void mq_bump_order_dep_corr_lvl (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function mq_bump_order_dep_corr_lvl_post
static PT_NODE * mq_bump_order_dep_corr_lvl_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_bump_order_dep_corr_lvl_pre
static PT_NODE * mq_bump_order_dep_corr_lvl_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_check_authorization_path_entities
static int mq_check_authorization_path_entities (
PARSER_CONTEXT * parser,
PT_NODE * class_spec,
int what_for
)
function mq_check_cte_inline_or_materialize
static void mq_check_cte_inline_or_materialize (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function mq_check_cycle
static bool mq_check_cycle (
DB_OBJECT * class_object
)
function mq_check_delete
static void mq_check_delete (
PARSER_CONTEXT * parser,
PT_NODE * delete_stmt
)
function mq_check_keep_join_pred
static bool mq_check_keep_join_pred (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * node,
PT_NODE * subquery,
PT_NODE * class_
)
function mq_check_merge
static void mq_check_merge (
PARSER_CONTEXT * parser,
PT_NODE * merge_statement
)
function mq_check_non_updatable_vclass_oid
static PT_NODE * mq_check_non_updatable_vclass_oid (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_check_rewrite_select
static PT_NODE * mq_check_rewrite_select (
PARSER_CONTEXT * parser,
PT_NODE * select_statement
)
function mq_check_subqueries_for_prepare
static int mq_check_subqueries_for_prepare (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * subquery
)
function mq_check_update
static void mq_check_update (
PARSER_CONTEXT * parser,
PT_NODE * update_statement
)
function mq_check_using_index
static int mq_check_using_index (
PARSER_CONTEXT * parser,
PT_NODE * using_index
)
function mq_check_vclass_for_insert
static bool mq_check_vclass_for_insert (
PARSER_CONTEXT * parser,
PT_NODE * stmt
)
function mq_class_meth_corr_subq_pre
static PT_NODE * mq_class_meth_corr_subq_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_clean_dot
static PT_NODE * mq_clean_dot (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_clear_all_ids
static PT_NODE * mq_clear_all_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_clear_other_ids
static PT_NODE * mq_clear_other_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_coerce_resolved
static PT_NODE * mq_coerce_resolved (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_collapse_dot
static PT_NODE * mq_collapse_dot (
PARSER_CONTEXT * parser,
PT_NODE * tree
)
function mq_compute_authorization
static DB_AUTH mq_compute_authorization (
DB_OBJECT * class_object
)
function mq_compute_query_authorization
static DB_AUTH mq_compute_query_authorization (
PT_NODE * statement
)
function mq_conditionally_add_objects
static bool mq_conditionally_add_objects (
PARSER_CONTEXT * parser,
PT_NODE * flat,
DB_OBJECT *** classes,
int * index,
int * max
)
function mq_copy_sql_hint
static void mq_copy_sql_hint (
PARSER_CONTEXT * parser,
PT_NODE * dest_query,
PT_NODE * src_query
)
function mq_copy_view_error_msgs
static void mq_copy_view_error_msgs (
PARSER_CONTEXT * parser,
PARSER_CONTEXT * query_cache
)
function mq_copypush_sargable_terms_dblink
static int mq_copypush_sargable_terms_dblink (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
PT_NODE * new_query,
FIND_ID_INFO * infop
)
function mq_copypush_sargable_terms_helper
static int mq_copypush_sargable_terms_helper (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
PT_NODE * subquery,
FIND_ID_INFO * infop
)
function mq_count_cte_references
static PT_NODE * mq_count_cte_references (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_derived_path
static PT_NODE * mq_derived_path (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * path
)
function mq_fetch_expression_for_real_class_update
static PT_NODE * mq_fetch_expression_for_real_class_update (
PARSER_CONTEXT * parser,
DB_OBJECT * vclass_obj,
PT_NODE * attr,
PT_NODE * real_class,
PT_FETCH_AS fetch_as,
DB_AUTH what_for,
UINTPTR * spec_id
)
function mq_fetch_one_real_class_get_cache
static PT_NODE * mq_fetch_one_real_class_get_cache (
DB_OBJECT * vclass_object,
PARSER_CONTEXT ** query_cache
)
function mq_fetch_select_for_real_class_update
static PT_NODE * mq_fetch_select_for_real_class_update (
PARSER_CONTEXT * parser,
PT_NODE * vclass,
PT_NODE * real_class,
PT_FETCH_AS fetch_as,
DB_AUTH what_for
)
function mq_fetch_subqueries
static PT_NODE * mq_fetch_subqueries (
PARSER_CONTEXT * parser,
PT_NODE * class_
)
function mq_fetch_subqueries_for_update
static PT_NODE * mq_fetch_subqueries_for_update (
PARSER_CONTEXT * parser,
PT_NODE * class_,
PT_FETCH_AS fetch_as,
DB_AUTH what_for
)
function mq_fetch_subqueries_for_update_local
static PT_NODE * mq_fetch_subqueries_for_update_local (
PARSER_CONTEXT * parser,
PT_NODE * class_,
PT_FETCH_AS fetch_as,
DB_AUTH what_for,
PARSER_CONTEXT ** qry_cache
)
function mq_fix_derived
static PT_NODE * mq_fix_derived (
PARSER_CONTEXT * parser,
PT_NODE * select_statement,
PT_NODE * spec
)
function mq_fix_derived_in_union
static PT_NODE * mq_fix_derived_in_union (
PARSER_CONTEXT * parser,
PT_NODE * statement,
UINTPTR spec_id
)
function mq_flatten_union
static PT_NODE * mq_flatten_union (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function mq_generate_unique
static PT_NODE * mq_generate_unique (
PARSER_CONTEXT * parser,
PT_NODE * name_list
)
function mq_get_references_node
static PT_NODE * mq_get_references_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_has_class_methods_corr_subqueries
static bool mq_has_class_methods_corr_subqueries (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function mq_inline_cte_pre
static PT_NODE * mq_inline_cte_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_inline_view_lambda
static PT_NODE * mq_inline_view_lambda (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * derived_table,
PT_NODE * corresponding_spec,
PT_NODE * class_where_part,
PT_NODE * class_check_part,
PT_NODE * class_group_by_part,
PT_NODE * class_having_part
)
function mq_insert_symbol
static void mq_insert_symbol (
PARSER_CONTEXT * parser,
PT_NODE ** listhead,
PT_NODE * attr
)
function mq_invert_assign
static void mq_invert_assign (
PARSER_CONTEXT * parser,
PT_NODE * attr,
PT_NODE *& expr,
PT_NODE * inverted
)
function mq_invert_insert_select
static void mq_invert_insert_select (
PARSER_CONTEXT * parser,
PT_NODE * attr,
PT_NODE * subquery
)
function mq_invert_insert_subquery
static void mq_invert_insert_subquery (
PARSER_CONTEXT * parser,
PT_NODE ** attr,
PT_NODE * subquery
)
function mq_invert_subqueries
static void mq_invert_subqueries (
PARSER_CONTEXT * parser,
PT_NODE * select_statements,
PT_NODE * attributes
)
function mq_is_dblink_pushable_term
static bool mq_is_dblink_pushable_term (
PARSER_CONTEXT * parser,
PT_NODE * term
)
function mq_is_order_dependent_node
static bool mq_is_order_dependent_node (
PT_NODE * node
)
function mq_is_pushable_subquery
static PUSHABLE_TYPE mq_is_pushable_subquery (
PARSER_CONTEXT * parser,
PT_NODE * subquery,
PT_NODE * mainquery,
PT_NODE * class_spec,
bool is_vclass,
PT_NODE * order_by,
PT_NODE * class_
)
function mq_is_referenced
static int mq_is_referenced (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_is_removable_select_list
static PUSHABLE_TYPE mq_is_removable_select_list (
PARSER_CONTEXT * parser,
PT_NODE * subquery,
PT_NODE * mainquery
)
function mq_is_rownum_only_predicate
static bool mq_is_rownum_only_predicate (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * node,
PT_NODE * order_by,
PT_NODE * subquery,
PT_NODE * class_
)
function mq_is_union_translation
static int mq_is_union_translation (
PARSER_CONTEXT * parser,
PT_NODE * spec
)
function mq_is_updatable_local
static bool mq_is_updatable_local (
DB_OBJECT * class_object,
PT_FETCH_AS fetch_as
)
function mq_lambda_node
static PT_NODE * mq_lambda_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_lambda_node_pre
static PT_NODE * mq_lambda_node_pre (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * void_arg,
int * continue_walk
)
function mq_lookup_symbol
static PT_NODE * mq_lookup_symbol (
PARSER_CONTEXT * parser,
PT_NODE * attr_list,
PT_NODE * attr
)
function mq_mark_location
static PT_NODE * mq_mark_location (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_mark_order_dependent_nodes
static bool mq_mark_order_dependent_nodes (
PT_NODE * node
)
function mq_mget_exprs
static int mq_mget_exprs (
DB_OBJECT ** objects,
int rows,
char ** exprs,
int cols,
int qOnErr,
DB_VALUE * values,
int * results,
char * emsg
)
function mq_new_spec
static PT_NODE * mq_new_spec (
PARSER_CONTEXT * parser,
const char * class_name
)
function mq_path_name_lambda
static PT_NODE * mq_path_name_lambda (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * lambda_name,
PT_NODE * lambda_expr,
UINTPTR spec_id
)
function mq_path_spec_lambda
static PT_NODE * mq_path_spec_lambda (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * root_spec,
PT_NODE ** prev_ptr,
PT_NODE * old_spec,
PT_NODE * new_spec
)
function mq_push_arg2
static PT_NODE * mq_push_arg2 (
PARSER_CONTEXT * parser,
PT_NODE * query,
PT_NODE * dot_arg2
)
function mq_push_dot_in_query
static void mq_push_dot_in_query (
PARSER_CONTEXT * parser,
PT_NODE * query,
int i,
PT_NODE * name
)
function mq_push_path
static PT_NODE * mq_push_path (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
PT_NODE * path
)
function mq_push_paths
static PT_NODE * mq_push_paths (
PARSER_CONTEXT * parser,
PT_NODE * statement,
void * void_arg,
int * continue_walk
)
function mq_push_paths_select
static void mq_push_paths_select (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_referenced_post
static PT_NODE * mq_referenced_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_referenced_pre
static PT_NODE * mq_referenced_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_remove_select_list_for_inline_view
static PT_NODE * mq_remove_select_list_for_inline_view (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * derived_table,
PT_NODE ** new_spec
)
function mq_rename_resolved
static PT_NODE * mq_rename_resolved (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * statement,
const char * newname
)
function mq_replace_name_with_path
static PT_NODE * mq_replace_name_with_path (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_replace_virtual_oid_with_real_oid
static PT_NODE * mq_replace_virtual_oid_with_real_oid (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_reset_all_ids
static PT_NODE * mq_reset_all_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_reset_ids_and_references
static PT_NODE * mq_reset_ids_and_references (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_reset_ids_and_references_helper
static PT_NODE * mq_reset_ids_and_references_helper (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
bool get_spec_referenced_attr
)
function mq_reset_references_to_query_string
static PT_NODE * mq_reset_references_to_query_string (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_reset_select_spec_node
static PT_NODE * mq_reset_select_spec_node (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_reset_select_specs
static PT_NODE * mq_reset_select_specs (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_reset_spec_distr_subpath_post
static PT_NODE * mq_reset_spec_distr_subpath_post (
PARSER_CONTEXT * parser,
PT_NODE * spec,
void * void_arg,
int * continue_walk
)
function mq_reset_spec_distr_subpath_pre
static PT_NODE * mq_reset_spec_distr_subpath_pre (
PARSER_CONTEXT * parser,
PT_NODE * spec,
void * void_arg,
int * continue_walk
)
function mq_reset_spec_ids
static PT_NODE * mq_reset_spec_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_reset_spec_in_method_names
static PT_NODE * mq_reset_spec_in_method_names (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_reset_specs_from_column
static PT_NODE * mq_reset_specs_from_column (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * column
)
function mq_resolve_insert_statement
static PT_NODE * mq_resolve_insert_statement (
PARSER_CONTEXT * parser,
PT_NODE * insert_statement
)
function mq_resolve_n_check_using_index
static PT_NODE * mq_resolve_n_check_using_index (
PARSER_CONTEXT * parser,
PT_NODE * statement,
bool aggregate_rewrote_as_derived
)
function mq_rewrite_agg_names
static PT_NODE * mq_rewrite_agg_names (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_rewrite_agg_names_post
static PT_NODE * mq_rewrite_agg_names_post (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_rewrite_cte_as_derived
static PT_NODE * mq_rewrite_cte_as_derived (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function mq_rewrite_dblink_as_derived
static PT_NODE * mq_rewrite_dblink_as_derived (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function mq_rewrite_dblink_as_subquery
static PT_NODE * mq_rewrite_dblink_as_subquery (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * walk
)
function mq_rewrite_order_dependent_nodes
static PT_NODE * mq_rewrite_order_dependent_nodes (
PARSER_CONTEXT * parser,
PT_NODE * node,
PT_NODE * select,
int * unique
)
function mq_rewrite_order_dependent_query
static PT_NODE * mq_rewrite_order_dependent_query (
PARSER_CONTEXT * parser,
PT_NODE * select,
int * unique
)
function mq_rewrite_upd_del_top_level_specs
static PT_NODE * mq_rewrite_upd_del_top_level_specs (
PARSER_CONTEXT * parser,
PT_NODE * statement,
void * void_arg,
int * continue_walk
)
function mq_rewrite_vclass_spec_as_derived
static PT_NODE * mq_rewrite_vclass_spec_as_derived (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec,
PT_NODE * query_spec,
bool remove_sel_list
)
function mq_set_all_ids
static PT_NODE * mq_set_all_ids (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_set_names_dbobject
static PT_NODE * mq_set_names_dbobject (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_set_non_updatable_oid
static void mq_set_non_updatable_oid (
PARSER_CONTEXT * parser,
PT_NODE * stmt,
PT_NODE * virt_entity
)
function mq_set_references_local
static PT_NODE * mq_set_references_local (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * spec
)
function mq_set_types
static PT_NODE * mq_set_types (
PARSER_CONTEXT * parser,
PT_NODE * query_spec,
PT_NODE * attributes,
DB_OBJECT * vclass_object,
int cascaded_check
)
function mq_set_union_query
static void mq_set_union_query (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_MISC_TYPE is_union
)
function mq_set_virt_object
static PT_NODE * mq_set_virt_object (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_substitute_inline_view_in_statement
static PT_NODE * mq_substitute_inline_view_in_statement (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * subquery,
PT_NODE * derived_spec,
PT_NODE * order_by
)
function mq_substitute_path
static PT_NODE * mq_substitute_path (
PARSER_CONTEXT * parser,
PT_NODE * node,
PATH_LAMBDA_INFO * path_info
)
function mq_substitute_path_pre
static PT_NODE * mq_substitute_path_pre (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_substitute_select_for_inline_view
static PT_NODE * mq_substitute_select_for_inline_view (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * query_spec,
PT_NODE * derived_table
)
function mq_substitute_select_in_statement
static PT_NODE * mq_substitute_select_in_statement (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * query_spec,
PT_NODE * class_
)
function mq_substitute_spec_in_method_and_hints
static PT_NODE * mq_substitute_spec_in_method_and_hints (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * void_arg,
int * continue_walk
)
function mq_substitute_subquery_in_statement
static PT_NODE * mq_substitute_subquery_in_statement (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * query_spec,
PT_NODE * class_,
PT_NODE * order_by,
int what_for
)
function mq_substitute_subquery_list_in_statement
static PT_NODE * mq_substitute_subquery_list_in_statement (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * query_spec_list,
PT_NODE * class_,
PT_NODE * order_by,
int what_for
)
function mq_translatable_class
static int mq_translatable_class (
PARSER_CONTEXT * parser,
PT_NODE * class_
)
function mq_translate_delete
static PT_NODE * mq_translate_delete (
PARSER_CONTEXT * parser,
PT_NODE * delete_statement
)
function mq_translate_helper
static PT_NODE * mq_translate_helper (
PARSER_CONTEXT * parser,
PT_NODE * node
)
function mq_translate_insert
static PT_NODE * mq_translate_insert (
PARSER_CONTEXT * parser,
PT_NODE * insert_statement
)
function mq_translate_local
static PT_NODE * mq_translate_local (
PARSER_CONTEXT * parser,
PT_NODE * statement,
void * void_arg,
int * continue_walk
)
function mq_translate_merge
static PT_NODE * mq_translate_merge (
PARSER_CONTEXT * parser,
PT_NODE * merge_statement
)
function mq_translate_paths
static PT_NODE * mq_translate_paths (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * root_spec
)
function mq_translate_select
static PT_NODE * mq_translate_select (
PARSER_CONTEXT * parser,
PT_NODE * select_statement
)
function mq_translate_subqueries
static PT_NODE * mq_translate_subqueries (
PARSER_CONTEXT * parser,
DB_OBJECT * class_object,
PT_NODE * attributes,
DB_AUTH * authorization
)
function mq_translate_tree
static PT_NODE * mq_translate_tree (
PARSER_CONTEXT * parser,
PT_NODE * tree,
PT_NODE * spec_list,
PT_NODE * order_by,
int what_for
)
function mq_translate_update
static PT_NODE * mq_translate_update (
PARSER_CONTEXT * parser,
PT_NODE * update_statement
)
function mq_translate_value
static PT_NODE * mq_translate_value (
PARSER_CONTEXT * parser,
PT_NODE * value
)
function mq_union_bump_correlation
static PT_NODE * mq_union_bump_correlation (
PARSER_CONTEXT * parser,
PT_NODE * left,
PT_NODE * right
)
function mq_updatable_local
static PT_UPDATABILITY mq_updatable_local (
PARSER_CONTEXT * parser,
PT_NODE * statement,
DB_OBJECT *** classes,
int * i,
int * max
)
function mq_update_analytic_sort_spec_expr
static PT_NODE * mq_update_analytic_sort_spec_expr (
PARSER_CONTEXT * parser,
PT_NODE * new_select_list,
PT_NODE * old_select_list
)
function mq_update_order_by
static PT_NODE * mq_update_order_by (
PARSER_CONTEXT * parser,
PT_NODE * statement,
PT_NODE * query_spec,
PT_NODE * class_,
PT_NODE * derived_spec,
bool skip_adding_hidden_col
)
function pt_check_for_update_clause
static int pt_check_for_update_clause (
PARSER_CONTEXT * parser,
PT_NODE * query,
bool root
)
function pt_check_for_update_subquery
static PT_NODE * pt_check_for_update_subquery (
PARSER_CONTEXT * parser,
PT_NODE * node,
void * arg,
int * continue_walk
)
function pt_check_odku_refs_pre
static PT_NODE * pt_check_odku_refs_pre (
PARSER_CONTEXT * parser,
PT_NODE * odku,
void * arg,
int * continue_walk
)
function pt_check_odku_refs_view
static void pt_check_odku_refs_view (
PARSER_CONTEXT * parser,
PT_NODE * statement
)
function pt_check_pushable
static PT_NODE * pt_check_pushable (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_check_pushable_select_list
static PT_NODE * pt_check_pushable_select_list (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_check_pushable_subquery_select_list
static bool pt_check_pushable_subquery_select_list (
PARSER_CONTEXT * parser,
PT_NODE * query,
int pos
)
function pt_check_pushable_term
static bool pt_check_pushable_term (
PARSER_CONTEXT * parser,
PT_NODE * term,
FIND_ID_INFO * infop
)
function pt_copypush_terms
static void pt_copypush_terms (
PARSER_CONTEXT * parser,
PT_NODE * spec,
PT_NODE * query,
PT_NODE * term_list,
FIND_ID_TYPE type
)
function pt_find_only_name_id
static PT_NODE * pt_find_only_name_id (
PARSER_CONTEXT * parser,
PT_NODE * tree,
void * arg,
int * continue_walk
)
function pt_for_update_prepare_query
static int pt_for_update_prepare_query (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function pt_for_update_prepare_query_internal
static int pt_for_update_prepare_query_internal (
PARSER_CONTEXT * parser,
PT_NODE * query
)
function pt_remove_cast_wrap_for_dblink
static PT_NODE * pt_remove_cast_wrap_for_dblink (
PARSER_CONTEXT * parser,
PT_NODE * old_node,
void * arg,
int * continue_walk
)
Macro Definition Documentation
define MAX_CYCLE
define MAX_STACK_OBJECTS
#define MAX_STACK_OBJECTS `500`
define MQ_FIX_SPEC_ID
#define MQ_FIX_SPEC_ID (
tmp_hint,
hint,
info
) `/* multi line expression */`
define MQ_IS_LEFT_JOIN_SPEC
#define MQ_IS_LEFT_JOIN_SPEC (
s
) `/* multi line expression */`
define MQ_IS_OUTER_JOIN_SPEC
#define MQ_IS_OUTER_JOIN_SPEC (
s
) `/* multi line expression */`
define PT_PUSHABLE_TERM
#define PT_PUSHABLE_TERM (
p
) `(( p )->out.pushable && ( p )->out.found && !( p )->out.others_found)`
The documentation for this class was generated from the following file cubrid/src/parser/view_transform.c