Skip to content

File query_rewrite_select.c

FileList > cubrid > src > optimizer > rewriter > query_rewrite_select.c

Go to the source code of this file

  • #include "parse_tree.h"
  • #include <assert.h>
  • #include "query_rewrite.h"

Public Functions

Type Name
PT_NODE * qo_analyze_path_join (PARSER_CONTEXT * parser, PT_NODE * path_spec, void * arg, int * continue_walk)
PT_NODE * qo_analyze_path_join_pre (PARSER_CONTEXT * parser, PT_NODE * spec, void * arg, int * continue_walk)
bool qo_check_generate_single_tbl_connect_by (PARSER_CONTEXT * parser, PT_NODE * node)
void qo_move_on_of_explicit_join_to_where (PARSER_CONTEXT * parser, PT_NODE ** fromp, PT_NODE ** wherep)
void qo_rewrite_index_hints (PARSER_CONTEXT * parser, PT_NODE * statement)
void qo_rewrite_nonnull_count_select_list (PARSER_CONTEXT * parser, PT_NODE * select)
bool qo_rewrite_select_queries (PARSER_CONTEXT * parser, PT_NODE ** nodep, PT_NODE ** wherep, int * seqno)

Public Static Functions

Type Name
bool qo_check_fk_ref_pk_in_child_spec (PARSER_CONTEXT * parser, PT_NODE * query, QO_REDUCE_REFERENCE_INFO * reduce_reference_info)
bool qo_check_fks_ref_pk_in_child_spec (PARSER_CONTEXT * parser, PT_NODE * query, QO_REDUCE_REFERENCE_INFO * reduce_reference_info)
bool qo_check_pk_ref_by_fk_in_parent_spec (PARSER_CONTEXT * parser, PT_NODE * query, QO_REDUCE_REFERENCE_INFO * reduce_reference_info)
bool qo_check_reduce_predicate_for_parent_spec (PARSER_CONTEXT * parser, PT_NODE * query, QO_REDUCE_REFERENCE_INFO * reduce_reference_info)
PT_NODE * qo_collect_name_with_eq_const (PARSER_CONTEXT * parser, PT_NODE * on_cond, PT_NODE * spec)
PT_NODE * qo_construct_new_set (PARSER_CONTEXT * parser, PT_NODE * node)
PT_NODE * qo_convert_attref_to_dotexpr (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_convert_attref_to_dotexpr_pre (PARSER_CONTEXT * parser, PT_NODE * spec, void * arg, int * continue_walk)
PT_MISC_TYPE qo_find_best_path_type (PT_NODE * spec)
PT_NODE * qo_get_name_cnt_by_spec (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_get_name_cnt_by_spec_no_on (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_get_name_cnt_keep_unique (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_get_next_oid_pred (PT_NODE * pred)
bool qo_is_exclude_spec (PT_NODE * exclude_spec_point_list, PT_NODE * spec)
int qo_is_oid_const (PT_NODE * node)
PT_NODE * qo_make_new_derived_tblspec (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * pred, int * seqno)
PT_NODE * qo_modify_location (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
void qo_reduce_joined_tbls_ref_by_fk (PARSER_CONTEXT * parser, PT_NODE * query)
int qo_reduce_order_by (PARSER_CONTEXT * parser, PT_NODE * node)
int qo_reduce_order_by_for (PARSER_CONTEXT * parser, PT_NODE * node)
PT_NODE * qo_reduce_outer_joined_tbls (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * query)
void qo_reduce_predicate_for_parent_spec (PARSER_CONTEXT * parser, PT_NODE * query, QO_REDUCE_REFERENCE_INFO * reduce_reference_info)
PT_NODE * qo_reset_location (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
void qo_reset_spec_location (PARSER_CONTEXT * parser, PT_NODE * spec, PT_NODE * query)
PT_NODE * qo_rewrite_innerjoin (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_rewrite_nonnull_count (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)
PT_NODE * qo_rewrite_oid_equality (PARSER_CONTEXT * parser, PT_NODE * node, PT_NODE * pred, int * seqno)
PT_NODE * qo_rewrite_outerjoin (PARSER_CONTEXT * parser, PT_NODE * node, void * arg, int * continue_walk)

Public Functions Documentation

function qo_analyze_path_join

PT_NODE * qo_analyze_path_join (
    PARSER_CONTEXT * parser,
    PT_NODE * path_spec,
    void * arg,
    int * continue_walk
) 

function qo_analyze_path_join_pre

PT_NODE * qo_analyze_path_join_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    void * arg,
    int * continue_walk
) 

function qo_check_generate_single_tbl_connect_by

bool qo_check_generate_single_tbl_connect_by (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function qo_move_on_of_explicit_join_to_where

void qo_move_on_of_explicit_join_to_where (
    PARSER_CONTEXT * parser,
    PT_NODE ** fromp,
    PT_NODE ** wherep
) 

function qo_rewrite_index_hints

void qo_rewrite_index_hints (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function qo_rewrite_nonnull_count_select_list

void qo_rewrite_nonnull_count_select_list (
    PARSER_CONTEXT * parser,
    PT_NODE * select
) 

function qo_rewrite_select_queries

bool qo_rewrite_select_queries (
    PARSER_CONTEXT * parser,
    PT_NODE ** nodep,
    PT_NODE ** wherep,
    int * seqno
) 

Public Static Functions Documentation

function qo_check_fk_ref_pk_in_child_spec

static bool qo_check_fk_ref_pk_in_child_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * query,
    QO_REDUCE_REFERENCE_INFO * reduce_reference_info
) 

function qo_check_fks_ref_pk_in_child_spec

static bool qo_check_fks_ref_pk_in_child_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * query,
    QO_REDUCE_REFERENCE_INFO * reduce_reference_info
) 

function qo_check_pk_ref_by_fk_in_parent_spec

static bool qo_check_pk_ref_by_fk_in_parent_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * query,
    QO_REDUCE_REFERENCE_INFO * reduce_reference_info
) 

function qo_check_reduce_predicate_for_parent_spec

static bool qo_check_reduce_predicate_for_parent_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * query,
    QO_REDUCE_REFERENCE_INFO * reduce_reference_info
) 

function qo_collect_name_with_eq_const

static PT_NODE * qo_collect_name_with_eq_const (
    PARSER_CONTEXT * parser,
    PT_NODE * on_cond,
    PT_NODE * spec
) 

function qo_construct_new_set

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

function qo_convert_attref_to_dotexpr

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

function qo_convert_attref_to_dotexpr_pre

static PT_NODE * qo_convert_attref_to_dotexpr_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    void * arg,
    int * continue_walk
) 

function qo_find_best_path_type

static PT_MISC_TYPE qo_find_best_path_type (
    PT_NODE * spec
) 

function qo_get_name_cnt_by_spec

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

function qo_get_name_cnt_by_spec_no_on

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

function qo_get_name_cnt_keep_unique

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

function qo_get_next_oid_pred

static PT_NODE * qo_get_next_oid_pred (
    PT_NODE * pred
) 

function qo_is_exclude_spec

static bool qo_is_exclude_spec (
    PT_NODE * exclude_spec_point_list,
    PT_NODE * spec
) 

function qo_is_oid_const

static int qo_is_oid_const (
    PT_NODE * node
) 

function qo_make_new_derived_tblspec

static PT_NODE * qo_make_new_derived_tblspec (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * pred,
    int * seqno
) 

function qo_modify_location

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

function qo_reduce_joined_tbls_ref_by_fk

static void qo_reduce_joined_tbls_ref_by_fk (
    PARSER_CONTEXT * parser,
    PT_NODE * query
) 

function qo_reduce_order_by

static int qo_reduce_order_by (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function qo_reduce_order_by_for

static int qo_reduce_order_by_for (
    PARSER_CONTEXT * parser,
    PT_NODE * node
) 

function qo_reduce_outer_joined_tbls

static PT_NODE * qo_reduce_outer_joined_tbls (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * query
) 

function qo_reduce_predicate_for_parent_spec

static void qo_reduce_predicate_for_parent_spec (
    PARSER_CONTEXT * parser,
    PT_NODE * query,
    QO_REDUCE_REFERENCE_INFO * reduce_reference_info
) 

function qo_reset_location

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

function qo_reset_spec_location

static void qo_reset_spec_location (
    PARSER_CONTEXT * parser,
    PT_NODE * spec,
    PT_NODE * query
) 

function qo_rewrite_innerjoin

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

function qo_rewrite_nonnull_count

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

function qo_rewrite_oid_equality

static PT_NODE * qo_rewrite_oid_equality (
    PARSER_CONTEXT * parser,
    PT_NODE * node,
    PT_NODE * pred,
    int * seqno
) 

function qo_rewrite_outerjoin

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


The documentation for this class was generated from the following file cubrid/src/optimizer/rewriter/query_rewrite_select.c