diff options
author | acurtis@xiphis.org <> | 2005-08-07 03:16:15 +0100 |
---|---|---|
committer | acurtis@xiphis.org <> | 2005-08-07 03:16:15 +0100 |
commit | 015447b21191ee5dce8f08631ff111595b3533ea (patch) | |
tree | 58a1759c94967db7d8ef575fe9f3af0cec92c74a /sql/sql_class.h | |
parent | de158e94a01cb8e59620ae69aa6beb20c46040df (diff) | |
download | mariadb-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.h | 14 |
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; |