Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
opt
/
postgresql-13.1-202012021752
/
include
/
server
/
access
/
//opt/postgresql-13.1-202012021752/include/server/access/attmap.h
/*------------------------------------------------------------------------- * * attmap.h * Definitions for PostgreSQL attribute mappings * * * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/access/attmap.h * *------------------------------------------------------------------------- */ #ifndef ATTMAP_H #define ATTMAP_H #include "access/attnum.h" #include "access/tupdesc.h" /* * Attribute mapping structure * * This maps attribute numbers between a pair of relations, designated * 'input' and 'output' (most typically inheritance parent and child * relations), whose common columns may have different attribute numbers. * Such difference may arise due to the columns being ordered differently * in the two relations or the two relations having dropped columns at * different positions. * * 'maplen' is set to the number of attributes of the 'output' relation, * taking into account any of its dropped attributes, with the corresponding * elements of the 'attnums' array set to 0. */ typedef struct AttrMap { AttrNumber *attnums; int maplen; } AttrMap; extern AttrMap *make_attrmap(int maplen); extern void free_attrmap(AttrMap *map); /* Conversion routines to build mappings */ extern AttrMap *build_attrmap_by_name(TupleDesc indesc, TupleDesc outdesc); extern AttrMap *build_attrmap_by_name_if_req(TupleDesc indesc, TupleDesc outdesc); extern AttrMap *build_attrmap_by_position(TupleDesc indesc, TupleDesc outdesc, const char *msg); #endif /* ATTMAP_H */