summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authoracurtis@xiphis.org <>2005-08-07 03:16:15 +0100
committeracurtis@xiphis.org <>2005-08-07 03:16:15 +0100
commit015447b21191ee5dce8f08631ff111595b3533ea (patch)
tree58a1759c94967db7d8ef575fe9f3af0cec92c74a /sql/sql_class.h
parentde158e94a01cb8e59620ae69aa6beb20c46040df (diff)
downloadmariadb-git-015447b21191ee5dce8f08631ff111595b3533ea.tar.gz
Bug#10109
"INSERT .. SELECT ... ON DUPLICATE KEY UPDATE fails" Ensure that check_insert_fields() is only called once when doing an INSERT..SELECT
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index b6bf0dcdc45..bc651b32d94 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -1236,19 +1236,27 @@ class select_insert :public select_result_interceptor {
List<Item> *fields;
ulonglong last_insert_id;
COPY_INFO info;
+ TABLE_LIST *insert_table_list;
+ TABLE_LIST *dup_table_list;
select_insert(TABLE *table_par, List<Item> *fields_par,
enum_duplicates duplic, bool ignore)
- :table(table_par), fields(fields_par), last_insert_id(0)
+ :table(table_par), fields(fields_par), last_insert_id(0),
+ insert_table_list(0), dup_table_list(0)
{
bzero((char*) &info,sizeof(info));
info.ignore= ignore;
info.handle_duplicates=duplic;
}
- select_insert(TABLE *table_par, List<Item> *fields_par,
+ select_insert(TABLE *table_par,
+ TABLE_LIST *insert_table_list_par,
+ TABLE_LIST *dup_table_list_par,
+ List<Item> *fields_par,
List<Item> *update_fields, List<Item> *update_values,
enum_duplicates duplic, bool ignore)
- :table(table_par), fields(fields_par), last_insert_id(0)
+ :table(table_par), fields(fields_par), last_insert_id(0),
+ insert_table_list(insert_table_list_par),
+ dup_table_list(dup_table_list_par)
{
bzero((char*) &info,sizeof(info));
info.ignore= ignore;