MySQL 9.6.0
Source Code Documentation
dict0load.h
Go to the documentation of this file.
1/*****************************************************************************
2
3Copyright (c) 1996, 2025, 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 designed to work with certain software (including
10but not limited to OpenSSL) that is licensed under separate terms,
11as designated in a particular file or component or in included license
12documentation. The authors of MySQL hereby grant you an additional
13permission to link the program and your derivative works with the
14separately licensed software that they have either included with
15the program or referenced in the documentation.
16
17This program is distributed in the hope that it will be useful, but WITHOUT
18ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0,
20for more details.
21
22You should have received a copy of the GNU General Public License along with
23this program; if not, write to the Free Software Foundation, Inc.,
2451 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25
26*****************************************************************************/
27
28/** @file include/dict0load.h
29 Loads to the memory cache database object definitions
30 from dictionary tables
31
32 Created 4/24/1996 Heikki Tuuri
33 *******************************************************/
34
35#ifndef dict0load_h
36#define dict0load_h
37
38#include "btr0types.h"
39#include "dict0types.h"
40#include "fil0fil.h"
41#include "mem0mem.h"
42#include "trx0types.h"
43#include "univ.i"
44#include "ut0byte.h"
45#include "ut0new.h"
46
47#include <deque>
48
49/** A stack of table names related through foreign key constraints */
50typedef std::deque<const char *, ut::allocator<const char *>> dict_names_t;
51
52/** Make sure the tablespace name is saved in dict_table_t if the table
53uses a general tablespace.
54Try to read it from the fil_system_t first, then from SYS_TABLESPACES.
55@param[in] table Table object */
57
58/** Using the table->heap, copy the null-terminated filepath into
59table->data_dir_path. The data directory path is derived from the
60filepath by stripping the the table->name.m_name component suffix.
61If the filepath is not of the correct form (".../db/table.ibd"),
62then table->data_dir_path will remain nullptr.
63@param[in,out] table table instance
64@param[in] filepath filepath of tablespace */
66
67#endif
The index tree general types.
std::deque< const char *, ut::allocator< const char * > > dict_names_t
A stack of table names related through foreign key constraints.
Definition: dict0load.h:50
void dict_get_and_save_space_name(dict_table_t *table)
Make sure the tablespace name is saved in dict_table_t if the table uses a general tablespace.
Definition: dict0load.cc:110
void dict_save_data_dir_path(dict_table_t *table, char *filepath)
Using the table->heap, copy the null-terminated filepath into table->data_dir_path.
Definition: dict0load.cc:78
Data dictionary global types.
The low-level file system.
The memory management.
static const char * filepath
Definition: myisamlog.cc:97
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
Data structure for a database table.
Definition: dict0mem.h:1925
Transaction system global type definitions.
Version control for database, common definitions, and include files.
Utilities for byte operations.
Dynamic memory allocation routines and custom allocators specifically crafted to support memory instr...