Skip to content

Commit 106906e

Browse files
committed
fix: add meta to jsonb_array_elements
1 parent e04f366 commit 106906e

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

src/encrypted/functions.sql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ AS $$
1818
$$ LANGUAGE plpgsql;
1919

2020

21-
2221
CREATE FUNCTION eql_v2.ciphertext(val eql_v2_encrypted)
2322
RETURNS text
2423
IMMUTABLE STRICT PARALLEL SAFE
@@ -29,7 +28,6 @@ AS $$
2928
$$ LANGUAGE plpgsql;
3029

3130

32-
3331
CREATE FUNCTION eql_v2._first_grouped_value(jsonb, jsonb)
3432
RETURNS jsonb AS $$
3533
SELECT COALESCE($1, $2);

src/jsonb/functions.sql

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,17 +246,22 @@ CREATE FUNCTION eql_v2.jsonb_array_elements(val jsonb)
246246
AS $$
247247
DECLARE
248248
sv eql_v2_encrypted[];
249-
found eql_v2_encrypted[];
249+
meta jsonb;
250+
item jsonb;
250251
BEGIN
251252

252253
IF NOT eql_v2.is_ste_vec_array(val) THEN
253254
RAISE 'cannot extract elements from non-array';
254255
END IF;
255256

257+
-- Column identifier and version
258+
meta := eql_v2.meta_data(val);
259+
256260
sv := eql_v2.ste_vec(val);
257261

258262
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;
260265
END LOOP;
261266

262267
RETURN;

src/jsonb/functions_test.sql

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,21 @@ $$ LANGUAGE plpgsql;
208208

209209

210210

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+
211226
DO $$
212227
BEGIN
213228

0 commit comments

Comments
 (0)