MySQL 8.0.40
Source Code Documentation
|
InnoDB R-tree related functions. More...
Namespaces | |
namespace | dd |
The version of the current data dictionary table definitions. | |
Functions | |
static void | copy_coords (double *dst, const double *src) |
Copy mbr of dimension n_dim from src to dst. More... | |
static void | pick_seeds (rtr_split_node_t *node, int n_entries, rtr_split_node_t **seed_a, rtr_split_node_t **seed_b, int n_dim, const dd::Spatial_reference_system *srs) |
Select two nodes to collect group upon. More... | |
static bool | ut_rnd_gen_bool (void) |
Generates a random boolean value. More... | |
static void | pick_next (rtr_split_node_t *node, int n_entries, double *g1, double *g2, rtr_split_node_t **choice, int *n_group, int n_dim, const dd::Spatial_reference_system *srs) |
Select next node and group where to add. More... | |
static void | mark_all_entries (rtr_split_node_t *node, int n_entries, int n_group) |
Mark not-in-group entries as n_group. More... | |
int | split_rtree_node (rtr_split_node_t *node, int n_entries, int all_size, int key_size, int min_size, int size1, int size2, double **d_buffer, int n_dim, uchar *first_rec, const dd::Spatial_reference_system *srs) |
Split rtree node. More... | |
bool | rtree_key_cmp (page_cur_mode_t mode, const uchar *a, int a_len, const uchar *b, int b_len, const dd::Spatial_reference_system *srs) |
Compares two keys a and b depending on mode mode can contain these flags: PAGE_CUR_INTERSECT a intersects b PAGE_CUR_CONTAIN a contains b PAGE_CUR_DISJOINT a disjoint b PAGE_CUR_WITHIN a within b PAGE_CUR_MBR_EQUAL All coordinates of MBRs are equal. More... | |
InnoDB R-tree related functions.
Created 2013/03/27 Allen Lai and Jimmy Yang
|
inlinestatic |
Copy mbr of dimension n_dim from src to dst.
dst | in/out: destination. |
src | in: source. |
|
static |
Mark not-in-group entries as n_group.
node | in/out: split nodes. |
n_entries | in: entries number. |
n_group | in: group number. |
|
static |
Select next node and group where to add.
node | in: split nodes. |
n_entries | in: entries number. |
g1 | in: mbr of group 1. |
g2 | in: mbr of group 2. |
choice | out: the next node. |
n_group | out: group number. |
n_dim | in: dimensions. |
srs | in: SRS of R-tree |
|
static |
Select two nodes to collect group upon.
node | in: split nodes. |
n_entries | in: entries number. |
seed_a | out: seed 1. |
seed_b | out: seed 2. |
n_dim | in: dimensions. |
srs | in: SRS of R-tree |
bool rtree_key_cmp | ( | page_cur_mode_t | mode, |
const uchar * | a, | ||
int | a_len, | ||
const uchar * | b, | ||
int | b_len, | ||
const dd::Spatial_reference_system * | srs | ||
) |
Compares two keys a and b depending on mode mode can contain these flags: PAGE_CUR_INTERSECT a intersects b PAGE_CUR_CONTAIN a contains b PAGE_CUR_DISJOINT a disjoint b PAGE_CUR_WITHIN a within b PAGE_CUR_MBR_EQUAL All coordinates of MBRs are equal.
[in] | mode | compare method |
[in] | a | first key |
[in] | a_len | first key len |
[in] | b | second key |
[in] | b_len | second_key_len |
[in] | srs | Spatial reference system of R-tree |
true | if the predicate is true, otherwise false. |
int split_rtree_node | ( | rtr_split_node_t * | node, |
int | n_entries, | ||
int | all_size, | ||
int | key_size, | ||
int | min_size, | ||
int | size1, | ||
int | size2, | ||
double ** | d_buffer, | ||
int | n_dim, | ||
uchar * | first_rec, | ||
const dd::Spatial_reference_system * | srs | ||
) |
Split rtree node.
Split rtree nodes.
Return which group the first rec is in.
node | in: split nodes. |
n_entries | in: entries number. |
all_size | in: total key's size. |
key_size | in: key's size. |
min_size | in: minimal group size. |
size1 | in: size of group. |
size2 | in: initial group sizes |
d_buffer | in/out: buffer. |
n_dim | in: dimensions. |
first_rec | in: the first rec. |
srs | in: SRS of R-tree |
|
static |
Generates a random boolean value.