commit b14fb08da95b86a8ac45640d55ce03682b58b79b
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:   Fri Jun 15 17:26:33 2012 -0400

    Split htup.h in two parts, creating tupbasics.h
    
    Any place that just wants to pass tuples (or declare functions doing so)
    around can include only tupbasics.h.
    
    This reduces the number of places that need to #include htup.h, which is
    good because that header includes a bunch more header files itself.

diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c
index 260ccff..7c4f762 100644
--- a/contrib/pageinspect/heapfuncs.c
+++ b/contrib/pageinspect/heapfuncs.c
@@ -26,8 +26,8 @@
 #include "postgres.h"
 
 #include "funcapi.h"
-#include "utils/builtins.h"
 #include "miscadmin.h"
+#include "utils/builtins.h"
 
 Datum		heap_page_items(PG_FUNCTION_ARGS);
 
diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c
index 19a3492..25d90c7 100644
--- a/src/backend/access/heap/hio.c
+++ b/src/backend/access/heap/hio.c
@@ -17,6 +17,7 @@
 
 #include "access/heapam.h"
 #include "access/hio.h"
+#include "access/htup.h"
 #include "access/visibilitymap.h"
 #include "storage/bufmgr.h"
 #include "storage/freespace.h"
diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c
index b61b603..d7ac0d8 100644
--- a/src/backend/access/heap/pruneheap.c
+++ b/src/backend/access/heap/pruneheap.c
@@ -15,6 +15,7 @@
 #include "postgres.h"
 
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "access/transam.h"
 #include "miscadmin.h"
 #include "pgstat.h"
diff --git a/src/backend/access/nbtree/nbtxlog.c b/src/backend/access/nbtree/nbtxlog.c
index deca38c..af5cb7a 100644
--- a/src/backend/access/nbtree/nbtxlog.c
+++ b/src/backend/access/nbtree/nbtxlog.c
@@ -14,6 +14,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/nbtree.h"
 #include "access/transam.h"
 #include "storage/procarray.h"
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index b94fae3..087b7fc 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -41,7 +41,6 @@
 #include <time.h>
 #include <unistd.h>
 
-#include "access/htup.h"
 #include "access/subtrans.h"
 #include "access/transam.h"
 #include "access/twophase.h"
diff --git a/src/backend/catalog/pg_depend.c b/src/backend/catalog/pg_depend.c
index 8e58435..af2f0c4 100644
--- a/src/backend/catalog/pg_depend.c
+++ b/src/backend/catalog/pg_depend.c
@@ -16,6 +16,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_constraint.h"
diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c
index 1e5de6a..d719687 100644
--- a/src/backend/catalog/pg_largeobject.c
+++ b/src/backend/catalog/pg_largeobject.c
@@ -16,6 +16,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "access/sysattr.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
diff --git a/src/backend/catalog/pg_range.c b/src/backend/catalog/pg_range.c
index 7e52d0d..3515a9c 100644
--- a/src/backend/catalog/pg_range.c
+++ b/src/backend/catalog/pg_range.c
@@ -16,6 +16,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_collation.h"
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index 7ea3675..cf0bc0a 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -16,6 +16,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "catalog/indexing.h"
 #include "catalog/objectaddress.h"
 #include "catalog/pg_description.h"
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c
index c09a96e..94b998e 100644
--- a/src/backend/commands/seclabel.c
+++ b/src/backend/commands/seclabel.c
@@ -12,6 +12,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "catalog/catalog.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_seclabel.h"
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index 86cb870..6d51d11 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -17,8 +17,8 @@
 
 #include <ctype.h>
 
-#include "access/heapam.h"
 #include "access/genam.h"
+#include "access/heapam.h"
 #include "access/xact.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 5e90221..4b6f955 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -39,6 +39,7 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "access/transam.h"
 #include "access/visibilitymap.h"
 #include "catalog/storage.h"
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 440438b..0324b72 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -37,6 +37,7 @@
  */
 #include "postgres.h"
 
+#include "access/reloptions.h"
 #include "access/sysattr.h"
 #include "access/transam.h"
 #include "access/xact.h"
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index 6475633..94be174 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -28,8 +28,8 @@
  */
 #include "postgres.h"
 
-
 #include "access/heapam.h"
+#include "access/htup.h"
 #include "access/sysattr.h"
 #include "catalog/pg_inherits_fn.h"
 #include "catalog/pg_type.h"
