2009-02-17 09:33:38 +00:00
|
|
|
/*****************************************************************************
|
|
|
|
|
|
|
|
Copyright (c) 1996, 2009, Innobase Oy. 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., 59 Temple
|
|
|
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
2005-10-27 07:29:40 +00:00
|
|
|
/******************************************************
|
|
|
|
Row operation global types
|
|
|
|
|
|
|
|
Created 12/27/1996 Heikki Tuuri
|
|
|
|
*******************************************************/
|
|
|
|
|
|
|
|
#ifndef row0types_h
|
|
|
|
#define row0types_h
|
|
|
|
|
|
|
|
typedef struct plan_struct plan_t;
|
|
|
|
|
|
|
|
typedef struct upd_struct upd_t;
|
|
|
|
|
|
|
|
typedef struct upd_field_struct upd_field_t;
|
|
|
|
|
|
|
|
typedef struct upd_node_struct upd_node_t;
|
|
|
|
|
|
|
|
typedef struct del_node_struct del_node_t;
|
|
|
|
|
|
|
|
typedef struct ins_node_struct ins_node_t;
|
|
|
|
|
|
|
|
typedef struct sel_node_struct sel_node_t;
|
|
|
|
|
|
|
|
typedef struct open_node_struct open_node_t;
|
|
|
|
|
|
|
|
typedef struct fetch_node_struct fetch_node_t;
|
|
|
|
|
2006-02-23 19:25:29 +00:00
|
|
|
typedef struct row_printf_node_struct row_printf_node_t;
|
2005-10-27 07:29:40 +00:00
|
|
|
typedef struct sel_buf_struct sel_buf_t;
|
|
|
|
|
|
|
|
typedef struct undo_node_struct undo_node_t;
|
|
|
|
|
|
|
|
typedef struct purge_node_struct purge_node_t;
|
|
|
|
|
2006-09-26 07:28:23 +00:00
|
|
|
typedef struct row_ext_struct row_ext_t;
|
|
|
|
|
branches/zip: Implement the reporting of duplicate key values to MySQL.
innobase_rec_to_mysql(): New function, for converting an InnoDB clustered
index record to MySQL table->record[0]. TODO: convert integer fields.
Currently, integer fields are in big-endian byte order instead of
host byte order, and signed integer fields are offset by 0x80000000.
innobase_rec_reset(): New function, for resetting table->record[0].
row_merge_build_indexes(): Add the parameter TABLE* table (the MySQL table
handle) for reporting duplicate key values.
dtuple_from_fields(): New function, to convert an array of dfield_t* to
dtuple_t.
dtuple_get_n_ext(): New function, to compute the number of externally stored
fields.
row_merge_dup_t: Structure for counting and reporting duplicate records.
row_merge_dup_report(): Function for counting and reporting duplicate records.
row_merge_tuple_cmp(), row_merge_tuple_sort(): Replace the ulint* n_dup
parameter with row_merge_dup_t* dup.
row_merge_buf_sort(): Add the parameter row_merge_dup_t* dup, which is
NULL when sorting a non-unique index.
row_merge_buf_write(), row_merge_heap_create(), row_merge_read_rec(),
row_merge_cmp(), row_merge_read_clustered_index(), row_merge_blocks(),
row_merge(), row_merge_sort(): Add const qualifiers.
row_merge_read_clustered_index(): Use a common error handling branch err_exit.
Invoke row_merge_buf_sort() differently on unique indexes.
row_merge_blocks(): note TODO: We could invoke innobase_rec_to_mysql()
to report duplicate key values when creating a clustered index.
2007-09-26 11:56:26 +00:00
|
|
|
/* MySQL data types */
|
|
|
|
typedef struct st_table TABLE;
|
|
|
|
|
2005-10-27 07:29:40 +00:00
|
|
|
#endif
|