From 1fd05de8a0d6946a438183588399eb8c4289895f Mon Sep 17 00:00:00 2001 From: zhengchao Date: Wed, 4 Nov 2020 16:56:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dserial=20rule=E4=B8=AD?= =?UTF-8?q?=E5=AD=98=E5=82=A8foreign=20key=E7=9A=84=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BA=86=E9=94=99=E8=AF=AF=E7=9A=84=E4=B8=8B?= =?UTF-8?q?=E6=A0=87=E7=9A=84bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entry/Maat_command.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/entry/Maat_command.cpp b/src/entry/Maat_command.cpp index 0b7bdb5..d84e5a8 100644 --- a/src/entry/Maat_command.cpp +++ b/src/entry/Maat_command.cpp @@ -1440,7 +1440,7 @@ void _get_foregin_keys(struct serial_rule_t* p_rule, int* foreign_columns, int n p_rule->table_name, p_rule->rule_id, p_foreign); continue; } - p_rule->f_keys[i].column=foreign_columns[i]; + p_rule->f_keys[p_rule->n_foreign].column=foreign_columns[i]; foreign_key_size=foreign_key_size-strlen(foreign_source_prefix); p_foreign+=strlen(foreign_source_prefix); if(0!=strncmp(p_foreign, foreign_key_prefix, strlen(foreign_key_prefix))) @@ -1449,14 +1449,13 @@ void _get_foregin_keys(struct serial_rule_t* p_rule, int* foreign_columns, int n "%s, %d foreign key prefix %s is not recommended.", p_rule->table_name, p_rule->rule_id, p_foreign); } - p_rule->f_keys[i].key=(char*)calloc(sizeof(char),foreign_key_size+1); - memcpy(p_rule->f_keys[i].key, p_foreign, foreign_key_size); - p_rule->f_keys[i].filename=get_foreign_cont_filename(p_rule->table_name, p_rule->rule_id, p_rule->f_keys[i].key, dir); + p_rule->f_keys[p_rule->n_foreign].key=ALLOC(char, foreign_key_size+1); + memcpy(p_rule->f_keys[p_rule->n_foreign].key, p_foreign, foreign_key_size); + p_rule->f_keys[p_rule->n_foreign].filename=get_foreign_cont_filename(p_rule->table_name, p_rule->rule_id, p_rule->f_keys[p_rule->n_foreign].key, dir); p_rule->n_foreign++; } - if(i==0) + if(p_rule->n_foreign==0) { - p_rule->n_foreign=0; free(p_rule->f_keys); p_rule->f_keys=NULL; }