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)