PostgreSQL Source Code  git master
cash.h
Go to the documentation of this file.
1 /*
2  * src/include/utils/cash.h
3  *
4  *
5  * cash.h
6  * Written by D'Arcy J.M. Cain
7  *
8  * Functions to allow input and output of money normally but store
9  * and handle it as 64 bit integer.
10  */
11 
12 #ifndef CASH_H
13 #define CASH_H
14 
15 #include "fmgr.h"
16 
17 typedef int64 Cash;
18 
19 /* Cash is pass-by-reference if and only if int64 is */
20 static inline Cash
22 {
23  return DatumGetInt64(X);
24 }
25 
26 static inline Datum
28 {
29  return Int64GetDatum(X);
30 }
31 
32 #define PG_GETARG_CASH(n) DatumGetCash(PG_GETARG_DATUM(n))
33 #define PG_RETURN_CASH(x) return CashGetDatum(x)
34 
35 #endif /* CASH_H */
static Cash DatumGetCash(Datum X)
Definition: cash.h:21
static Datum CashGetDatum(Cash X)
Definition: cash.h:27
int64 Cash
Definition: cash.h:17
Datum Int64GetDatum(int64 X)
Definition: fmgr.c:1807
static int64 DatumGetInt64(Datum X)
Definition: postgres.h:385
uintptr_t Datum
Definition: postgres.h:64