diff options
Diffstat (limited to 'src/include/partitioning/partbounds.h')
-rw-r--r-- | src/include/partitioning/partbounds.h | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/src/include/partitioning/partbounds.h b/src/include/partitioning/partbounds.h index c76014d4a83..71c04aa446d 100644 --- a/src/include/partitioning/partbounds.h +++ b/src/include/partitioning/partbounds.h @@ -11,7 +11,11 @@ #ifndef PARTBOUNDS_H #define PARTBOUNDS_H -#include "catalog/partition.h" +#include "fmgr.h" +#include "nodes/parsenodes.h" +#include "nodes/pg_list.h" +#include "partitioning/partdefs.h" +#include "utils/relcache.h" /* @@ -101,7 +105,34 @@ typedef struct PartitionRangeBound } PartitionRangeBound; extern int get_hash_partition_greatest_modulus(PartitionBoundInfo b); -extern int partition_list_bsearch(FmgrInfo *partsupfunc, Oid *partcollation, +extern uint64 compute_hash_value(int partnatts, FmgrInfo *partsupfunc, + Datum *values, bool *isnull); +extern List *get_qual_from_partbound(Relation rel, Relation parent, + PartitionBoundSpec *spec); +extern bool partition_bounds_equal(int partnatts, int16 *parttyplen, + bool *parttypbyval, PartitionBoundInfo b1, + PartitionBoundInfo b2); +extern PartitionBoundInfo partition_bounds_copy(PartitionBoundInfo src, + PartitionKey key); +extern void check_new_partition_bound(char *relname, Relation parent, + PartitionBoundSpec *spec); +extern void check_default_allows_bound(Relation parent, Relation defaultRel, + PartitionBoundSpec *new_spec); + +extern PartitionRangeBound *make_one_range_bound(PartitionKey key, int index, + List *datums, bool lower); +extern int32 partition_hbound_cmp(int modulus1, int remainder1, int modulus2, + int remainder2); +extern int32 partition_rbound_cmp(int partnatts, FmgrInfo *partsupfunc, + Oid *partcollation, Datum *datums1, + PartitionRangeDatumKind *kind1, bool lower1, + PartitionRangeBound *b2); +extern int32 partition_rbound_datum_cmp(FmgrInfo *partsupfunc, + Oid *partcollation, + Datum *rb_datums, PartitionRangeDatumKind *rb_kind, + Datum *tuple_datums, int n_tuple_datums); +extern int partition_list_bsearch(FmgrInfo *partsupfunc, + Oid *partcollation, PartitionBoundInfo boundinfo, Datum value, bool *is_equal); extern int partition_range_bsearch(int partnatts, FmgrInfo *partsupfunc, @@ -114,11 +145,5 @@ extern int partition_range_datum_bsearch(FmgrInfo *partsupfunc, int nvalues, Datum *values, bool *is_equal); extern int partition_hash_bsearch(PartitionBoundInfo boundinfo, int modulus, int remainder); -extern uint64 compute_hash_value(int partnatts, FmgrInfo *partsupfunc, - Datum *values, bool *isnull); -extern int32 partition_rbound_datum_cmp(FmgrInfo *partsupfunc, - Oid *partcollation, - Datum *rb_datums, PartitionRangeDatumKind *rb_kind, - Datum *tuple_datums, int n_tuple_datums); #endif /* PARTBOUNDS_H */ |