MySQL 8.0.31
Source Code Documentation
handler0alter.h
Go to the documentation of this file.
1/*****************************************************************************
2
3Copyright (c) 2005, 2022, Oracle and/or its affiliates.
4
5This program is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License, version 2.0, as published by the
7Free Software Foundation.
8
9This program is also distributed with certain software (including but not
10limited to OpenSSL) that is licensed under separate terms, as designated in a
11particular file or component or in included license documentation. The authors
12of MySQL hereby grant you an additional permission to link the program and
13your derivative works with the separately licensed software that they have
14included with MySQL.
15
16This program is distributed in the hope that it will be useful, but WITHOUT
17ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0,
19for more details.
20
21You should have received a copy of the GNU General Public License along with
22this program; if not, write to the Free Software Foundation, Inc.,
2351 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
25*****************************************************************************/
26
27/** @file include/handler0alter.h
28 Smart ALTER TABLE
29 *******************************************************/
30
31#ifndef handler0alter_h
32#define handler0alter_h
33
34constexpr uint32_t ERROR_STR_LENGTH = 1024;
35
36/** Copies an InnoDB record to table->record[0].
37@param[in,out] table Mysql table
38@param[in] rec Record
39@param[in] index Index
40@param[in] offsets rec_get_offsets( rec, index, ...) */
41void innobase_rec_to_mysql(struct TABLE *table, const rec_t *rec,
42 const dict_index_t *index, const ulint *offsets);
43
44/** Copies an InnoDB index entry to table->record[0].
45@param[in,out] table Mysql table
46@param[in] index Innodb index
47@param[in] fields Innodb index fields */
48void innobase_fields_to_mysql(struct TABLE *table, const dict_index_t *index,
49 const dfield_t *fields);
50
51/** Copies an InnoDB row to table->record[0].
52@param[in,out] table Mysql table
53@param[in] itab Innodb table
54@param[in] row Innodb row */
55void innobase_row_to_mysql(struct TABLE *table, const dict_table_t *itab,
56 const dtuple_t *row);
57
58/** Resets table->record[0]. */
59void innobase_rec_reset(struct TABLE *table); /*!< in/out: MySQL table */
60
61#endif /* handler0alter_h */
void innobase_row_to_mysql(struct TABLE *table, const dict_table_t *itab, const dtuple_t *row)
Copies an InnoDB row to table->record[0].
Definition: handler0alter.cc:2312
void innobase_fields_to_mysql(struct TABLE *table, const dict_index_t *index, const dfield_t *fields)
Copies an InnoDB index entry to table->record[0].
Definition: handler0alter.cc:2267
constexpr uint32_t ERROR_STR_LENGTH
Definition: handler0alter.h:34
void innobase_rec_reset(struct TABLE *table)
Resets table->record[0].
Definition: handler0alter.cc:2350
void innobase_rec_to_mysql(struct TABLE *table, const rec_t *rec, const dict_index_t *index, const ulint *offsets)
Copies an InnoDB record to table->record[0].
Definition: handler0alter.cc:2225
byte rec_t
Definition: rem0types.h:40
Definition: table.h:1396
Structure for an SQL data field.
Definition: data0data.h:604
Data structure for an index.
Definition: dict0mem.h:1021
Data structure for a database table.
Definition: dict0mem.h:1884
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:681
unsigned long int ulint
Definition: univ.i:407