diff --git a/src/backend/utils/adt/array_selfuncs.c b/src/backend/utils/adt/array_selfuncs.c
index 1b7d46f..271c62f 100644
--- a/src/backend/utils/adt/array_selfuncs.c
+++ b/src/backend/utils/adt/array_selfuncs.c
@@ -16,6 +16,7 @@
 
 #include <math.h>
 
+#include "access/htup.h"
 #include "catalog/pg_collation.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_statistic.h"
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index ba7fde4..cbdde84 100644
--- a/src/backend/utils/adt/rowtypes.c
+++ b/src/backend/utils/adt/rowtypes.c
@@ -16,6 +16,7 @@
 
 #include <ctype.h>
 
+#include "access/htup.h"
 #include "catalog/pg_type.h"
 #include "libpq/pqformat.h"
 #include "utils/builtins.h"
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 4caef9c..1e01dd4 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -57,6 +57,7 @@
 
 #include "postgres.h"
 
+#include "access/htup.h"
 #include "access/multixact.h"
 #include "access/subtrans.h"
 #include "access/transam.h"
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 660a854..b19e7b9 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -18,7 +18,10 @@
 #include "access/skey.h"
 #include "access/xlog.h"
 #include "nodes/primnodes.h"
+#include "storage/bufpage.h"
+#include "storage/itemptr.h"
 #include "storage/lock.h"
+#include "storage/relfilenode.h"
 #include "utils/relcache.h"
 #include "utils/snapshot.h"
 
@@ -125,6 +128,9 @@ extern void heap_restrpos(HeapScanDesc scan);
 
 extern void heap_sync(Relation relation);
 
+extern void HeapTupleHeaderAdvanceLatestRemovedXid(HeapTupleHeader tuple,
+									   TransactionId *latestRemovedXid);
+
 extern void heap_redo(XLogRecPtr lsn, XLogRecord *rptr);
 extern void heap_desc(StringInfo buf, uint8 xl_info, char *rec);
 extern void heap2_redo(XLogRecPtr lsn, XLogRecord *rptr);
diff --git a/src/include/access/hio.h b/src/include/access/hio.h
index a3f8a45..399157e 100644
--- a/src/include/access/hio.h
+++ b/src/include/access/hio.h
@@ -15,7 +15,7 @@
 #define HIO_H
 
 #include "access/heapam.h"
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "utils/relcache.h"
 #include "storage/buf.h"
 
diff --git a/src/include/access/htup.h b/src/include/access/htup.h
index b289e14..9ff9481 100644
--- a/src/include/access/htup.h
+++ b/src/include/access/htup.h
@@ -14,10 +14,9 @@
 #ifndef HTUP_H
 #define HTUP_H
 
-#include "access/tupdesc.h"
+#include "access/tupbasics.h"
 #include "access/tupmacs.h"
 #include "storage/bufpage.h"
-#include "storage/itemptr.h"
 #include "storage/relfilenode.h"
 
 /*
@@ -130,7 +129,7 @@ typedef struct DatumTupleFields
 	 */
 } DatumTupleFields;
 
-typedef struct HeapTupleHeaderData
+struct HeapTupleHeaderData
 {
 	union
 	{
@@ -153,9 +152,8 @@ typedef struct HeapTupleHeaderData
 	bits8		t_bits[1];		/* bitmap of NULLs -- VARIABLE LENGTH */
 
 	/* MORE DATA FOLLOWS AT END OF STRUCT */
-} HeapTupleHeaderData;
-
-typedef HeapTupleHeaderData *HeapTupleHeader;
+};
+/* typedef appears in tupbasics.h */
 
 /*
  * information stored in t_infomask:
@@ -458,7 +456,7 @@ do { \
 #define MINIMAL_TUPLE_DATA_OFFSET \
 	offsetof(MinimalTupleData, t_infomask2)
 
-typedef struct MinimalTupleData
+struct MinimalTupleData
 {
 	uint32		t_len;			/* actual length of minimal tuple */
 
@@ -477,10 +475,8 @@ typedef struct MinimalTupleData
 	bits8		t_bits[1];		/* bitmap of NULLs -- VARIABLE LENGTH */
 
 	/* MORE DATA FOLLOWS AT END OF STRUCT */
