54
54
** GiST support methods
56
bool gseg_consistent(GISTENTRY *entry,
58
StrategyNumber strategy,
56
bool gseg_consistent(GISTENTRY *entry,
58
StrategyNumber strategy,
61
61
GISTENTRY *gseg_compress(GISTENTRY *entry);
62
62
GISTENTRY *gseg_decompress(GISTENTRY *entry);
63
63
float *gseg_penalty(GISTENTRY *origentry, GISTENTRY *newentry, float *result);
64
64
GIST_SPLITVEC *gseg_picksplit(GistEntryVector *entryvec, GIST_SPLITVEC *v);
65
bool gseg_leaf_consistent(SEG * key, SEG * query, StrategyNumber strategy);
66
bool gseg_internal_consistent(SEG * key, SEG * query, StrategyNumber strategy);
65
bool gseg_leaf_consistent(SEG *key, SEG *query, StrategyNumber strategy);
66
bool gseg_internal_consistent(SEG *key, SEG *query, StrategyNumber strategy);
67
67
SEG *gseg_union(GistEntryVector *entryvec, int *sizep);
68
SEG *gseg_binary_union(SEG * r1, SEG * r2, int *sizep);
69
bool *gseg_same(SEG * b1, SEG * b2, bool *result);
68
SEG *gseg_binary_union(SEG *r1, SEG *r2, int *sizep);
69
bool *gseg_same(SEG *b1, SEG *b2, bool *result);
73
73
** R-tree support functions
75
bool seg_same(SEG * a, SEG * b);
76
bool seg_contains_int(SEG * a, int *b);
77
bool seg_contains_float4(SEG * a, float4 *b);
78
bool seg_contains_float8(SEG * a, float8 *b);
79
bool seg_contains(SEG * a, SEG * b);
80
bool seg_contained(SEG * a, SEG * b);
81
bool seg_overlap(SEG * a, SEG * b);
82
bool seg_left(SEG * a, SEG * b);
83
bool seg_over_left(SEG * a, SEG * b);
84
bool seg_right(SEG * a, SEG * b);
85
bool seg_over_right(SEG * a, SEG * b);
86
SEG *seg_union(SEG * a, SEG * b);
87
SEG *seg_inter(SEG * a, SEG * b);
88
void rt_seg_size(SEG * a, float *sz);
75
bool seg_same(SEG *a, SEG *b);
76
bool seg_contains_int(SEG *a, int *b);
77
bool seg_contains_float4(SEG *a, float4 *b);
78
bool seg_contains_float8(SEG *a, float8 *b);
79
bool seg_contains(SEG *a, SEG *b);
80
bool seg_contained(SEG *a, SEG *b);
81
bool seg_overlap(SEG *a, SEG *b);
82
bool seg_left(SEG *a, SEG *b);
83
bool seg_over_left(SEG *a, SEG *b);
84
bool seg_right(SEG *a, SEG *b);
85
bool seg_over_right(SEG *a, SEG *b);
86
SEG *seg_union(SEG *a, SEG *b);
87
SEG *seg_inter(SEG *a, SEG *b);
88
void rt_seg_size(SEG *a, float *sz);
91
91
** Various operators
93
int32 seg_cmp(SEG * a, SEG * b);
94
bool seg_lt(SEG * a, SEG * b);
95
bool seg_le(SEG * a, SEG * b);
96
bool seg_gt(SEG * a, SEG * b);
97
bool seg_ge(SEG * a, SEG * b);
98
bool seg_different(SEG * a, SEG * b);
93
int32 seg_cmp(SEG *a, SEG *b);
94
bool seg_lt(SEG *a, SEG *b);
95
bool seg_le(SEG *a, SEG *b);
96
bool seg_gt(SEG *a, SEG *b);
97
bool seg_ge(SEG *a, SEG *b);
98
bool seg_different(SEG *a, SEG *b);
101
101
** Auxiliary funxtions
1045
seg_contains_int(SEG * a, int *b)
1047
return ((a->lower <= *b) && (a->upper >= *b));
1051
seg_contains_float4(SEG * a, float4 *b)
1053
return ((a->lower <= *b) && (a->upper >= *b));
1057
seg_contains_float8(SEG * a, float8 *b)
1045
seg_contains_int(SEG *a, int *b)
1047
return ((a->lower <= *b) && (a->upper >= *b));
1051
seg_contains_float4(SEG *a, float4 *b)
1053
return ((a->lower <= *b) && (a->upper >= *b));
1057
seg_contains_float8(SEG *a, float8 *b)
1059
1059
return ((a->lower <= *b) && (a->upper >= *b));