diff options
Diffstat (limited to 'src/include/utils/cash.h')
-rw-r--r-- | src/include/utils/cash.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/include/utils/cash.h b/src/include/utils/cash.h new file mode 100644 index 0000000..55d45fa --- /dev/null +++ b/src/include/utils/cash.h @@ -0,0 +1,35 @@ +/* + * src/include/utils/cash.h + * + * + * cash.h + * Written by D'Arcy J.M. Cain + * + * Functions to allow input and output of money normally but store + * and handle it as 64 bit integer. + */ + +#ifndef CASH_H +#define CASH_H + +#include "fmgr.h" + +typedef int64 Cash; + +/* Cash is pass-by-reference if and only if int64 is */ +static inline Cash +DatumGetCash(Datum X) +{ + return DatumGetInt64(X); +} + +static inline Datum +CashGetDatum(Cash X) +{ + return Int64GetDatum(X); +} + +#define PG_GETARG_CASH(n) DatumGetCash(PG_GETARG_DATUM(n)) +#define PG_RETURN_CASH(x) return CashGetDatum(x) + +#endif /* CASH_H */ |