-} MinimalTupleData;
-
-typedef MinimalTupleData *MinimalTuple;
-
+};
+/* typedef appears in tupbasics.h */
 
 /*
  * HeapTupleData is an in-memory data structure that points to a tuple.
@@ -514,27 +510,25 @@ typedef MinimalTupleData *MinimalTuple;
  * a disk buffer, or if it represents a copy of a tuple on disk.  They
  * should be explicitly set invalid in manufactured tuples.
  */
-typedef struct HeapTupleData
+struct HeapTupleData
 {
 	uint32		t_len;			/* length of *t_data */
 	ItemPointerData t_self;		/* SelfItemPointer */
 	Oid			t_tableOid;		/* table the tuple came from */
 	HeapTupleHeader t_data;		/* -> tuple header and data */
-} HeapTupleData;
-
-typedef HeapTupleData *HeapTuple;
-
-#define HEAPTUPLESIZE	MAXALIGN(sizeof(HeapTupleData))
+};
+/* typedef appears in tupbasics.h */
 
 /*
  * GETSTRUCT - given a HeapTuple pointer, return address of the user data
  */
 #define GETSTRUCT(TUP) ((char *) ((TUP)->t_data) + (TUP)->t_data->t_hoff)
 
+#define HEAPTUPLESIZE	MAXALIGN(sizeof(HeapTupleData))
+
 /*
  * Accessor macros to be used with HeapTuple pointers.
  */
-#define HeapTupleIsValid(tuple) PointerIsValid(tuple)
 
 #define HeapTupleHasNulls(tuple) \
 		(((tuple)->t_data->t_infomask & HEAP_HASNULL) != 0)
@@ -793,8 +787,6 @@ typedef struct xl_heap_visible
 
 #define SizeOfHeapVisible (offsetof(xl_heap_visible, cutoff_xid) + sizeof(TransactionId))
 
-extern void HeapTupleHeaderAdvanceLatestRemovedXid(HeapTupleHeader tuple,
-									   TransactionId *latestRemovedXid);
 
 /* HeapTupleHeader functions implemented in utils/time/combocid.c */
 extern CommandId HeapTupleHeaderGetCmin(HeapTupleHeader tup);
@@ -893,39 +885,9 @@ extern void heap_fill_tuple(TupleDesc tupleDesc,
 				Datum *values, bool *isnull,
 				char *data, Size data_size,
 				uint16 *infomask, bits8 *bit);
-extern bool heap_attisnull(HeapTuple tup, int attnum);
 extern Datum nocachegetattr(HeapTuple tup, int attnum,
 			   TupleDesc att);
 extern Datum heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
 				bool *isnull);
-extern HeapTuple heap_copytuple(HeapTuple tuple);
-extern void heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest);
-extern HeapTuple heap_form_tuple(TupleDesc tupleDescriptor,
-				Datum *values, bool *isnull);
-extern HeapTuple heap_modify_tuple(HeapTuple tuple,
-				  TupleDesc tupleDesc,
-				  Datum *replValues,
-				  bool *replIsnull,
-				  bool *doReplace);
-extern void heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc,
-				  Datum *values, bool *isnull);
-
-/* these three are deprecated versions of the three above: */
-extern HeapTuple heap_formtuple(TupleDesc tupleDescriptor,
-			   Datum *values, char *nulls);
-extern HeapTuple heap_modifytuple(HeapTuple tuple,
-				 TupleDesc tupleDesc,
-				 Datum *replValues,
-				 char *replNulls,
-				 char *replActions);
-extern void heap_deformtuple(HeapTuple tuple, TupleDesc tupleDesc,
-				 Datum *values, char *nulls);
-extern void heap_freetuple(HeapTuple htup);
-extern MinimalTuple heap_form_minimal_tuple(TupleDesc tupleDescriptor,
-						Datum *values, bool *isnull);
-extern void heap_free_minimal_tuple(MinimalTuple mtup);
-extern MinimalTuple heap_copy_minimal_tuple(MinimalTuple mtup);
-extern HeapTuple heap_tuple_from_minimal_tuple(MinimalTuple mtup);
-extern MinimalTuple minimal_tuple_from_heap_tuple(HeapTuple htup);
 
 #endif   /* HTUP_H */
diff --git a/src/include/access/reloptions.h b/src/include/access/reloptions.h
index 42af4a9..c37b4ec 100644
--- a/src/include/access/reloptions.h
+++ b/src/include/access/reloptions.h
@@ -19,7 +19,7 @@
 #ifndef RELOPTIONS_H
 #define RELOPTIONS_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "nodes/pg_list.h"
 
 /* types supported by reloptions */
