From 2962c6c90a2d0d98f8964724f4658f836774e88b Mon Sep 17 00:00:00 2001 From: zhengchao Date: Mon, 6 Jul 2020 19:46:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4region?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=AC=94=E8=AF=AF=E5=AF=BC=E8=87=B4=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E8=AE=A1=E7=AE=97rulescan=20expr=5Fid=E7=9A=84bug?= =?UTF-8?q?=EF=BC=8C=E8=AF=A5bug=E5=AF=BC=E8=87=B4rulescan=5Fupdate?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84assert=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entry/Maat_rule.cpp | 34 +++++++++++++-------------- src/inc_internal/Maat_rule_internal.h | 2 ++ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/entry/Maat_rule.cpp b/src/entry/Maat_rule.cpp index 6a944fc..ad029f1 100644 --- a/src/entry/Maat_rule.cpp +++ b/src/entry/Maat_rule.cpp @@ -715,7 +715,8 @@ void op_expr_add_rule(struct op_expr_t* op_expr,scan_rule_t* p_rule) } void Maat_region_inner_free(struct Maat_region_inner* region) { - assert(region->magic_num==REGION_RULE_MAGIC); + assert(region->magic_num==REGION_RULE_MAGIC); + assert(region->expr_id_cnt==region->expr_id_ub-region->expr_id_lb+1); region->magic_num=0; free(region); } @@ -1186,11 +1187,11 @@ int add_expr_rule(struct Maat_table_schema* table,struct db_str_rule_t* db_rule, } expr_id=scanner->exprid_generator++; Maat_region_inner_add_expr_id(u_para, expr_id); - op_expr=create_op_expr(expr_id - ,0 //add - ,u_para - ,table->table_id - ); + op_expr=create_op_expr(expr_id, + RULESCAN_OP_ADD, + u_para, + table->table_id); + for(k=0;kexprid_generator++; Maat_region_inner_add_expr_id(u_para, expr_id); - op_expr=create_op_expr(expr_id - ,0 - ,u_para - ,table->table_id - ); + op_expr=create_op_expr(expr_id, + RULESCAN_OP_ADD, + u_para, + table->table_id); p_rule=create_rs_ip_rule(make_sub_type(table->table_id,CHARSET_NONE,0) ,db_ip_rule); op_expr_add_rule(op_expr, p_rule); @@ -1352,11 +1352,11 @@ int add_intval_rule(struct Maat_table_schema* table,struct db_intval_rule* intva expr_id=scanner->exprid_generator++; Maat_region_inner_add_expr_id(u_para, expr_id); - op_expr=create_op_expr(expr_id - ,0 - ,u_para - ,table->table_id - ); + op_expr=create_op_expr(expr_id, + RULESCAN_OP_ADD, + u_para, + table->table_id); + p_rule=create_rs_intval_rule(make_sub_type(table->table_id,CHARSET_NONE,0) ,intval_rule); op_expr_add_rule(op_expr,p_rule); @@ -1411,7 +1411,7 @@ int del_region_rule(struct Maat_table_schema* table, int region_id, int group_id case TABLE_TYPE_INTERVAL: for(i=0;iexpr_id_cnt;i++) { - op_expr=create_op_expr(region->expr_id_ub+i, 1, NULL, table->table_id);//del expr + op_expr=create_op_expr(region->expr_id_lb+i, RULESCAN_OP_DEL, NULL, table->table_id);//del expr op_expr->rule_type=rule_type; MESA_lqueue_join_tail(maat_scanner->region_update_q, &op_expr, sizeof(void*)); } diff --git a/src/inc_internal/Maat_rule_internal.h b/src/inc_internal/Maat_rule_internal.h index c016ff0..df61050 100644 --- a/src/inc_internal/Maat_rule_internal.h +++ b/src/inc_internal/Maat_rule_internal.h @@ -127,6 +127,8 @@ struct db_group_rule_t int virtual_table_id; int clause_id; }; +#define RULESCAN_OP_ADD 0 +#define RULESCAN_OP_DEL 1 struct op_expr_t { boolean_expr_t* p_expr;