MySQL  8.0.24
Source Code Documentation
partition_handler.h File Reference
#include <assert.h>
#include <string.h>
#include <sys/types.h>
#include <memory>
#include <string>
#include <vector>
#include "my_base.h"
#include "my_bitmap.h"
#include "my_compiler.h"
#include "my_inttypes.h"
#include "my_sys.h"
#include "mysql/psi/mysql_mutex.h"
#include "priority_queue.h"
#include "sql/handler.h"
#include "sql/key.h"
#include "sql/sql_partition.h"

Go to the source code of this file.

Classes

struct  PART_NAME_DEF
 Struct used for partition_name_hash. More...
 
class  Partition_share
 Partition specific Handler_share. More...
 
class  Partition_handler
 Class for partitioning specific operations. More...
 
struct  Key_rec_less
 Maps compare function to strict weak ordering required by Priority_queue. More...
 
class  Partition_helper
 Partition_helper is a helper class that implements most generic partitioning functionality such as: table scan, index scan (both ordered and non-ordered), insert (write_row()), delete and update. More...
 

Namespaces

 dd
 The version of the current data dictionary table definitions.
 

Macros

#define PARTITION_BYTES_IN_POS   2
 
#define HA_PARTITION_FUNCTION_SUPPORTED   (1L << 0)
 bits in Partition_handler::alter_flags(): More...
 
#define HA_INPLACE_CHANGE_PARTITION   (1L << 1)
 

Enumerations

enum  enum_part_operation {
  OPTIMIZE_PARTS = 0 , ANALYZE_PARTS , CHECK_PARTS , REPAIR_PARTS ,
  ASSIGN_KEYCACHE_PARTS , PRELOAD_KEYS_PARTS
}
 

Functions

void partitioning_init ()
 Initialize partitioning (currently only PSI keys). More...
 

Variables

static const uint NO_CURRENT_PART_ID = UINT_MAX32
 

Macro Definition Documentation

◆ HA_INPLACE_CHANGE_PARTITION

#define HA_INPLACE_CHANGE_PARTITION   (1L << 1)

◆ HA_PARTITION_FUNCTION_SUPPORTED

#define HA_PARTITION_FUNCTION_SUPPORTED   (1L << 0)

bits in Partition_handler::alter_flags():

HA_PARTITION_FUNCTION_SUPPORTED indicates that the function is supported at all. HA_INPLACE_CHANGE_PARTITION means that changes to partitioning can be done through in-place ALTER TABLE API but special mark-up in partition_info object is required for this.

◆ PARTITION_BYTES_IN_POS

#define PARTITION_BYTES_IN_POS   2

Enumeration Type Documentation

◆ enum_part_operation

Enumerator
OPTIMIZE_PARTS 
ANALYZE_PARTS 
CHECK_PARTS 
REPAIR_PARTS 
ASSIGN_KEYCACHE_PARTS 
PRELOAD_KEYS_PARTS 

Function Documentation

◆ partitioning_init()

void partitioning_init ( )

Initialize partitioning (currently only PSI keys).

Variable Documentation

◆ NO_CURRENT_PART_ID

const uint NO_CURRENT_PART_ID = UINT_MAX32
static