@@ -159,125 +159,146 @@ ALTER DOMAIN cs_encrypted_v1
159159);
160160
161161
162- DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0_0(col jsonb);
162+ DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0_0(val jsonb);
163163
164- CREATE FUNCTION cs_ciphertext_v1_v0_0 (col jsonb)
165- RETURNS text
166- LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
167- BEGIN ATOMIC
168- RETURN col- >> ' c' ;
169- END;
164+ CREATE FUNCTION cs_ciphertext_v1_v0_0 (val jsonb)
165+ RETURNS text
166+ IMMUTABLE STRICT PARALLEL SAFE
167+ AS $$
168+ BEGIN
169+ IF val ? ' c' THEN
170+ RETURN val- >> ' c' ;
171+ END IF;
172+ RAISE ' Expected a ciphertext (c) value in json: %' , val;
173+ END;
174+ $$ LANGUAGE plpgsql;
170175
171176
172- DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0(col jsonb);
173177
174- CREATE FUNCTION cs_ciphertext_v1_v0 (col jsonb)
178+ DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0(val jsonb);
179+
180+ CREATE FUNCTION cs_ciphertext_v1_v0 (val jsonb)
175181 RETURNS text
176182 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
177183BEGIN ATOMIC
178- RETURN cs_ciphertext_v1_v0_0(col );
184+ RETURN cs_ciphertext_v1_v0_0(val );
179185END;
180186
181187
182- DROP FUNCTION IF EXISTS cs_ciphertext_v1(col jsonb);
188+ DROP FUNCTION IF EXISTS cs_ciphertext_v1(val jsonb);
183189
184- CREATE FUNCTION cs_ciphertext_v1 (col jsonb)
190+ CREATE FUNCTION cs_ciphertext_v1 (val jsonb)
185191 RETURNS text
186192 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
187193BEGIN ATOMIC
188- RETURN cs_ciphertext_v1_v0_0(col );
194+ RETURN cs_ciphertext_v1_v0_0(val );
189195END;
190196
191197
192198-- extracts match index from an emcrypted column
193- DROP FUNCTION IF EXISTS cs_match_v1_v0_0(col jsonb);
199+ DROP FUNCTION IF EXISTS cs_match_v1_v0_0(val jsonb);
194200
195- CREATE FUNCTION cs_match_v1_v0_0 (col jsonb)
201+ CREATE FUNCTION cs_match_v1_v0_0 (val jsonb)
196202 RETURNS cs_match_index_v1
197- LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
198- BEGIN ATOMIC
199- SELECT ARRAY(SELECT jsonb_array_elements(col- > ' m' ))::cs_match_index_v1;
200- END;
203+ IMMUTABLE STRICT PARALLEL SAFE
204+ AS $$
205+ BEGIN
206+ IF val ? ' m' THEN
207+ SELECT ARRAY(SELECT jsonb_array_elements(val- > ' m' ))::cs_match_index_v1;
208+ END IF;
209+ RAISE ' Expected a match index (m) value in json: %' , val;
210+ END;
211+ $$ LANGUAGE plpgsql;
201212
202213
203- DROP FUNCTION IF EXISTS cs_match_v1_v0(col jsonb);
214+ DROP FUNCTION IF EXISTS cs_match_v1_v0(val jsonb);
204215
205- CREATE FUNCTION cs_match_v1_v0 (col jsonb)
216+ CREATE FUNCTION cs_match_v1_v0 (val jsonb)
206217 RETURNS cs_match_index_v1
207218 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
208219BEGIN ATOMIC
209- RETURN cs_match_v1_v0_0(col );
220+ RETURN cs_match_v1_v0_0(val );
210221END;
211222
212223
213- DROP FUNCTION IF EXISTS cs_match_v1(col jsonb);
224+ DROP FUNCTION IF EXISTS cs_match_v1(val jsonb);
214225
215- CREATE FUNCTION cs_match_v1 (col jsonb)
226+ CREATE FUNCTION cs_match_v1 (val jsonb)
216227 RETURNS cs_match_index_v1
217228 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
218229BEGIN ATOMIC
219- RETURN cs_match_v1_v0_0(col );
230+ RETURN cs_match_v1_v0_0(val );
220231END;
221232
222233
223234-- extracts unique index from an encrypted column
224- DROP FUNCTION IF EXISTS cs_unique_v1_v0_0(col jsonb);
235+ DROP FUNCTION IF EXISTS cs_unique_v1_v0_0(val jsonb);
225236
226- CREATE FUNCTION cs_unique_v1_v0_0 (col jsonb)
237+ CREATE FUNCTION cs_unique_v1_v0_0 (val jsonb)
227238 RETURNS cs_unique_index_v1
228- LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
229- BEGIN ATOMIC
230- RETURN col- >> ' u' ;
231- END;
239+ IMMUTABLE STRICT PARALLEL SAFE
240+ AS $$
241+ BEGIN
242+ IF val ? ' u' THEN
243+ RETURN val- >> ' u' ;
244+ END IF;
245+ RAISE ' Expected a unique index (u) value in json: %' , val;
246+ END;
247+ $$ LANGUAGE plpgsql;
232248
233249
234- DROP FUNCTION IF EXISTS cs_unique_v1_v0(col jsonb);
250+ DROP FUNCTION IF EXISTS cs_unique_v1_v0(val jsonb);
235251
236- CREATE FUNCTION cs_unique_v1_v0 (col jsonb)
252+ CREATE FUNCTION cs_unique_v1_v0 (val jsonb)
237253 RETURNS cs_unique_index_v1
238254 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
239255BEGIN ATOMIC
240- RETURN cs_unique_v1_v0_0(col );
256+ RETURN cs_unique_v1_v0_0(val );
241257END;
242258
243259
244- DROP FUNCTION IF EXISTS cs_unique_v1(col jsonb);
260+ DROP FUNCTION IF EXISTS cs_unique_v1(val jsonb);
245261
246- CREATE FUNCTION cs_unique_v1 (col jsonb)
262+ CREATE FUNCTION cs_unique_v1 (val jsonb)
247263 RETURNS cs_unique_index_v1
248264 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
249265BEGIN ATOMIC
250- RETURN cs_unique_v1_v0_0(col );
266+ RETURN cs_unique_v1_v0_0(val );
251267END;
252268
253269-- extracts json ste_vec index from an encrypted column
254- DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0_0(col jsonb);
270+ DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0_0(val jsonb);
255271
256- CREATE FUNCTION cs_ste_vec_v1_v0_0 (col jsonb)
272+ CREATE FUNCTION cs_ste_vec_v1_v0_0 (val jsonb)
257273 RETURNS cs_ste_vec_index_v1
258- LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
259- BEGIN ATOMIC
260- SELECT (col- > ' sv' )::cs_ste_vec_index_v1;
261- END;
274+ IMMUTABLE STRICT PARALLEL SAFE
275+ AS $$
276+ BEGIN
277+ IF val ? ' sv' THEN
278+ SELECT (val- > ' sv' )::cs_ste_vec_index_v1;
279+ END IF;
280+ RAISE ' Expected a structured vector index (sv) value in json: %' , val;
281+ END;
282+ $$ LANGUAGE plpgsql;
262283
263284
264- DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0(col jsonb);
285+ DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0(val jsonb);
265286
266- CREATE FUNCTION cs_ste_vec_v1_v0 (col jsonb)
287+ CREATE FUNCTION cs_ste_vec_v1_v0 (val jsonb)
267288 RETURNS cs_ste_vec_index_v1
268289 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
269290BEGIN ATOMIC
270- RETURN cs_ste_vec_v1_v0_0(col );
291+ RETURN cs_ste_vec_v1_v0_0(val );
271292END;
272293
273294
274- DROP FUNCTION IF EXISTS cs_ste_vec_v1(col jsonb);
295+ DROP FUNCTION IF EXISTS cs_ste_vec_v1(val jsonb);
275296
276- CREATE FUNCTION cs_ste_vec_v1 (col jsonb)
297+ CREATE FUNCTION cs_ste_vec_v1 (val jsonb)
277298 RETURNS cs_ste_vec_index_v1
278299 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
279300BEGIN ATOMIC
280- RETURN cs_ste_vec_v1_v0_0(col );
301+ RETURN cs_ste_vec_v1_v0_0(val );
281302END;
282303
283304
@@ -303,39 +324,31 @@ DROP FUNCTION IF EXISTS cs_ore_64_8_v1_v0_0(val jsonb);
303324
304325CREATE FUNCTION cs_ore_64_8_v1_v0_0 (val jsonb)
305326 RETURNS ore_64_8_v1
306- LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
307- BEGIN ATOMIC
308- SELECT (val- >> ' o' )::ore_64_8_v1;
309- END;
327+ IMMUTABLE STRICT PARALLEL SAFE
328+ AS $$
329+ BEGIN
330+ IF val ? ' o' THEN
331+ SELECT (val- >> ' o' )::ore_64_8_v1;
332+ END IF;
333+ RAISE ' Expected an ore index (o) value in json: %' , val;
334+ END;
335+ $$ LANGUAGE plpgsql;
310336
311- DROP FUNCTION IF EXISTS cs_ore_64_8_v1_v0(col jsonb);
312337
313- CREATE FUNCTION cs_ore_64_8_v1_v0 (col jsonb)
338+ DROP FUNCTION IF EXISTS cs_ore_64_8_v1_v0(val jsonb);
339+
340+ CREATE FUNCTION cs_ore_64_8_v1_v0 (val jsonb)
314341 RETURNS ore_64_8_v1
315342 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
316343BEGIN ATOMIC
317- RETURN cs_ore_64_8_v1_v0_0(col );
344+ RETURN cs_ore_64_8_v1_v0_0(val );
318345END;
319346
320- DROP FUNCTION IF EXISTS cs_ore_64_8_v1(col jsonb);
347+ DROP FUNCTION IF EXISTS cs_ore_64_8_v1(val jsonb);
321348
322- CREATE FUNCTION cs_ore_64_8_v1 (col jsonb)
349+ CREATE FUNCTION cs_ore_64_8_v1 (val jsonb)
323350 RETURNS ore_64_8_v1
324351 LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
325352BEGIN ATOMIC
326- RETURN cs_ore_64_8_v1_v0_0(col );
353+ RETURN cs_ore_64_8_v1_v0_0(val );
327354END;
328-
329- DROP FUNCTION IF EXISTS _cs_first_grouped_value(jsonb, jsonb);
330-
331- CREATE FUNCTION _cs_first_grouped_value (jsonb, jsonb)
332- RETURNS jsonb AS $$
333- SELECT COALESCE($1 , $2 );
334- $$ LANGUAGE sql IMMUTABLE;
335-
336- DROP AGGREGATE IF EXISTS cs_grouped_value_v1(jsonb);
337-
338- CREATE AGGREGATE cs_grouped_value_v1 (jsonb) (
339- SFUNC = _cs_first_grouped_value,
340- STYPE = jsonb
341- );
0 commit comments