code for Global-Partition-Index feature

Signed-off-by: xiliu <xiliu_h@163.com>
This commit is contained in:
xiliu
2020-08-25 15:10:14 +08:00
parent 339cd59f26
commit c040d78287
157 changed files with 12502 additions and 939 deletions

View File

@ -16,6 +16,7 @@
#include "access/tupdesc.h"
#include "nodes/bitmapset.h"
#include "utils/hsearch.h"
typedef struct RelationData* Relation;
typedef struct PartitionData* Partition;
@ -51,6 +52,7 @@ extern void RelationClose(Relation relation);
*/
extern List* PartitionGetPartIndexList(Partition part);
extern List* RelationGetIndexList(Relation relation);
extern List* RelationGetSpecificKindIndexList(Relation relation, bool isGlobal);
extern List* RelationGetIndexInfoList(Relation relation);
extern int RelationGetIndexNum(Relation relation);
extern Oid RelationGetOidIndex(Relation relation);
@ -67,6 +69,13 @@ typedef enum IndexAttrBitmapKind {
INDEX_ATTR_BITMAP_IDENTITY_KEY
} IndexAttrBitmapKind;
typedef enum PartitionMetadataStatus {
PART_METADATA_NOEXIST, /* partition is not exists */
PART_METADATA_LIVE, /* partition is live, normal use */
PART_METADATA_CREATING, /* partition is being created */
PART_METADATA_INVISIBLE /* partition is invisible, being droped */
} PartStatus;
extern Bitmapset* RelationGetIndexAttrBitmap(Relation relation, IndexAttrBitmapKind keyAttrs);
extern void RelationGetExclusionInfo(Relation indexRelation, Oid** operators, Oid** procs, uint16** strategies);