CUBRID Engine
latest
|
#include <stdarg.h>
#include <ctype.h>
#include <assert.h>
#include "error_manager.h"
#include "parser.h"
Go to the source code of this file.
Classes | |
struct | find_id_info |
struct | similarity_context |
Typedefs | |
typedef enum cnf_mode | CNF_MODE |
typedef struct find_id_info | FIND_ID_INFO |
typedef struct similarity_context | SIMILARITY_CONTEXT |
Enumerations | |
enum | cnf_mode { TRANSFORM_CNF_OR_COMPACT = 0, TRANSFORM_CNF_OR_PRUNE = 1, TRANSFORM_CNF_AND_OR = 2 } |
typedef struct find_id_info FIND_ID_INFO |
typedef struct similarity_context SIMILARITY_CONTEXT |
enum cnf_mode |
|
static |
Definition at line 462 of file cnf.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::expr, parser_node::info, pt_expr_info::op, PT_AND, and PT_OR.
Referenced by pt_cnf().
|
static |
Definition at line 118 of file cnf.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::expr, parser_node::info, parser_node::next, NULL, pt_expr_info::op, parser_node::or_next, parser_free_tree(), PT_AND, pt_negate_expr(), pt_negate_op(), PT_NOT, and PT_OR.
Referenced by pt_cnf().
|
static |
Definition at line 545 of file cnf.c.
References similarity_context::accumulated_node_type, similarity_context::accumulated_opcode, pt_statement_info::expr, parser_node::flag, parser_node::info, parser_node::is_cnf_start, similarity_context::max_number_of_nodes, parser_node::node_type, similarity_context::number_of_nodes, pt_expr_info::op, PT_CONTINUE_WALK, PT_EXPR, PT_LAST_NODE_NUMBER, PT_LAST_OPCODE, PT_LEAF_WALK, and PT_STOP_WALK.
Referenced by pt_transform_cnf_post().
PT_NODE* pt_cnf | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node | ||
) |
Definition at line 941 of file cnf.c.
References count_and_or(), mode, parser_node::next, parser_node::node_type, NULL, parser_walk_tree(), pt_and_or_form(), PT_EXPR_INFO_CNF_DONE, PT_EXPR_INFO_IS_FLAGED, PT_EXPR_INFO_SET_FLAG, pt_tag_start_of_cnf_post(), pt_transform_cnf_post(), pt_transform_cnf_pre(), PT_VALUE, TRANSFORM_CNF_AND_OR, and TRANSFORM_CNF_OR_COMPACT.
Referenced by mq_check_rewrite_select(), pt_bind_names(), pt_do_cnf(), and qo_optimize_queries().
PT_NODE* pt_do_cnf | ( | PARSER_CONTEXT * | parser, |
PT_NODE * | node, | ||
void * | arg, | ||
int * | continue_walk | ||
) |
Definition at line 1191 of file cnf.c.
References pt_select_info::from, pt_select_info::having, pt_spec_info::id, parser_node::info, parser_node::next, parser_node::node_type, pt_cnf(), PT_EXPR_INFO_CLEAR_FLAG, PT_EXPR_INFO_CNF_DONE, PT_SELECT, pt_tag_terms_with_specs(), pt_query_info::q, pt_statement_info::query, pt_query_info::select, find_id_info::spec, pt_statement_info::spec, and pt_select_info::where.
Referenced by meth_collapse_nodes(), and meth_translate().
|
static |
Definition at line 1070 of file cnf.c.
References find_id_info::in_query, NULL, and PT_CONTINUE_WALK.
Referenced by pt_tag_term_with_id().
|
static |
Definition at line 1029 of file cnf.c.
References pt_query_info::correlation_level, find_id_info::found, find_id_info::id, find_id_info::in_query, parser_node::info, find_id_info::join_spec, pt_statement_info::name, parser_node::node_type, PT_CONTINUE_WALK, PT_IS_QUERY_NODE_TYPE, PT_LIST_WALK, PT_NAME, pt_tag_term_with_id(), pt_statement_info::query, pt_name_info::spec_id, and find_id_info::tag_subqueries.
Referenced by pt_tag_term_with_id().
|
static |
Definition at line 205 of file cnf.c.
References pt_expr_info::arg1, pt_expr_info::arg2, assert, pt_statement_info::expr, parser_node::info, pt_expr_info::location, parser_node::next, parser_node::node_type, NULL, pt_expr_info::op, parser_node::or_next, pt_expr_info::paren_type, parser, parser_append_node(), parser_append_node_or(), parser_copy_tree(), parser_free_tree(), parser_new_node(), PT_AND, PT_EXPR, PT_INTERNAL_ERROR, pt_negate_op(), PT_NOT, PT_OR, PT_TYPE_LOGICAL, PT_VALUE, parser_node::spec_ident, and parser_node::type_enum.
Referenced by pt_and_or_form().
|
static |
Definition at line 87 of file cnf.c.
References parser_node::flag, parser_node::is_cnf_start, parser_node::next, NULL, parser_node::or_next, PT_TYPE_LOGICAL, and parser_node::type_enum.
Referenced by pt_cnf().
|
static |
Definition at line 1095 of file cnf.c.
References find_id_info::found, find_id_info::id, find_id_info::in_query, find_id_info::join_spec, NULL, parser_walk_leaves(), pt_find_name_id_post(), pt_find_name_id_pre(), parser_node::spec_ident, and find_id_info::tag_subqueries.
Referenced by pt_find_name_id_pre(), and pt_tag_terms_with_id().
|
static |
Definition at line 1122 of file cnf.c.
References pt_expr_info::arg1, pt_expr_info::arg2, pt_statement_info::expr, parser_node::info, parser_node::next, parser_node::node_type, pt_expr_info::op, PT_AND, PT_EXPR, and pt_tag_term_with_id().
Referenced by pt_tag_terms_with_specs().
|
static |
Definition at line 1163 of file cnf.c.
References pt_spec_info::derived_table_type, pt_spec_info::id, parser_node::info, parser_node::next, pt_spec_info::path_entities, PT_IS_WHACKED_SPEC, pt_tag_terms_with_id(), and pt_statement_info::spec.
Referenced by pt_do_cnf().
|
static |
Definition at line 584 of file cnf.c.
References similarity_context::accumulated_node_type, similarity_context::accumulated_opcode, pt_expr_info::arg1, pt_expr_info::arg2, CASE_SENSITIVE, parser_context::custom_print, pt_statement_info::expr, parser_node::info, similarity_context::max_number_of_nodes, mode, parser_node::next, parser_node::node_type, NULL, similarity_context::number_of_nodes, pt_expr_info::op, parser_node::or_next, pt_expr_info::paren_type, parser_append_node(), parser_copy_tree(), parser_copy_tree_list(), parser_free_tree(), parser_print_tree(), parser_walk_tree(), pt_and(), PT_AND, pt_calculate_similarity(), PT_CONTINUE_WALK, PT_CONVERT_RANGE, pt_count_input_markers(), PT_EXPR, PT_OR, PT_SELECT, pt_str_compare(), TRANSFORM_CNF_OR_COMPACT, and TRANSFORM_CNF_OR_PRUNE.
Referenced by pt_cnf().
|
static |
Definition at line 503 of file cnf.c.
References pt_statement_info::expr, parser_node::info, mode, parser_node::node_type, pt_expr_info::op, PT_AND, PT_EXPR, PT_OR, PT_SELECT, PT_STOP_WALK, and TRANSFORM_CNF_OR_PRUNE.
Referenced by pt_cnf().