82
82
#define DICT_TF_FORMAT_SHIFT 5 /* file format */
83
#define DICT_TF_FORMAT_MASK (127 << DICT_TF_FORMAT_SHIFT)
83
#define DICT_TF_FORMAT_MASK \
84
((~(~0 << (DICT_TF_BITS - DICT_TF_FORMAT_SHIFT))) << DICT_TF_FORMAT_SHIFT)
84
85
#define DICT_TF_FORMAT_51 0 /*!< InnoDB/MySQL up to 5.1 */
85
86
#define DICT_TF_FORMAT_ZIP 1 /*!< InnoDB plugin for 5.1:
87
88
new BLOB treatment */
88
89
/** Maximum supported file format */
89
90
#define DICT_TF_FORMAT_MAX DICT_TF_FORMAT_ZIP
91
92
#define DICT_TF_BITS 6 /*!< number of flag bits */
92
93
#if (1 << (DICT_TF_BITS - DICT_TF_FORMAT_SHIFT)) <= DICT_TF_FORMAT_MAX
93
94
# error "DICT_TF_BITS is insufficient for DICT_TF_FORMAT_MAX"
98
/** @brief Additional table flags.
100
These flags will be stored in SYS_TABLES.MIX_LEN. All unused flags
101
will be written as 0. The column may contain garbage for tables
102
created with old versions of InnoDB that only implemented
103
ROW_FORMAT=REDUNDANT. */
105
#define DICT_TF2_SHIFT DICT_TF_BITS
108
#define DICT_TF2_TEMPORARY 1 /*!< TRUE for tables from
109
CREATE TEMPORARY TABLE. */
110
#define DICT_TF2_BITS (DICT_TF2_SHIFT + 1)
111
/*!< Total number of bits
98
116
/**********************************************************************//**
99
117
Creates a table memory object.
100
118
@return own: table object */
374
392
unsigned space:32;
375
393
/*!< space where the clustered index of the
376
394
table is placed */
377
unsigned flags:DICT_TF_BITS;/*!< DICT_TF_COMPACT, ... */
395
unsigned flags:DICT_TF2_BITS;/*!< DICT_TF_COMPACT, ... */
378
396
unsigned ibd_file_missing:1;
379
397
/*!< TRUE if this is in a single-table
380
398
tablespace and the .ibd file is missing; then