diff --git a/src/include/access/relscan.h b/src/include/access/relscan.h
index 2e967e1..ac52bdc 100644
--- a/src/include/access/relscan.h
+++ b/src/include/access/relscan.h
@@ -17,6 +17,7 @@
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "access/itup.h"
+#include "access/htup.h"
 #include "access/tupdesc.h"
 
 
diff --git a/src/include/access/rewriteheap.h b/src/include/access/rewriteheap.h
index 1f6da61..270f147 100644
--- a/src/include/access/rewriteheap.h
+++ b/src/include/access/rewriteheap.h
@@ -13,7 +13,7 @@
 #ifndef REWRITE_HEAP_H
 #define REWRITE_HEAP_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "utils/relcache.h"
 
 /* struct definition is private to rewriteheap.c */
diff --git a/src/include/access/tupbasics.h b/src/include/access/tupbasics.h
new file mode 100644
index 0000000..9dde582
--- /dev/null
+++ b/src/include/access/tupbasics.h
@@ -0,0 +1,70 @@
+/*-------------------------------------------------------------------------
+ * tupbasics.h
+ * 		Barebones tuple definitions
+ *
+ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * src/include/access/tupbasics.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef TUPBASICS_H
+#define TUPBASICS_H
+
+#include "access/tupdesc.h"
+#include "storage/itemptr.h"
+
+/* typedefs for structs defined in htup.h */
+typedef struct HeapTupleHeaderData HeapTupleHeaderData;
+
+typedef HeapTupleHeaderData *HeapTupleHeader;
+
+typedef struct MinimalTupleData MinimalTupleData;
+
+typedef MinimalTupleData *MinimalTuple;
+
+typedef struct HeapTupleData HeapTupleData;
+
+typedef HeapTupleData *HeapTuple;
+
+/*
+ * Accessor macros to be used with HeapTuple pointers.
+ */
+#define HeapTupleIsValid(tuple) PointerIsValid(tuple)
+
+/* prototypes for functions in common/heaptuple.c */
+extern bool heap_attisnull(HeapTuple tup, int attnum);
+extern HeapTuple heap_copytuple(HeapTuple tuple);
+extern void heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest);
+extern HeapTuple heap_form_tuple(TupleDesc tupleDescriptor,
+				Datum *values, bool *isnull);
+extern HeapTuple heap_modify_tuple(HeapTuple tuple,
+				  TupleDesc tupleDesc,
+				  Datum *replValues,
+				  bool *replIsnull,
+				  bool *doReplace);
+extern void heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc,
+				  Datum *values, bool *isnull);
+
+/* these three are deprecated versions of the three above: */
+extern HeapTuple heap_formtuple(TupleDesc tupleDescriptor,
+			   Datum *values, char *nulls);
+extern HeapTuple heap_modifytuple(HeapTuple tuple,
+				 TupleDesc tupleDesc,
+				 Datum *replValues,
+				 char *replNulls,
+				 char *replActions);
+extern void heap_deformtuple(HeapTuple tuple, TupleDesc tupleDesc,
+				 Datum *values, char *nulls);
+
+extern void heap_freetuple(HeapTuple htup);
+extern MinimalTuple heap_form_minimal_tuple(TupleDesc tupleDescriptor,
+						Datum *values, bool *isnull);
+extern void heap_free_minimal_tuple(MinimalTuple mtup);
+extern MinimalTuple heap_copy_minimal_tuple(MinimalTuple mtup);
+extern HeapTuple heap_tuple_from_minimal_tuple(MinimalTuple mtup);
+extern MinimalTuple minimal_tuple_from_heap_tuple(HeapTuple htup);
+
+#endif /* TUPBASICS_H */
diff --git a/src/include/access/tupconvert.h b/src/include/access/tupconvert.h
index 7511aa6..17f5a72 100644
--- a/src/include/access/tupconvert.h
+++ b/src/include/access/tupconvert.h
@@ -14,7 +14,7 @@
 #ifndef TUPCONVERT_H
 #define TUPCONVERT_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 
 
 typedef struct TupleConversionMap
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 450ec25..6592813 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -15,7 +15,7 @@
 #ifndef INDEXING_H
 #define INDEXING_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "utils/relcache.h"
 
 /*
diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h
index 9ceb086..2edcd78 100644
--- a/src/include/commands/tablecmds.h
+++ b/src/include/commands/tablecmds.h
@@ -14,7 +14,7 @@
 #ifndef TABLECMDS_H
 #define TABLECMDS_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "nodes/parsenodes.h"
 #include "storage/lock.h"
 #include "utils/relcache.h"
diff --git a/src/include/commands/typecmds.h b/src/include/commands/typecmds.h
index b72cfc4..c3447c1 100644
--- a/src/include/commands/typecmds.h
+++ b/src/include/commands/typecmds.h
@@ -14,7 +14,7 @@
 #ifndef TYPECMDS_H
 #define TYPECMDS_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "nodes/parsenodes.h"
 
 
diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
index 7a50d2f..7eac60a 100644
--- a/src/include/commands/vacuum.h
+++ b/src/include/commands/vacuum.h
@@ -14,7 +14,7 @@
 #ifndef VACUUM_H
 #define VACUUM_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "catalog/pg_statistic.h"
 #include "catalog/pg_type.h"
 #include "nodes/parsenodes.h"
diff --git a/src/include/parser/parse_oper.h b/src/include/parser/parse_oper.h
index 3d05300..964b35a 100644
--- a/src/include/parser/parse_oper.h
+++ b/src/include/parser/parse_oper.h
@@ -14,7 +14,7 @@
 #ifndef PARSE_OPER_H
 #define PARSE_OPER_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "parser/parse_node.h"
 
 
diff --git a/src/include/parser/parse_type.h b/src/include/parser/parse_type.h
index c283a9f..e7d90f7 100644
--- a/src/include/parser/parse_type.h
+++ b/src/include/parser/parse_type.h
@@ -13,7 +13,7 @@
 #ifndef PARSE_TYPE_H
 #define PARSE_TYPE_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "parser/parse_node.h"
 
 
diff --git a/src/include/storage/predicate.h b/src/include/storage/predicate.h
index 7ec79e0..76ea4eb 100644
--- a/src/include/storage/predicate.h
+++ b/src/include/storage/predicate.h
@@ -14,6 +14,7 @@
 #ifndef PREDICATE_H
 #define PREDICATE_H
 
+#include "storage/block.h"
 #include "utils/relcache.h"
 #include "utils/snapshot.h"
 
diff --git a/src/include/utils/inval.h b/src/include/utils/inval.h
index c8815e5..374be45 100644
--- a/src/include/utils/inval.h
+++ b/src/include/utils/inval.h
@@ -14,7 +14,8 @@
 #ifndef INVAL_H
 #define INVAL_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
+#include "storage/relfilenode.h"
 #include "utils/relcache.h"
 
 
diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h
index 4bf1029..ec4b245 100644
--- a/src/include/utils/lsyscache.h
+++ b/src/include/utils/lsyscache.h
@@ -13,7 +13,7 @@
 #ifndef LSYSCACHE_H
 #define LSYSCACHE_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 
 /* Result list element for get_op_btree_interpretation */
 typedef struct OpBtreeInterpretation
diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h
index 87c6554..1c27a37 100644
--- a/src/include/utils/selfuncs.h
+++ b/src/include/utils/selfuncs.h
@@ -16,7 +16,7 @@
 #define SELFUNCS_H
 
 #include "fmgr.h"
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "nodes/relation.h"
 
 
diff --git a/src/include/utils/snapshot.h b/src/include/utils/snapshot.h
index 900272e..3619c2c 100644
--- a/src/include/utils/snapshot.h
+++ b/src/include/utils/snapshot.h
@@ -13,7 +13,7 @@
 #ifndef SNAPSHOT_H
 #define SNAPSHOT_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "storage/buf.h"
 
 
diff --git a/src/pl/plpython/plpy_typeio.h b/src/pl/plpython/plpy_typeio.h
index d2dfa66..e70e812 100644
--- a/src/pl/plpython/plpy_typeio.h
+++ b/src/pl/plpython/plpy_typeio.h
@@ -5,7 +5,7 @@
 #ifndef PLPY_TYPEIO_H
 #define PLPY_TYPEIO_H
 
-#include "access/htup.h"
+#include "access/tupbasics.h"
 #include "fmgr.h"
 #include "storage/itemptr.h"
 
