File tree Expand file tree Collapse file tree 3 files changed +22
-4
lines changed Expand file tree Collapse file tree 3 files changed +22
-4
lines changed Original file line number Diff line number Diff line change 18
18
$$ LANGUAGE plpgsql;
19
19
20
20
21
-
22
21
CREATE FUNCTION eql_v2 .ciphertext(val eql_v2_encrypted)
23
22
RETURNS text
24
23
IMMUTABLE STRICT PARALLEL SAFE
29
28
$$ LANGUAGE plpgsql;
30
29
31
30
32
-
33
31
CREATE FUNCTION eql_v2 ._first_grouped_value(jsonb, jsonb)
34
32
RETURNS jsonb AS $$
35
33
SELECT COALESCE($1 , $2 );
Original file line number Diff line number Diff line change @@ -246,17 +246,22 @@ CREATE FUNCTION eql_v2.jsonb_array_elements(val jsonb)
246
246
AS $$
247
247
DECLARE
248
248
sv eql_v2_encrypted[];
249
- found eql_v2_encrypted[];
249
+ meta jsonb;
250
+ item jsonb;
250
251
BEGIN
251
252
252
253
IF NOT eql_v2 .is_ste_vec_array (val) THEN
253
254
RAISE ' cannot extract elements from non-array' ;
254
255
END IF;
255
256
257
+ -- Column identifier and version
258
+ meta := eql_v2 .meta_data (val);
259
+
256
260
sv := eql_v2 .ste_vec (val);
257
261
258
262
FOR idx IN 1 ..array_length(sv, 1 ) LOOP
259
- RETURN NEXT sv[idx];
263
+ item = sv[idx];
264
+ RETURN NEXT (meta || item)::eql_v2_encrypted;
260
265
END LOOP;
261
266
262
267
RETURN;
Original file line number Diff line number Diff line change @@ -208,6 +208,21 @@ $$ LANGUAGE plpgsql;
208
208
209
209
210
210
211
+ DO $$
212
+ DECLARE
213
+ result jsonb;
214
+ BEGIN
215
+ PERFORM seed_encrypted_json();
216
+ PERFORM seed_encrypted(get_array_ste_vec()::eql_v2_encrypted);
217
+
218
+ SELECT eql_v2 .jsonb_array_elements (eql_v2 .jsonb_path_query (e, ' f510853730e1c3dbd31b86963f029dd5' )::jsonb) FROM encrypted INTO result;
219
+
220
+ ASSERT result ? ' i' ;
221
+ ASSERT result ? ' v' ;
222
+ END;
223
+ $$ LANGUAGE plpgsql;
224
+
225
+
211
226
DO $$
212
227
BEGIN
213
228
You can’t perform that action at this time.
0 commit comments