36 lines
595 B
C
36 lines
595 B
C
|
/*
|
||
|
* 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 */
|