summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-12-01 00:11:22 +0200
committerunknown <bell@sanja.is.com.ua>2002-12-01 00:11:22 +0200
commit1941d9b597af4a80820c4a40020c2ee4764996ee (patch)
tree39b4f91d117b2a844051a756826b043bbafbaa7f /sql/sql_insert.cc
parent0b270eb4612e0c7ba32193171852be8982b0d643 (diff)
downloadmariadb-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.cc13
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
{