2
* $PostgreSQL: pgsql/contrib/btree_gist/btree_utils_var.h,v 1.8 2008/05/17 01:28:19 adunstan Exp $
2
* $PostgreSQL: pgsql/contrib/btree_gist/btree_utils_var.h,v 1.9 2009/06/11 14:48:50 momjian Exp $
4
4
#ifndef __BTREE_UTILS_VAR_H__
5
5
#define __BTREE_UTILS_VAR_H__
49
49
bool (*f_lt) (const void *, const void *); /* less then */
50
50
int32 (*f_cmp) (const bytea *, const bytea *); /* node compare */
51
51
GBT_VARKEY *(*f_l2n) (GBT_VARKEY *); /* convert leaf to node */
56
extern GBT_VARKEY_R gbt_var_key_readable(const GBT_VARKEY * k);
58
extern GBT_VARKEY *gbt_var_key_copy(const GBT_VARKEY_R * u, bool force_node);
60
extern GISTENTRY *gbt_var_compress(GISTENTRY *entry, const gbtree_vinfo * tinfo);
56
extern GBT_VARKEY_R gbt_var_key_readable(const GBT_VARKEY *k);
58
extern GBT_VARKEY *gbt_var_key_copy(const GBT_VARKEY_R *u, bool force_node);
60
extern GISTENTRY *gbt_var_compress(GISTENTRY *entry, const gbtree_vinfo *tinfo);
62
62
extern GBT_VARKEY *gbt_var_union(const GistEntryVector *entryvec, int32 *size,
63
const gbtree_vinfo * tinfo);
63
const gbtree_vinfo *tinfo);
65
65
extern bool gbt_var_same(bool *result, const Datum d1, const Datum d2,
66
const gbtree_vinfo * tinfo);
66
const gbtree_vinfo *tinfo);
68
68
extern float *gbt_var_penalty(float *res, const GISTENTRY *o, const GISTENTRY *n,
69
const gbtree_vinfo * tinfo);
69
const gbtree_vinfo *tinfo);
71
extern bool gbt_var_consistent(GBT_VARKEY_R * key, const void *query,
71
extern bool gbt_var_consistent(GBT_VARKEY_R *key, const void *query,
72
72
const StrategyNumber *strategy, bool is_leaf,
73
const gbtree_vinfo * tinfo);
73
const gbtree_vinfo *tinfo);
75
75
extern GIST_SPLITVEC *gbt_var_picksplit(const GistEntryVector *entryvec, GIST_SPLITVEC *v,
76
const gbtree_vinfo * tinfo);
77
extern void gbt_var_bin_union(Datum *u, GBT_VARKEY * e,
78
const gbtree_vinfo * tinfo);
76
const gbtree_vinfo *tinfo);
77
extern void gbt_var_bin_union(Datum *u, GBT_VARKEY *e,
78
const gbtree_vinfo *tinfo);