Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit bd94488

Browse files
committed
Consolidate ItemPointer to Datum conversion functions
Instead of defining the same set of macros several times, define it once in an appropriate header file. In passing, convert to inline functions. Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Discussion: https://www.postgresql.org/message-id/flat/844dd4c5-e5a1-3df1-bfaf-d1e1c2a16e45%40enterprisedb.com
1 parent 7da5159 commit bd94488

File tree

5 files changed

+20
-12
lines changed

5 files changed

+20
-12
lines changed

contrib/pageinspect/btreefuncs.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ PG_FUNCTION_INFO_V1(bt_multi_page_stats);
5050

5151
#define IS_INDEX(r) ((r)->rd_rel->relkind == RELKIND_INDEX)
5252
#define IS_BTREE(r) ((r)->rd_rel->relam == BTREE_AM_OID)
53-
#define DatumGetItemPointer(X) ((ItemPointer) DatumGetPointer(X))
54-
#define ItemPointerGetDatum(X) PointerGetDatum(X)
5553

5654
/* ------------------------------------------------
5755
* structure for single btree page statistics

contrib/pageinspect/ginfuncs.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121
#include "utils/builtins.h"
2222
#include "utils/rel.h"
2323

24-
#define DatumGetItemPointer(X) ((ItemPointer) DatumGetPointer(X))
25-
#define ItemPointerGetDatum(X) PointerGetDatum(X)
26-
2724

2825
PG_FUNCTION_INFO_V1(gin_metapage_info);
2926
PG_FUNCTION_INFO_V1(gin_page_opaque_info);

contrib/pageinspect/gistfuncs.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ PG_FUNCTION_INFO_V1(gist_page_items_bytea);
3131

3232
#define IS_GIST(r) ((r)->rd_rel->relam == GIST_AM_OID)
3333

34-
#define ItemPointerGetDatum(X) PointerGetDatum(X)
35-
3634

3735
Datum
3836
gist_page_opaque_info(PG_FUNCTION_ARGS)

src/backend/utils/adt/tid.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@
3737
#include "utils/varlena.h"
3838

3939

40-
#define DatumGetItemPointer(X) ((ItemPointer) DatumGetPointer(X))
41-
#define ItemPointerGetDatum(X) PointerGetDatum(X)
42-
#define PG_GETARG_ITEMPOINTER(n) DatumGetItemPointer(PG_GETARG_DATUM(n))
43-
#define PG_RETURN_ITEMPOINTER(x) return ItemPointerGetDatum(x)
44-
4540
#define LDELIM '('
4641
#define RDELIM ')'
4742
#define DELIM ','

src/include/storage/itemptr.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,4 +222,24 @@ extern int32 ItemPointerCompare(ItemPointer arg1, ItemPointer arg2);
222222
extern void ItemPointerInc(ItemPointer pointer);
223223
extern void ItemPointerDec(ItemPointer pointer);
224224

225+
/* ----------------
226+
* Datum conversion functions
227+
* ----------------
228+
*/
229+
230+
static inline ItemPointer
231+
DatumGetItemPointer(Datum X)
232+
{
233+
return (ItemPointer) DatumGetPointer(X);
234+
}
235+
236+
static inline Datum
237+
ItemPointerGetDatum(const ItemPointerData *X)
238+
{
239+
return PointerGetDatum(X);
240+
}
241+
242+
#define PG_GETARG_ITEMPOINTER(n) DatumGetItemPointer(PG_GETARG_DATUM(n))
243+
#define PG_RETURN_ITEMPOINTER(x) return ItemPointerGetDatum(x)
244+
225245
#endif /* ITEMPTR_H */

0 commit comments

Comments
 (0)