Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/encrypted/functions.sql
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ AS $$
$$ LANGUAGE plpgsql;



CREATE FUNCTION eql_v2.ciphertext(val eql_v2_encrypted)
RETURNS text
IMMUTABLE STRICT PARALLEL SAFE
Expand All @@ -29,7 +28,6 @@ AS $$
$$ LANGUAGE plpgsql;



CREATE FUNCTION eql_v2._first_grouped_value(jsonb, jsonb)
RETURNS jsonb AS $$
SELECT COALESCE($1, $2);
Expand Down
9 changes: 7 additions & 2 deletions src/jsonb/functions.sql
Original file line number Diff line number Diff line change
Expand Up @@ -246,17 +246,22 @@ CREATE FUNCTION eql_v2.jsonb_array_elements(val jsonb)
AS $$
DECLARE
sv eql_v2_encrypted[];
found eql_v2_encrypted[];
meta jsonb;
item jsonb;
BEGIN

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

-- Column identifier and version
meta := eql_v2.meta_data(val);

sv := eql_v2.ste_vec(val);

FOR idx IN 1..array_length(sv, 1) LOOP
RETURN NEXT sv[idx];
item = sv[idx];
RETURN NEXT (meta || item)::eql_v2_encrypted;
END LOOP;

RETURN;
Expand Down
15 changes: 15 additions & 0 deletions src/jsonb/functions_test.sql
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,21 @@ $$ LANGUAGE plpgsql;



DO $$
DECLARE
result jsonb;
BEGIN
PERFORM seed_encrypted_json();
PERFORM seed_encrypted(get_array_ste_vec()::eql_v2_encrypted);

SELECT eql_v2.jsonb_array_elements(eql_v2.jsonb_path_query(e, 'f510853730e1c3dbd31b86963f029dd5')::jsonb) FROM encrypted INTO result;

ASSERT result ? 'i';
ASSERT result ? 'v';
END;
$$ LANGUAGE plpgsql;


DO $$
BEGIN

Expand Down
1 change: 1 addition & 0 deletions src/operators/->.sql
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ AS $$
END;
$$ LANGUAGE plpgsql;


CREATE OPERATOR ->(
FUNCTION=eql_v2."->",
LEFTARG=eql_v2_encrypted,
Expand Down
5 changes: 3 additions & 2 deletions src/operators/->>.sql
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ AS $$
DECLARE
found eql_v2_encrypted;
BEGIN
found = eql_v2."->"(e, selector);
RETURN eql_v2.ciphertext(found);
-- found = eql_v2."->"(e, selector);
-- RETURN eql_v2.ciphertext(found);
RETURN eql_v2."->"(e, selector);
END;
$$ LANGUAGE plpgsql;

Expand Down
17 changes: 9 additions & 8 deletions src/operators/->>_test.sql
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,16 @@ $$ LANGUAGE plpgsql;

--
-- The ->> operator returns ciphertext matching the selector
DO $$
BEGIN
-- NOTE: DEPRECATED BEHAVIOUR
-- DO $$
-- BEGIN

PERFORM assert_result(
'Selector ->> returns all eql_v2_encrypted',
'SELECT e->>''bca213de9ccce676fa849ff9c4807963''::text FROM encrypted LIMIT 1;',
'mBbLGB9xHAGzLvUj-`@Wmf=IhD87n7r3ir3n!Sk6AKir_YawR=0c>pk(OydB;ntIEXK~c>V&4>)rNkf<JN7fmlO)c^iBv;-X0+3XyK5d`&&I-oeIEOcwPf<3zy');
END;
$$ LANGUAGE plpgsql;
-- PERFORM assert_result(
-- 'Selector ->> returns all eql_v2_encrypted',
-- 'SELECT e->>''bca213de9ccce676fa849ff9c4807963''::text FROM encrypted LIMIT 1;',
-- 'mBbLGB9xHAGzLvUj-`@Wmf=IhD87n7r3ir3n!Sk6AKir_YawR=0c>pk(OydB;ntIEXK~c>V&4>)rNkf<JN7fmlO)c^iBv;-X0+3XyK5d`&&I-oeIEOcwPf<3zy');
-- END;
-- $$ LANGUAGE plpgsql;


--
Expand Down