Skip to content

Commit 76f26c0

Browse files
authored
Merge pull request #125 from cipherstash/proxy-integration-fixes
Proxy integration fixes
2 parents e04f366 + 5c29e0d commit 76f26c0

File tree

6 files changed

+35
-14
lines changed

6 files changed

+35
-14
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

src/operators/->.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ AS $$
4949
END;
5050
$$ LANGUAGE plpgsql;
5151

52+
5253
CREATE OPERATOR ->(
5354
FUNCTION=eql_v2."->",
5455
LEFTARG=eql_v2_encrypted,

src/operators/->>.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ AS $$
1111
DECLARE
1212
found eql_v2_encrypted;
1313
BEGIN
14-
found = eql_v2."->"(e, selector);
15-
RETURN eql_v2.ciphertext(found);
14+
-- found = eql_v2."->"(e, selector);
15+
-- RETURN eql_v2.ciphertext(found);
16+
RETURN eql_v2."->"(e, selector);
1617
END;
1718
$$ LANGUAGE plpgsql;
1819

src/operators/->>_test.sql

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,16 @@ $$ LANGUAGE plpgsql;
3434

3535
--
3636
-- The ->> operator returns ciphertext matching the selector
37-
DO $$
38-
BEGIN
37+
-- NOTE: DEPRECATED BEHAVIOUR
38+
-- DO $$
39+
-- BEGIN
3940

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

4748

4849
--

0 commit comments

Comments
 (0)