MySQL 8.1.0
Source Code Documentation
fsp0types.h
Go to the documentation of this file.
1/*****************************************************************************
2
3Copyright (c) 1995, 2023, 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/******************************************************
28@file include/fsp0types.h
29File space management types
30
31Created May 26, 2009 Vasil Dimov
32*******************************************************/
33
34#ifndef fsp0types_h
35#define fsp0types_h
36
37#include "fil0types.h"
38#include "univ.i"
39
40/** @name Flags for inserting records in order
41If records are inserted in order, there are the following
42flags to tell this (their type is made byte for the compiler
43to warn if direction and hint parameters are switched in
44fseg_alloc_free_page) */
45/** @{ */
46/** alphabetically upwards */
47constexpr byte FSP_UP = 111;
48/** alphabetically downwards */
49constexpr byte FSP_DOWN = 112;
50/** no order */
51constexpr byte FSP_NO_DIR = 113;
52/** @} */
53
54/** File space extent size in pages
55page size | file space extent size
56----------+-----------------------
57 4 KiB | 256 pages = 1 MiB
58 8 KiB | 128 pages = 1 MiB
59 16 KiB | 64 pages = 1 MiB
60 32 KiB | 64 pages = 2 MiB
61 64 KiB | 64 pages = 4 MiB
62*/
63#define FSP_EXTENT_SIZE \
64 static_cast<page_no_t>( \
65 ((UNIV_PAGE_SIZE <= (16384) \
66 ? (1048576 / UNIV_PAGE_SIZE) \
67 : ((UNIV_PAGE_SIZE <= (32768)) ? (2097152 / UNIV_PAGE_SIZE) \
68 : (4194304 / UNIV_PAGE_SIZE)))))
69
70/** File space extent size (four megabyte) in pages for MAX page size */
71constexpr size_t FSP_EXTENT_SIZE_MAX = 4194304 / UNIV_PAGE_SIZE_MAX;
72
73/** File space extent size (one megabyte) in pages for MIN page size */
74constexpr size_t FSP_EXTENT_SIZE_MIN = 1048576 / UNIV_PAGE_SIZE_MIN;
75
76/** On a page of any file segment, data
77may be put starting from this offset */
78constexpr uint32_t FSEG_PAGE_DATA = FIL_PAGE_DATA;
79
80/** @name File segment header
81The file segment header points to the inode describing the file segment. */
82/** @{ */
83/** Data type for file segment header */
84typedef byte fseg_header_t;
85
86/** space id of the inode */
87constexpr uint32_t FSEG_HDR_SPACE = 0;
88/** page number of the inode */
89constexpr uint32_t FSEG_HDR_PAGE_NO = 4;
90/** byte offset of the inode */
91constexpr uint32_t FSEG_HDR_OFFSET = 8;
92/** Length of the file system header, in bytes */
93constexpr uint32_t FSEG_HEADER_SIZE = 10;
94/** @} */
95
96#ifdef UNIV_DEBUG
97
98struct mtr_t;
99
100/** A wrapper class to print the file segment header information. */
102 public:
103 /** Constructor of fseg_header.
104 @param[in] header Underlying file segment header object
105 @param[in] mtr Mini-transaction. No redo logs are
106 generated, only latches are checked within
107 mini-transaction */
108 fseg_header(const fseg_header_t *header, mtr_t *mtr)
109 : m_header(header), m_mtr(mtr) {}
110
111 /** Print the file segment header to the given output stream.
112 @param[in] out the output stream into which the object is printed.
113 @retval the output stream into which the object was printed. */
114 std::ostream &to_stream(std::ostream &out) const;
115
116 private:
117 /** The underlying file segment header */
119
120 /** The mini-transaction, which is used mainly to check whether
121 appropriate latches have been taken by the calling thread. */
123};
124
125/* Overloading the global output operator to print a file segment header
126@param[in,out] out the output stream into which object will be printed
127@param[in] header the file segment header to be printed
128@retval the output stream */
129inline std::ostream &operator<<(std::ostream &out, const fseg_header &header) {
130 return (header.to_stream(out));
131}
132#endif /* UNIV_DEBUG */
133
134/** Flags for fsp_reserve_free_extents */
136 FSP_NORMAL, /* reservation during normal B-tree operations */
137 FSP_UNDO, /* reservation done for undo logging */
138 FSP_CLEANING, /* reservation done during purge operations */
139 FSP_BLOB /* reservation being done for BLOB insertion */
141
142/* Number of pages described in a single descriptor page: currently each page
143description takes less than 1 byte; a descriptor page is repeated every
144this many file pages */
145/* #define XDES_DESCRIBED_PER_PAGE UNIV_PAGE_SIZE */
146/* This has been replaced with either UNIV_PAGE_SIZE or page_zip->size. */
147
148/** @name The space low address page map
149The pages at FSP_XDES_OFFSET and FSP_IBUF_BITMAP_OFFSET are repeated
150every XDES_DESCRIBED_PER_PAGE pages in every tablespace. */
151/** @{ */
152/*--------------------------------------*/
153/** extent descriptor */
154constexpr uint32_t FSP_XDES_OFFSET = 0;
155/** insert buffer bitmap; The ibuf bitmap pages are the ones whose page number
156is the number above plus a multiple of XDES_DESCRIBED_PER_PAGE */
157constexpr uint32_t FSP_IBUF_BITMAP_OFFSET = 1;
158/** in every tablespace */
159constexpr uint32_t FSP_FIRST_INODE_PAGE_NO = 2;
160
161/** The following pages exist in the system tablespace (space 0). */
162/** insert buffer header page, in tablespace 0 */
163constexpr uint32_t FSP_IBUF_HEADER_PAGE_NO = 3;
164/** insert buffer B-tree root page in tablespace 0;
165The ibuf tree root page number in tablespace 0; its fseg inode is on the page
166number FSP_FIRST_INODE_PAGE_NO */
167constexpr uint32_t FSP_IBUF_TREE_ROOT_PAGE_NO = 4;
168/** transaction system header, in tablespace 0 */
169constexpr uint32_t FSP_TRX_SYS_PAGE_NO = 5;
170/** first rollback segment page, in tablespace 0 */
171constexpr uint32_t FSP_FIRST_RSEG_PAGE_NO = 6;
172/** data dictionary header page, in tablespace 0 */
173constexpr uint32_t FSP_DICT_HDR_PAGE_NO = 7;
174
175/* The following page exists in each v8 Undo Tablespace.
176(space_id = SRV_LOG_SPACE_FIRST_ID - undo_space_num)
177(undo_space_num = rseg_array_slot_num + 1) */
178
179/** rollback segment directory page number in each undo tablespace */
180constexpr uint32_t FSP_RSEG_ARRAY_PAGE_NO = 3;
181/*--------------------------------------*/
182/** @} */
183
184/** Validate the tablespace flags.
185These flags are stored in the tablespace header at offset FSP_SPACE_FLAGS.
186They should be 0 for ROW_FORMAT=COMPACT and ROW_FORMAT=REDUNDANT.
187The newer row formats, COMPRESSED and DYNAMIC, will have at least
188the DICT_TF_COMPACT bit set.
189@param[in] flags Tablespace flags
190@return true if valid, false if not */
191[[nodiscard]] bool fsp_flags_is_valid(uint32_t flags);
192
193/** Check if tablespace is system temporary.
194@param[in] space_id tablespace ID
195@return true if tablespace is system temporary. */
197
198/** Check if the tablespace is session temporary.
199@param[in] space_id tablespace ID
200@return true if tablespace is a session temporary tablespace. */
202
203/** Check if tablespace is global temporary.
204@param[in] space_id tablespace ID
205@return true if tablespace is global temporary. */
207
208/** Check if checksum is disabled for the given space.
209@param[in] space_id tablespace ID
210@return true if checksum is disabled for given space. */
212
213#ifdef UNIV_DEBUG
214/** Skip some of the sanity checks that are time consuming even in debug mode
215and can affect frequent verification runs that are done to ensure stability of
216the product.
217@return true if check should be skipped for given space. */
218bool fsp_skip_sanity_check(space_id_t space_id);
219#endif /* UNIV_DEBUG */
220
221/** @defgroup fsp_flags InnoDB Tablespace Flag Constants
222@{ */
223
224/** Width of the POST_ANTELOPE flag */
225constexpr uint32_t FSP_FLAGS_WIDTH_POST_ANTELOPE = 1;
226/** Number of flag bits used to indicate the tablespace zip page size */
227constexpr uint32_t FSP_FLAGS_WIDTH_ZIP_SSIZE = 4;
228/** Width of the ATOMIC_BLOBS flag. The ability to break up a long
229column into an in-record prefix and an externally stored part is available
230to ROW_FORMAT=REDUNDANT and ROW_FORMAT=COMPACT. */
231constexpr uint32_t FSP_FLAGS_WIDTH_ATOMIC_BLOBS = 1;
232/** Number of flag bits used to indicate the tablespace page size */
233constexpr uint32_t FSP_FLAGS_WIDTH_PAGE_SSIZE = 4;
234/** Width of the DATA_DIR flag. This flag indicates that the tablespace
235is found in a remote location, not the default data directory. */
236constexpr uint32_t FSP_FLAGS_WIDTH_DATA_DIR = 1;
237/** Width of the SHARED flag. This flag indicates that the tablespace
238was created with CREATE TABLESPACE and can be shared by multiple tables. */
239constexpr uint32_t FSP_FLAGS_WIDTH_SHARED = 1;
240/** Width of the TEMPORARY flag. This flag indicates that the tablespace
241is a temporary tablespace and everything in it is temporary, meaning that
242it is for a single client and should be deleted upon startup if it exists. */
243constexpr uint32_t FSP_FLAGS_WIDTH_TEMPORARY = 1;
244/** Width of the encryption flag. This flag indicates that the tablespace
245is a tablespace with encryption. */
246constexpr uint32_t FSP_FLAGS_WIDTH_ENCRYPTION = 1;
247/** Width of the SDI flag. This flag indicates the presence of
248tablespace dictionary.*/
249constexpr uint32_t FSP_FLAGS_WIDTH_SDI = 1;
250
251/** Width of all the currently known tablespace flags */
252constexpr uint32_t FSP_FLAGS_WIDTH =
258
259/** A mask of all the known/used bits in tablespace flags */
260constexpr uint32_t FSP_FLAGS_MASK = ~(~0U << FSP_FLAGS_WIDTH);
261
262/** Zero relative shift position of the POST_ANTELOPE field */
263constexpr uint32_t FSP_FLAGS_POS_POST_ANTELOPE = 0;
264/** Zero relative shift position of the ZIP_SSIZE field */
265constexpr uint32_t FSP_FLAGS_POS_ZIP_SSIZE =
267/** Zero relative shift position of the ATOMIC_BLOBS field */
268constexpr uint32_t FSP_FLAGS_POS_ATOMIC_BLOBS =
270/** Zero relative shift position of the PAGE_SSIZE field */
271constexpr uint32_t FSP_FLAGS_POS_PAGE_SSIZE =
273/** Zero relative shift position of the start of the DATA_DIR bit */
274constexpr uint32_t FSP_FLAGS_POS_DATA_DIR =
276/** Zero relative shift position of the start of the SHARED bit */
277constexpr uint32_t FSP_FLAGS_POS_SHARED =
279/** Zero relative shift position of the start of the TEMPORARY bit */
280constexpr uint32_t FSP_FLAGS_POS_TEMPORARY =
282/** Zero relative shift position of the start of the ENCRYPTION bit */
283constexpr uint32_t FSP_FLAGS_POS_ENCRYPTION =
285/** Zero relative shift position of the start of the SDI bits */
286constexpr uint32_t FSP_FLAGS_POS_SDI =
288
289/** Zero relative shift position of the start of the UNUSED bits */
290constexpr uint32_t FSP_FLAGS_POS_UNUSED =
292
293/** Bit mask of the POST_ANTELOPE field */
296/** Bit mask of the ZIP_SSIZE field */
297constexpr uint32_t FSP_FLAGS_MASK_ZIP_SSIZE =
299/** Bit mask of the ATOMIC_BLOBS field */
300constexpr uint32_t FSP_FLAGS_MASK_ATOMIC_BLOBS =
302/** Bit mask of the PAGE_SSIZE field */
303constexpr uint32_t FSP_FLAGS_MASK_PAGE_SSIZE =
305/** Bit mask of the DATA_DIR field */
306constexpr uint32_t FSP_FLAGS_MASK_DATA_DIR =
308/** Bit mask of the SHARED field */
309constexpr uint32_t FSP_FLAGS_MASK_SHARED = (~(~0U << FSP_FLAGS_WIDTH_SHARED))
311/** Bit mask of the TEMPORARY field */
312constexpr uint32_t FSP_FLAGS_MASK_TEMPORARY =
314/** Bit mask of the ENCRYPTION field */
315constexpr uint32_t FSP_FLAGS_MASK_ENCRYPTION =
317/** Bit mask of the SDI field */
318constexpr uint32_t FSP_FLAGS_MASK_SDI = (~(~0U << FSP_FLAGS_WIDTH_SDI))
320
321/** Return the value of the POST_ANTELOPE field */
322constexpr uint32_t FSP_FLAGS_GET_POST_ANTELOPE(uint32_t flags) {
324}
325/** Return the value of the ZIP_SSIZE field */
326constexpr uint32_t FSP_FLAGS_GET_ZIP_SSIZE(uint32_t flags) {
328}
329/** Return the value of the ATOMIC_BLOBS field */
330constexpr uint32_t FSP_FLAGS_HAS_ATOMIC_BLOBS(uint32_t flags) {
332}
333/** Return the value of the PAGE_SSIZE field */
334constexpr uint32_t FSP_FLAGS_GET_PAGE_SSIZE(uint32_t flags) {
336}
337/** Return the value of the DATA_DIR field */
338constexpr uint32_t FSP_FLAGS_HAS_DATA_DIR(uint32_t flags) {
340}
341/** Return the contents of the SHARED field */
342constexpr uint32_t FSP_FLAGS_GET_SHARED(uint32_t flags) {
344}
345/** Return the contents of the TEMPORARY field */
346constexpr uint32_t FSP_FLAGS_GET_TEMPORARY(uint32_t flags) {
348}
349/** Return the contents of the ENCRYPTION field */
350constexpr uint32_t FSP_FLAGS_GET_ENCRYPTION(uint32_t flags) {
352}
353/** Return the value of the SDI field */
354constexpr uint32_t FSP_FLAGS_HAS_SDI(uint32_t flags) {
356}
357/** Return the contents of the UNUSED bits */
358constexpr uint32_t FSP_FLAGS_GET_UNUSED(uint32_t flags) {
359 return flags >> FSP_FLAGS_POS_UNUSED;
360}
361/** Return true if flags are not set */
362constexpr bool FSP_FLAGS_ARE_NOT_SET(uint32_t flags) {
363 return (flags & FSP_FLAGS_MASK) == 0;
364}
365
366/** Set ENCRYPTION bit in tablespace flags */
367constexpr void fsp_flags_set_encryption(uint32_t &flags) {
369}
370
371/** Set ENCRYPTION bit in tablespace flags */
372constexpr void fsp_flags_unset_encryption(uint32_t &flags) {
373 flags &= ~FSP_FLAGS_MASK_ENCRYPTION;
374}
375
376/** Set SDI Index bit in tablespace flags */
377constexpr void fsp_flags_set_sdi(uint32_t &flags) {
379}
380
381/** Set SDI Index bit in tablespace flags */
382constexpr void fsp_flags_unset_sdi(uint32_t &flags) {
383 flags &= ~FSP_FLAGS_MASK_SDI;
384}
385
386/** Use an alias in the code for FSP_FLAGS_GET_SHARED() */
387constexpr uint32_t fsp_is_shared_tablespace(uint32_t flags) {
389}
390/** @} */
391
392/** Max number of rollback segments: the number of segment specification slots
393in the transaction system array; rollback segment id must fit in one (signed)
394byte, therefore 128; each slot is currently 8 bytes in size. If you want
395to raise the level to 256 then you will need to fix some assertions that
396impose the 7 bit restriction. e.g., mach_write_to_3() */
397constexpr size_t TRX_SYS_N_RSEGS = 128;
398
399/** Minimum and Maximum number of implicit undo tablespaces. This kind
400of undo tablespace is always created and found in --innodb-undo-directory. */
401constexpr size_t FSP_MIN_UNDO_TABLESPACES = 2;
403constexpr size_t FSP_IMPLICIT_UNDO_TABLESPACES = 2;
405
406#endif /* fsp0types_h */
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:50
A wrapper class to print the file segment header information.
Definition: fsp0types.h:101
mtr_t * m_mtr
The mini-transaction, which is used mainly to check whether appropriate latches have been taken by th...
Definition: fsp0types.h:122
std::ostream & to_stream(std::ostream &out) const
Print the file segment header to the given output stream.
Definition: fsp0fsp.cc:3898
const fseg_header_t * m_header
The underlying file segment header.
Definition: fsp0types.h:118
fseg_header(const fseg_header_t *header, mtr_t *mtr)
Constructor of fseg_header.
Definition: fsp0types.h:108
The low-level file system page header & trailer offsets.
constexpr uint32_t FIL_PAGE_DATA
start of the data on the page
Definition: fil0types.h:110
constexpr uint32_t FSP_IBUF_TREE_ROOT_PAGE_NO
insert buffer B-tree root page in tablespace 0; The ibuf tree root page number in tablespace 0; its f...
Definition: fsp0types.h:167
constexpr size_t TRX_SYS_N_RSEGS
Max number of rollback segments: the number of segment specification slots in the transaction system ...
Definition: fsp0types.h:397
constexpr uint32_t FSEG_HDR_PAGE_NO
page number of the inode
Definition: fsp0types.h:89
constexpr uint32_t FSP_RSEG_ARRAY_PAGE_NO
rollback segment directory page number in each undo tablespace
Definition: fsp0types.h:180
bool fsp_is_checksum_disabled(space_id_t space_id)
Check if checksum is disabled for the given space.
Definition: fsp0fsp.cc:306
constexpr uint32_t FSP_XDES_OFFSET
extent descriptor
Definition: fsp0types.h:154
constexpr uint32_t FSEG_HDR_SPACE
space id of the inode
Definition: fsp0types.h:87
bool fsp_is_session_temporary(space_id_t space_id)
Check if the tablespace is session temporary.
Definition: fsp0fsp.cc:290
constexpr size_t FSP_MAX_UNDO_TABLESPACES
Definition: fsp0types.h:402
std::ostream & operator<<(std::ostream &out, const fseg_header &header)
Definition: fsp0types.h:129
bool fsp_flags_is_valid(uint32_t flags)
Validate the tablespace flags.
Definition: fsp0fsp.ic:316
constexpr size_t FSP_MIN_UNDO_TABLESPACES
Minimum and Maximum number of implicit undo tablespaces.
Definition: fsp0types.h:401
constexpr size_t FSP_IMPLICIT_UNDO_TABLESPACES
Definition: fsp0types.h:403
constexpr uint32_t FSEG_PAGE_DATA
On a page of any file segment, data may be put starting from this offset.
Definition: fsp0types.h:78
fsp_reserve_t
Flags for fsp_reserve_free_extents.
Definition: fsp0types.h:135
@ FSP_UNDO
Definition: fsp0types.h:137
@ FSP_BLOB
Definition: fsp0types.h:139
@ FSP_CLEANING
Definition: fsp0types.h:138
@ FSP_NORMAL
Definition: fsp0types.h:136
bool fsp_is_global_temporary(space_id_t space_id)
Check if tablespace is global temporary.
Definition: fsp0fsp.cc:283
constexpr size_t FSP_EXTENT_SIZE_MIN
File space extent size (one megabyte) in pages for MIN page size.
Definition: fsp0types.h:74
constexpr uint32_t FSEG_HEADER_SIZE
Length of the file system header, in bytes.
Definition: fsp0types.h:93
constexpr byte FSP_NO_DIR
no order
Definition: fsp0types.h:51
constexpr uint32_t FSP_TRX_SYS_PAGE_NO
transaction system header, in tablespace 0
Definition: fsp0types.h:169
constexpr uint32_t FSEG_HDR_OFFSET
byte offset of the inode
Definition: fsp0types.h:91
constexpr size_t FSP_MAX_ROLLBACK_SEGMENTS
Definition: fsp0types.h:404
constexpr uint32_t FSP_FIRST_RSEG_PAGE_NO
first rollback segment page, in tablespace 0
Definition: fsp0types.h:171
byte fseg_header_t
Data type for file segment header.
Definition: fsp0types.h:84
constexpr byte FSP_DOWN
alphabetically downwards
Definition: fsp0types.h:49
constexpr size_t FSP_EXTENT_SIZE_MAX
File space extent size (four megabyte) in pages for MAX page size.
Definition: fsp0types.h:71
constexpr uint32_t FSP_IBUF_HEADER_PAGE_NO
The following pages exist in the system tablespace (space 0).
Definition: fsp0types.h:163
constexpr uint32_t FSP_IBUF_BITMAP_OFFSET
insert buffer bitmap; The ibuf bitmap pages are the ones whose page number is the number above plus a...
Definition: fsp0types.h:157
bool fsp_skip_sanity_check(space_id_t space_id)
Skip some of the sanity checks that are time consuming even in debug mode and can affect frequent ver...
Definition: fsp0fsp.cc:317
constexpr uint32_t FSP_FIRST_INODE_PAGE_NO
in every tablespace
Definition: fsp0types.h:159
constexpr byte FSP_UP
alphabetically upwards
Definition: fsp0types.h:47
bool fsp_is_system_temporary(space_id_t space_id)
Check if tablespace is system temporary.
Definition: fsp0fsp.cc:298
constexpr uint32_t FSP_DICT_HDR_PAGE_NO
data dictionary header page, in tablespace 0
Definition: fsp0types.h:173
constexpr void fsp_flags_set_sdi(uint32_t &flags)
Set SDI Index bit in tablespace flags.
Definition: fsp0types.h:377
constexpr uint32_t FSP_FLAGS_GET_UNUSED(uint32_t flags)
Return the contents of the UNUSED bits.
Definition: fsp0types.h:358
constexpr uint32_t fsp_is_shared_tablespace(uint32_t flags)
Use an alias in the code for FSP_FLAGS_GET_SHARED()
Definition: fsp0types.h:387
constexpr uint32_t FSP_FLAGS_POS_SHARED
Zero relative shift position of the start of the SHARED bit.
Definition: fsp0types.h:277
constexpr void fsp_flags_unset_encryption(uint32_t &flags)
Set ENCRYPTION bit in tablespace flags.
Definition: fsp0types.h:372
constexpr uint32_t FSP_FLAGS_MASK_ATOMIC_BLOBS
Bit mask of the ATOMIC_BLOBS field.
Definition: fsp0types.h:300
constexpr uint32_t FSP_FLAGS_WIDTH_ENCRYPTION
Width of the encryption flag.
Definition: fsp0types.h:246
constexpr uint32_t FSP_FLAGS_WIDTH
Width of all the currently known tablespace flags.
Definition: fsp0types.h:252
constexpr uint32_t FSP_FLAGS_POS_ENCRYPTION
Zero relative shift position of the start of the ENCRYPTION bit.
Definition: fsp0types.h:283
constexpr uint32_t FSP_FLAGS_MASK_SDI
Bit mask of the SDI field.
Definition: fsp0types.h:318
constexpr uint32_t FSP_FLAGS_GET_SHARED(uint32_t flags)
Return the contents of the SHARED field.
Definition: fsp0types.h:342
constexpr uint32_t FSP_FLAGS_HAS_SDI(uint32_t flags)
Return the value of the SDI field.
Definition: fsp0types.h:354
constexpr uint32_t FSP_FLAGS_WIDTH_PAGE_SSIZE
Number of flag bits used to indicate the tablespace page size.
Definition: fsp0types.h:233
constexpr uint32_t FSP_FLAGS_WIDTH_SDI
Width of the SDI flag.
Definition: fsp0types.h:249
constexpr uint32_t FSP_FLAGS_WIDTH_SHARED
Width of the SHARED flag.
Definition: fsp0types.h:239
constexpr uint32_t FSP_FLAGS_POS_TEMPORARY
Zero relative shift position of the start of the TEMPORARY bit.
Definition: fsp0types.h:280
constexpr uint32_t FSP_FLAGS_POS_SDI
Zero relative shift position of the start of the SDI bits.
Definition: fsp0types.h:286
constexpr uint32_t FSP_FLAGS_WIDTH_ZIP_SSIZE
Number of flag bits used to indicate the tablespace zip page size.
Definition: fsp0types.h:227
constexpr uint32_t FSP_FLAGS_WIDTH_ATOMIC_BLOBS
Width of the ATOMIC_BLOBS flag.
Definition: fsp0types.h:231
constexpr uint32_t FSP_FLAGS_GET_ENCRYPTION(uint32_t flags)
Return the contents of the ENCRYPTION field.
Definition: fsp0types.h:350
constexpr uint32_t FSP_FLAGS_MASK_TEMPORARY
Bit mask of the TEMPORARY field.
Definition: fsp0types.h:312
constexpr uint32_t FSP_FLAGS_MASK_PAGE_SSIZE
Bit mask of the PAGE_SSIZE field.
Definition: fsp0types.h:303
constexpr uint32_t FSP_FLAGS_WIDTH_TEMPORARY
Width of the TEMPORARY flag.
Definition: fsp0types.h:243
constexpr uint32_t FSP_FLAGS_WIDTH_DATA_DIR
Width of the DATA_DIR flag.
Definition: fsp0types.h:236
constexpr uint32_t FSP_FLAGS_MASK_POST_ANTELOPE
Bit mask of the POST_ANTELOPE field.
Definition: fsp0types.h:294
constexpr void fsp_flags_set_encryption(uint32_t &flags)
Set ENCRYPTION bit in tablespace flags.
Definition: fsp0types.h:367
constexpr uint32_t FSP_FLAGS_HAS_DATA_DIR(uint32_t flags)
Return the value of the DATA_DIR field.
Definition: fsp0types.h:338
constexpr uint32_t FSP_FLAGS_POS_POST_ANTELOPE
Zero relative shift position of the POST_ANTELOPE field.
Definition: fsp0types.h:263
constexpr uint32_t FSP_FLAGS_MASK_ZIP_SSIZE
Bit mask of the ZIP_SSIZE field.
Definition: fsp0types.h:297
constexpr uint32_t FSP_FLAGS_POS_UNUSED
Zero relative shift position of the start of the UNUSED bits.
Definition: fsp0types.h:290
constexpr uint32_t FSP_FLAGS_MASK_ENCRYPTION
Bit mask of the ENCRYPTION field.
Definition: fsp0types.h:315
constexpr uint32_t FSP_FLAGS_WIDTH_POST_ANTELOPE
Width of the POST_ANTELOPE flag.
Definition: fsp0types.h:225
constexpr uint32_t FSP_FLAGS_GET_POST_ANTELOPE(uint32_t flags)
Return the value of the POST_ANTELOPE field.
Definition: fsp0types.h:322
constexpr void fsp_flags_unset_sdi(uint32_t &flags)
Set SDI Index bit in tablespace flags.
Definition: fsp0types.h:382
constexpr uint32_t FSP_FLAGS_POS_ATOMIC_BLOBS
Zero relative shift position of the ATOMIC_BLOBS field.
Definition: fsp0types.h:268
constexpr uint32_t FSP_FLAGS_MASK
A mask of all the known/used bits in tablespace flags.
Definition: fsp0types.h:260
constexpr uint32_t FSP_FLAGS_POS_ZIP_SSIZE
Zero relative shift position of the ZIP_SSIZE field.
Definition: fsp0types.h:265
constexpr uint32_t FSP_FLAGS_POS_DATA_DIR
Zero relative shift position of the start of the DATA_DIR bit.
Definition: fsp0types.h:274
constexpr uint32_t FSP_FLAGS_MASK_SHARED
Bit mask of the SHARED field.
Definition: fsp0types.h:309
constexpr bool FSP_FLAGS_ARE_NOT_SET(uint32_t flags)
Return true if flags are not set.
Definition: fsp0types.h:362
constexpr uint32_t FSP_FLAGS_POS_PAGE_SSIZE
Zero relative shift position of the PAGE_SSIZE field.
Definition: fsp0types.h:271
constexpr uint32_t FSP_FLAGS_MASK_DATA_DIR
Bit mask of the DATA_DIR field.
Definition: fsp0types.h:306
constexpr uint32_t FSP_FLAGS_HAS_ATOMIC_BLOBS(uint32_t flags)
Return the value of the ATOMIC_BLOBS field.
Definition: fsp0types.h:330
constexpr uint32_t FSP_FLAGS_GET_PAGE_SSIZE(uint32_t flags)
Return the value of the PAGE_SSIZE field.
Definition: fsp0types.h:334
constexpr uint32_t FSP_FLAGS_GET_ZIP_SSIZE(uint32_t flags)
Return the value of the ZIP_SSIZE field.
Definition: fsp0types.h:326
constexpr uint32_t FSP_FLAGS_GET_TEMPORARY(uint32_t flags)
Return the contents of the TEMPORARY field.
Definition: fsp0types.h:346
static int flags[50]
Definition: hp_test1.cc:39
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:176
Definition: dtoa.cc:588
Version control for database, common definitions, and include files.
constexpr uint32_t UNIV_PAGE_SIZE_MIN
Minimum page size InnoDB currently supports.
Definition: univ.i:320
constexpr size_t UNIV_PAGE_SIZE_MAX
Maximum page size InnoDB currently supports.
Definition: univ.i:322