1/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
6
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
11
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
15
16#ifndef SQL_UPDATE_INCLUDED
17#define SQL_UPDATE_INCLUDED
18
19#include "sql_class.h" /* enum_duplicates */
20
21class Item;
22struct TABLE_LIST;
23class THD;
24
25typedef class st_select_lex SELECT_LEX;
26typedef class st_select_lex_unit SELECT_LEX_UNIT;
27
28bool mysql_prepare_update(THD *thd, TABLE_LIST *table_list,
29 Item **conds, uint order_num, ORDER *order);
30bool check_unique_table(THD *thd, TABLE_LIST *table_list);
31int mysql_update(THD *thd,TABLE_LIST *tables,List<Item> &fields,
32 List<Item> &values,COND *conds,
33 uint order_num, ORDER *order, ha_rows limit,
34 enum enum_duplicates handle_duplicates, bool ignore,
35 ha_rows *found_return, ha_rows *updated_return);
36bool mysql_multi_update(THD *thd, TABLE_LIST *table_list,
37 List<Item> *fields, List<Item> *values,
38 COND *conds, ulonglong options,
39 enum enum_duplicates handle_duplicates, bool ignore,
40 SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex,
41 multi_update **result);
42bool records_are_comparable(const TABLE *table);
43bool compare_record(const TABLE *table);
44
45#endif /* SQL_UPDATE_INCLUDED */
46