PostgreSQL Source Code: src/include/utils/numeric.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef _PG_NUMERIC_H_

15#define _PG_NUMERIC_H_

16

19

20

21

22

23

24

25

26

27

28

29

30

31

32#define NUMERIC_MAX_PRECISION 1000

33

34#define NUMERIC_MIN_SCALE (-1000)

35#define NUMERIC_MAX_SCALE 1000

36

37

38

39

40#define NUMERIC_MAX_DISPLAY_SCALE NUMERIC_MAX_PRECISION

41#define NUMERIC_MIN_DISPLAY_SCALE 0

42

43#define NUMERIC_MAX_RESULT_SCALE (NUMERIC_MAX_PRECISION * 2)

44

45

46

47

48

49

50#define NUMERIC_MIN_SIG_DIGITS 16

51

52

55

56

57

58

59

62{

64}

65

68{

70}

71

72static inline Datum

74{

76}

77

78#define PG_GETARG_NUMERIC(n) DatumGetNumeric(PG_GETARG_DATUM(n))

79#define PG_GETARG_NUMERIC_COPY(n) DatumGetNumericCopy(PG_GETARG_DATUM(n))

80#define PG_RETURN_NUMERIC(x) return NumericGetDatum(x)

81

82

83

84

90

93

95 bool *have_error);

97 bool *have_error);

99 bool *have_error);

101 bool *have_error);

103 bool *have_error);

106

109

110#endif

#define PG_DETOAST_DATUM_COPY(datum)

#define PG_DETOAST_DATUM(datum)

char * numeric_normalize(Numeric num)

char * numeric_out_sci(Numeric num, int scale)

int32 numeric_maximum_size(int32 typmod)

int32 numeric_int4_opt_error(Numeric num, bool *have_error)

static Numeric DatumGetNumericCopy(Datum X)

Numeric numeric_mod_opt_error(Numeric num1, Numeric num2, bool *have_error)

Numeric numeric_div_opt_error(Numeric num1, Numeric num2, bool *have_error)

Numeric int64_to_numeric(int64 val)

Numeric random_numeric(pg_prng_state *state, Numeric rmin, Numeric rmax)

static Numeric DatumGetNumeric(Datum X)

Numeric int64_div_fast_to_numeric(int64 val1, int log10val2)

int64 numeric_int8_opt_error(Numeric num, bool *have_error)

struct NumericData * Numeric

bool numeric_is_nan(Numeric num)

Numeric numeric_sub_opt_error(Numeric num1, Numeric num2, bool *have_error)

Numeric numeric_mul_opt_error(Numeric num1, Numeric num2, bool *have_error)

Numeric numeric_add_opt_error(Numeric num1, Numeric num2, bool *have_error)

bool numeric_is_inf(Numeric num)

static Datum NumericGetDatum(Numeric X)

static Datum PointerGetDatum(const void *X)