61 #if defined(ENABLE_UNUSED_FUNCTION) 161 if (neg_op_type != 0)
211 if (neg_op_type == 0)
244 #if defined(ENABLE_UNUSED_FUNCTION) 274 pt_distributes_disjunction (parser, pt_aof_to_cnf (parser, node->
info.
expr.
arg1),
297 PT_NODE *new_node, *temp_1, *temp_2;
300 if (new_node ==
NULL)
341 new_node->
info.
expr.
arg1 = pt_aof_to_cnf (parser, temp_1);
342 new_node->
info.
expr.
arg2 = pt_aof_to_cnf (parser, temp_2);
381 new_node->
info.
expr.
arg1 = pt_aof_to_cnf (parser, temp_1);
382 new_node->
info.
expr.
arg2 = pt_aof_to_cnf (parser, temp_2);
423 list = pt_flatten_and_or (parser, node->
info.
expr.
arg1);
438 list = pt_flatten_and_or (parser, node->
info.
expr.
arg1);
464 int cnf_cnt, left, right;
475 cnf_cnt = left + right;
484 cnf_cnt = left * right;
586 PT_NODE *list, *lhs, *rhs, *last, *conj, *temp, *lhs_next, *rhs_next;
588 unsigned int save_custom;
589 char *lhs_str, *rhs_str;
591 PT_NODE *common_list, *lhs_prev, *rhs_prev, *arg1, *arg2;
594 int lhs_count, rhs_count;
614 for (last = list; last->
next; last = last->
next)
656 lhs_next = lhs->
next;
666 common_found =
false;
680 rhs_next = rhs->
next;
720 if (lhs_prev ==
NULL)
726 lhs_prev->
next = lhs_next;
734 if (rhs_prev ==
NULL)
740 rhs_prev->
next = rhs_next;
780 lhs_next = lhs->
next;
785 for (lhs = lhs_next; lhs; lhs = lhs_next)
787 lhs_next = lhs->
next;
790 arg1 =
pt_and (parser, arg1, lhs);
800 rhs_next = rhs->
next;
805 for (rhs = rhs_next; rhs; rhs = rhs_next)
807 rhs_next = rhs->
next;
810 arg2 =
pt_and (parser, arg2, rhs);
820 list =
pt_and (parser, arg1, arg2);
869 lhs_next = lhs->
next;
875 rhs_next = rhs->
next;
880 if (rhs_next ==
NULL)
892 if (lhs_next ==
NULL)
899 rhs->
next = rhs_next;
908 for (last = conj; last->
next; last = last->
next)
943 PT_NODE *list, *cnf, *next, *last;
976 for (last = cnf; last->
next; last = last->
next)
1003 for (last = cnf; last->
next; last = last->
next)
1135 terms = terms->
next;
1178 specs = specs->
next;
1206 for (; list; list = list->
next)
1226 for (; list; list = list->
next)
static PT_NODE * pt_tag_start_of_cnf_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
static PT_NODE * pt_transform_cnf_pre(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * pt_do_cnf(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
unsigned int accumulated_opcode
#define PT_EXPR_INFO_CNF_DONE
#define PT_EXPR_INFO_SET_FLAG(e, f)
static void pt_tag_terms_with_specs(PARSER_CONTEXT *parser, PT_NODE *terms, PT_NODE *join_spec, UINTPTR join_id)
static void pt_tag_term_with_id(PARSER_CONTEXT *parser, PT_NODE *term, UINTPTR id, UINTPTR join_spec, bool tag_subqueries)
union pt_query_info::@124 q
unsigned int custom_print
PT_NODE * parser_append_node_or(PT_NODE *node, PT_NODE *list)
unsigned int accumulated_node_type
static PT_NODE * pt_and_or_form(PARSER_CONTEXT *parser, PT_NODE *node)
PT_MISC_TYPE derived_table_type
PT_NODE * pt_and(PARSER_CONTEXT *parser_ptr, const PT_NODE *expression1, const PT_NODE *expression2)
#define PT_IS_QUERY_NODE_TYPE(x)
PT_NODE * parser_walk_leaves(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE_WALK_FUNCTION pre_function, void *pre_argument, PT_NODE_WALK_FUNCTION post_function, void *post_argument)
static enum scanner_mode mode
PT_NODE * parser_copy_tree(PARSER_CONTEXT *parser, const PT_NODE *tree)
int pt_str_compare(const char *p, const char *q, CASE_SENSITIVENESS case_flag)
PT_NODE * parser_append_node(PT_NODE *node, PT_NODE *list)
static int count_and_or(PARSER_CONTEXT *parser, const PT_NODE *node)
PT_NODE * parser_new_node(PARSER_CONTEXT *parser, PT_NODE_TYPE node_type)
static PT_NODE * pt_find_name_id_pre(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
void parser_free_tree(PARSER_CONTEXT *parser, PT_NODE *tree)
static PT_NODE * pt_find_name_id_post(PARSER_CONTEXT *parser, PT_NODE *tree, void *arg, int *continue_walk)
static PT_NODE * pt_transform_cnf_post(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
static void pt_tag_terms_with_id(PARSER_CONTEXT *parser, PT_NODE *terms, UINTPTR id, UINTPTR join_spec)
char * parser_print_tree(PARSER_CONTEXT *parser, const PT_NODE *node)
PT_OP_TYPE pt_negate_op(PT_OP_TYPE op)
#define PT_INTERNAL_ERROR(parser, what)
PT_NODE * pt_cnf(PARSER_CONTEXT *parser, PT_NODE *node)
static PT_NODE * pt_negate_expr(PARSER_CONTEXT *parser, PT_NODE *node)
#define PT_EXPR_INFO_CLEAR_FLAG(e, f)
struct parser_node::@132 flag
PT_NODE * pt_count_input_markers(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)
PT_NODE * parser_walk_tree(PARSER_CONTEXT *parser, PT_NODE *node, PT_NODE_WALK_FUNCTION pre_function, void *pre_argument, PT_NODE_WALK_FUNCTION post_function, void *post_argument)
#define PT_EXPR_INFO_IS_FLAGED(e, f)
PT_NODE * parser_copy_tree_list(PARSER_CONTEXT *parser, PT_NODE *tree)
static PT_NODE * pt_calculate_similarity(PARSER_CONTEXT *parser, PT_NODE *node, void *arg, int *continue_walk)