#ifndef DELAYABLE_INSERT_OPERATION_H
#define DELAYABLE_INSERT_OPERATION_H
Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "sql_class.h"
An insert operation that can be delayed.
*/
class Delayable_insert_operation : public COPY_INFO
{
public:
This is an INSERT, and as function defaults have been set by the client
thread already, they needn't be set again:
*/
Delayable_insert_operation() :
COPY_INFO(COPY_INFO::INSERT_OPERATION,
NULL,
false,
DUP_ERROR,
false)
{}
This is a backdoor interface for supporting legacy code for delayed
inserts. The delayed insert handler abuses COPY_INFO by having a shared
instance for all delayed insert operations, and keeping a copy of the
state that is local to the current insert operation inside each delayed
row. Then these two members must be altered before writing each record.
*/
void set_dup_and_ignore(enum enum_duplicates d, bool i)
{
handle_duplicates= d;
ignore= i;
}
};
#endif