@@ -11,6 +11,29 @@ DO $$ BEGIN
1111 EXECUTE ' ALTER DATABASE ' || current_database() || ' SET pg_diffix.salt TO ' ' ' || gen_random_uuid() || ' ' ' ' ;
1212END $$ LANGUAGE plpgsql;
1313
14+ /* ----------------------------------------------------------------
15+ * Internal functions
16+ * ----------------------------------------------------------------
17+ */
18+
19+ CREATE FUNCTION placeholder_func (anyelement)
20+ RETURNS anyelement
21+ AS ' MODULE_PATHNAME'
22+ LANGUAGE C IMMUTABLE STRICT
23+ SECURITY INVOKER SET search_path = ' ' ;
24+
25+ CREATE FUNCTION placeholder_func (anyelement, " any" )
26+ RETURNS anyelement
27+ AS ' MODULE_PATHNAME'
28+ LANGUAGE C IMMUTABLE STRICT
29+ SECURITY INVOKER SET search_path = ' ' ;
30+
31+ CREATE FUNCTION internal_qual_wrapper (boolean )
32+ RETURNS boolean
33+ AS ' MODULE_PATHNAME'
34+ LANGUAGE C VOLATILE
35+ SECURITY INVOKER SET search_path = ' ' ;
36+
1437/* ----------------------------------------------------------------
1538 * Utilities
1639 * ----------------------------------------------------------------
@@ -159,71 +182,33 @@ AS 'MODULE_PATHNAME'
159182LANGUAGE C STABLE
160183SECURITY INVOKER SET search_path = ' ' ;
161184
162-
163185/* ----------------------------------------------------------------
164186 * Non-anonymizing aggregators
165187 * ----------------------------------------------------------------
166188 */
167189
168- /*
169- * Present here only to provide the proper signatures for the aggregators available
170- * to the non-direct access users.
171- */
172-
173- CREATE FUNCTION dummy_agg_noise_transfn (AnonAggState)
174- RETURNS AnonAggState
175- AS ' MODULE_PATHNAME'
176- LANGUAGE C STABLE
177- SECURITY INVOKER SET search_path = ' ' ;
178-
179- CREATE FUNCTION dummy_agg_noise_transfn (AnonAggState, value " any" )
180- RETURNS AnonAggState
181- AS ' MODULE_PATHNAME'
182- LANGUAGE C STABLE
183- SECURITY INVOKER SET search_path = ' ' ;
184-
185- CREATE FUNCTION dummy_agg_noise_finalfn (AnonAggState)
186- RETURNS float8
187- AS ' MODULE_PATHNAME'
188- LANGUAGE C STABLE
189- SECURITY INVOKER SET search_path = ' ' ;
190-
191- CREATE FUNCTION dummy_agg_noise_finalfn (AnonAggState, value " any" )
192- RETURNS float8
193- AS ' MODULE_PATHNAME'
194- LANGUAGE C STABLE
195- SECURITY INVOKER SET search_path = ' ' ;
196-
197190CREATE AGGREGATE count_noise (* ) (
198- sfunc = dummy_agg_noise_transfn,
199- stype = AnonAggState,
200- finalfunc = dummy_agg_noise_finalfn,
201- finalfunc_extra = true,
202- finalfunc_modify = read_write
191+ sfunc = placeholder_func,
192+ stype = float8,
193+ initcond = 0 .0
203194);
204195
205196CREATE AGGREGATE count_noise (value " any" ) (
206- sfunc = dummy_agg_noise_transfn,
207- stype = AnonAggState,
208- finalfunc = dummy_agg_noise_finalfn,
209- finalfunc_extra = true,
210- finalfunc_modify = read_write
197+ sfunc = placeholder_func,
198+ stype = float8,
199+ initcond = 0 .0
211200);
212201
213202CREATE AGGREGATE sum_noise (value " any" ) (
214- sfunc = dummy_agg_noise_transfn,
215- stype = AnonAggState,
216- finalfunc = dummy_agg_noise_finalfn,
217- finalfunc_extra = true,
218- finalfunc_modify = read_write
203+ sfunc = placeholder_func,
204+ stype = float8,
205+ initcond = 0 .0
219206);
220207
221208CREATE AGGREGATE avg_noise (value " any" ) (
222- sfunc = dummy_agg_noise_transfn,
223- stype = AnonAggState,
224- finalfunc = dummy_agg_noise_finalfn,
225- finalfunc_extra = true,
226- finalfunc_modify = read_write
209+ sfunc = placeholder_func,
210+ stype = float8,
211+ initcond = 0 .0
227212);
228213
229214/* ----------------------------------------------------------------
@@ -314,24 +299,12 @@ CREATE AGGREGATE anon_sum_noise(value "any", variadic aids "any") (
314299 * ----------------------------------------------------------------
315300 */
316301
317- CREATE FUNCTION placeholder_func (anyelement)
318- RETURNS anyelement
319- AS ' MODULE_PATHNAME'
320- LANGUAGE C IMMUTABLE STRICT
321- SECURITY INVOKER SET search_path = ' ' ;
322-
323302CREATE AGGREGATE is_suppress_bin (* ) (
324303 sfunc = placeholder_func,
325304 stype = boolean ,
326305 initcond = false
327306);
328307
329- CREATE FUNCTION internal_qual_wrapper (boolean )
330- RETURNS boolean
331- AS ' MODULE_PATHNAME'
332- LANGUAGE C VOLATILE
333- SECURITY INVOKER SET search_path = ' ' ;
334-
335308/* ----------------------------------------------------------------
336309 * Scalar functions
337310 * ----------------------------------------------------------------
0 commit comments