PostgreSQL Source Code: src/backend/utils/adt/pseudorandomfuncs.c Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

15

16#include <math.h>

17

20#include "utils/fmgrprotos.h"

23

24

27

28

29

30

31

32

33static void

35{

37 {

38

39

40

41

42

44 {

47

48

51 }

53 }

54}

55

56

57

58

59

60

63{

65

66 if (seed < -1 || seed > 1 || isnan(seed))

68 errcode(ERRCODE_INVALID_PARAMETER_VALUE),

69 errmsg("setseed parameter %g is out of allowed range [-1,1]",

70 seed));

71

74

76}

77

78

79

80

81

82

85{

87

89

90

92

94}

95

96

97

98

99

100

103{

107 z;

108

110

111

113

114

115 result = (stddev * z) + mean;

116

118}

119

120

121

122

123

124

127{

131

132 if (rmin > rmax)

134 errcode(ERRCODE_INVALID_PARAMETER_VALUE),

135 errmsg("lower bound must be less than or equal to upper bound"));

136

138

140

142}

143

144

145

146

147

148

151{

155

156 if (rmin > rmax)

158 errcode(ERRCODE_INVALID_PARAMETER_VALUE),

159 errmsg("lower bound must be less than or equal to upper bound"));

160

162

164

166}

167

168

169

170

171

172

175{

179

181

183

185}

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

TimestampTz GetCurrentTimestamp(void)

Datum now(PG_FUNCTION_ARGS)

int errcode(int sqlerrcode)

int errmsg(const char *fmt,...)

#define ereport(elevel,...)

#define PG_GETARG_FLOAT8(n)

#define PG_RETURN_FLOAT8(x)

#define PG_RETURN_INT64(x)

#define PG_GETARG_INT64(n)

#define PG_RETURN_INT32(x)

#define PG_GETARG_INT32(n)

#define PG_GETARG_NUMERIC(n)

#define PG_RETURN_NUMERIC(x)

int64 pg_prng_int64_range(pg_prng_state *state, int64 rmin, int64 rmax)

double pg_prng_double(pg_prng_state *state)

void pg_prng_seed(pg_prng_state *state, uint64 seed)

double pg_prng_double_normal(pg_prng_state *state)

void pg_prng_fseed(pg_prng_state *state, double fseed)

#define pg_prng_strong_seed(state)

static void initialize_prng(void)

Datum numeric_random(PG_FUNCTION_ARGS)

static pg_prng_state prng_state

Datum int4random(PG_FUNCTION_ARGS)

Datum setseed(PG_FUNCTION_ARGS)

static bool prng_seed_set

Datum drandom(PG_FUNCTION_ARGS)

Datum drandom_normal(PG_FUNCTION_ARGS)

Datum int8random(PG_FUNCTION_ARGS)