MySQL 8.0.39
Source Code Documentation
rt_split.cc File Reference
#include <float.h>
#include <string.h>
#include <sys/types.h>
#include <cmath>
#include "my_base.h"
#include "my_dbug.h"
#include "my_inttypes.h"
#include "my_sys.h"
#include "myisam.h"
#include "storage/myisam/myisamdef.h"
#include "storage/myisam/rt_index.h"
#include "storage/myisam/rt_mbr.h"

Classes

struct  SplitStruct
 

Functions

static double * reserve_coords (double **d_buffer, int n_dim)
 
static void mbr_join (double *a, const double *b, int n_dim)
 
static double mbr_join_square (const double *a, const double *b, int n_dim)
 
static double count_square (const double *a, int n_dim)
 
static void copy_coords (double *dst, const double *src, int n_dim)
 
static void pick_seeds (SplitStruct *node, int n_entries, SplitStruct **seed_a, SplitStruct **seed_b, int n_dim)
 
static void pick_next (SplitStruct *node, int n_entries, double *g1, double *g2, SplitStruct **choice, int *n_group, int n_dim)
 
static void mark_all_entries (SplitStruct *node, int n_entries, int n_group)
 
static int split_rtree_node (SplitStruct *node, int n_entries, int all_size, int key_size, int min_size, int size1, int size2, double **d_buffer, int n_dim)
 
int rtree_split_page (MI_INFO *info, MI_KEYDEF *keyinfo, uchar *page, uchar *key, uint key_length, my_off_t *new_page_offs)
 

Function Documentation

◆ copy_coords()

static void copy_coords ( double *  dst,
const double *  src,
int  n_dim 
)
inlinestatic

◆ count_square()

static double count_square ( const double *  a,
int  n_dim 
)
static

◆ mark_all_entries()

static void mark_all_entries ( SplitStruct node,
int  n_entries,
int  n_group 
)
static

◆ mbr_join()

static void mbr_join ( double *  a,
const double *  b,
int  n_dim 
)
static

◆ mbr_join_square()

static double mbr_join_square ( const double *  a,
const double *  b,
int  n_dim 
)
static

◆ pick_next()

static void pick_next ( SplitStruct node,
int  n_entries,
double *  g1,
double *  g2,
SplitStruct **  choice,
int *  n_group,
int  n_dim 
)
static

◆ pick_seeds()

static void pick_seeds ( SplitStruct node,
int  n_entries,
SplitStruct **  seed_a,
SplitStruct **  seed_b,
int  n_dim 
)
static

◆ reserve_coords()

static double * reserve_coords ( double **  d_buffer,
int  n_dim 
)
inlinestatic

◆ rtree_split_page()

int rtree_split_page ( MI_INFO info,
MI_KEYDEF keyinfo,
uchar page,
uchar key,
uint  key_length,
my_off_t new_page_offs 
)

◆ split_rtree_node()

static int split_rtree_node ( SplitStruct node,
int  n_entries,
int  all_size,
int  key_size,
int  min_size,
int  size1,
int  size2,
double **  d_buffer,
int  n_dim 
)
static