diff options
author | unknown <bell@sanja.is.com.ua> | 2002-12-01 00:11:22 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-12-01 00:11:22 +0200 |
commit | 1941d9b597af4a80820c4a40020c2ee4764996ee (patch) | |
tree | 39b4f91d117b2a844051a756826b043bbafbaa7f /sql/sql_insert.cc | |
parent | 0b270eb4612e0c7ba32193171852be8982b0d643 (diff) | |
download | mariadb-git-1941d9b597af4a80820c4a40020c2ee4764996ee.tar.gz |
fix of error handling
mysql-test/r/subselect.result:
test of error handling with subselect
mysql-test/t/subselect.test:
test of error handling with subselect
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 83b125ee630..9ee824d0e2c 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -235,9 +235,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, if (fields.elements || !value_count) { restore_record(table,2); // Get empty record - if (fill_record(fields,*values) || check_null_fields(thd,table)) + if (fill_record(fields,*values)|| thd->net.report_error || + check_null_fields(thd,table)) { - if (values_list.elements != 1) + if (values_list.elements != 1 && !thd->net.report_error) { info.records++; continue; @@ -252,9 +253,9 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, restore_record(table,2); // Get empty record else table->record[0][0]=table->record[2][0]; // Fix delete marker - if (fill_record(table->field,*values)) + if (fill_record(table->field,*values) || thd->net.report_error) { - if (values_list.elements != 1) + if (values_list.elements != 1 && ! thd->net.report_error) { info.records++; continue; @@ -1349,7 +1350,7 @@ bool select_insert::send_data(List<Item> &values) fill_record(*fields,values); else fill_record(table->field,values); - if (write_record(table,&info)) + if (thd->net.report_error || write_record(table,&info)) return 1; if (table->next_number_field) // Clear for next record { @@ -1463,7 +1464,7 @@ bool select_create::send_data(List<Item> &values) return 0; } fill_record(field,values); - if (write_record(table,&info)) + if (thd->net.report_error ||write_record(table,&info)) return 1; if (table->next_number_field) // Clear for next record { |