11DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0_0(val jsonb);
22
3- CREATE FUNCTION cs_ciphertext_v1 (val jsonb)
3+ CREATE FUNCTION cs_ciphertext_v1_v0_0 (val jsonb)
44 RETURNS text
55 IMMUTABLE STRICT PARALLEL SAFE
66AS $$
@@ -13,13 +13,30 @@ AS $$
1313$$ LANGUAGE plpgsql;
1414
1515
16- -- ---------------------------------------------------------------------------
16+ DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0(val jsonb);
17+
18+ CREATE FUNCTION cs_ciphertext_v1_v0 (val jsonb)
19+ RETURNS text
20+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
21+ BEGIN ATOMIC
22+ RETURN cs_ciphertext_v1_v0_0(val);
23+ END;
24+
25+
26+ DROP FUNCTION IF EXISTS cs_ciphertext_v1(val jsonb);
27+
28+ CREATE FUNCTION cs_ciphertext_v1 (val jsonb)
29+ RETURNS text
30+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
31+ BEGIN ATOMIC
32+ RETURN cs_ciphertext_v1_v0_0(val);
33+ END;
1734
1835
1936-- extracts match index from an emcrypted column
20- DROP FUNCTION IF EXISTS cs_match_v1 (val jsonb);
37+ DROP FUNCTION IF EXISTS cs_match_v1_v0_0 (val jsonb);
2138
22- CREATE FUNCTION cs_match_v1 (val jsonb)
39+ CREATE FUNCTION cs_match_v1_v0_0 (val jsonb)
2340 RETURNS cs_match_index_v1
2441 IMMUTABLE STRICT PARALLEL SAFE
2542AS $$
@@ -31,13 +48,31 @@ AS $$
3148 END;
3249$$ LANGUAGE plpgsql;
3350
34- -- ---------------------------------------------------------------------------
51+
52+ DROP FUNCTION IF EXISTS cs_match_v1_v0(val jsonb);
53+
54+ CREATE FUNCTION cs_match_v1_v0 (val jsonb)
55+ RETURNS cs_match_index_v1
56+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
57+ BEGIN ATOMIC
58+ RETURN cs_match_v1_v0_0(val);
59+ END;
60+
61+
62+ DROP FUNCTION IF EXISTS cs_match_v1(val jsonb);
63+
64+ CREATE FUNCTION cs_match_v1 (val jsonb)
65+ RETURNS cs_match_index_v1
66+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
67+ BEGIN ATOMIC
68+ RETURN cs_match_v1_v0_0(val);
69+ END;
3570
3671
3772-- extracts unique index from an encrypted column
38- DROP FUNCTION IF EXISTS cs_unique_v1 (val jsonb);
73+ DROP FUNCTION IF EXISTS cs_unique_v1_v0_0 (val jsonb);
3974
40- CREATE FUNCTION cs_unique_v1 (val jsonb)
75+ CREATE FUNCTION cs_unique_v1_v0_0 (val jsonb)
4176 RETURNS cs_unique_index_v1
4277 IMMUTABLE STRICT PARALLEL SAFE
4378AS $$
@@ -50,12 +85,29 @@ AS $$
5085$$ LANGUAGE plpgsql;
5186
5287
53- -- ---------------------------------------------------------------------------
88+ DROP FUNCTION IF EXISTS cs_unique_v1_v0(val jsonb);
89+
90+ CREATE FUNCTION cs_unique_v1_v0 (val jsonb)
91+ RETURNS cs_unique_index_v1
92+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
93+ BEGIN ATOMIC
94+ RETURN cs_unique_v1_v0_0(val);
95+ END;
96+
97+
98+ DROP FUNCTION IF EXISTS cs_unique_v1(val jsonb);
99+
100+ CREATE FUNCTION cs_unique_v1 (val jsonb)
101+ RETURNS cs_unique_index_v1
102+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
103+ BEGIN ATOMIC
104+ RETURN cs_unique_v1_v0_0(val);
105+ END;
54106
55107-- extracts json ste_vec index from an encrypted column
56- DROP FUNCTION IF EXISTS cs_ste_vec_v1 (val jsonb);
108+ DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0_0 (val jsonb);
57109
58- CREATE FUNCTION cs_ste_vec_v1 (val jsonb)
110+ CREATE FUNCTION cs_ste_vec_v1_v0_0 (val jsonb)
59111 RETURNS cs_ste_vec_index_v1
60112 IMMUTABLE STRICT PARALLEL SAFE
61113AS $$
@@ -67,34 +119,77 @@ AS $$
67119 END;
68120$$ LANGUAGE plpgsql;
69121
70- -- ---------------------------------------------------------------------------
71122
123+ DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0(val jsonb);
72124
73- DROP FUNCTION IF EXISTS jsonb_array_to_bytea_array(val jsonb);
125+ CREATE FUNCTION cs_ste_vec_v1_v0 (val jsonb)
126+ RETURNS cs_ste_vec_index_v1
127+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
128+ BEGIN ATOMIC
129+ RETURN cs_ste_vec_v1_v0_0(val);
130+ END;
74131
75- CREATE FUNCTION jsonb_array_to_bytea_array (val jsonb)
76- RETURNS bytea [] AS $$
77- SELECT array_agg(decode(value::text , ' hex' ))
78- FROM jsonb_array_elements_text(val) AS value;
79- $$ LANGUAGE sql;
80132
133+ DROP FUNCTION IF EXISTS cs_ste_vec_v1(val jsonb);
81134
82- DROP FUNCTION IF EXISTS cs_ore_64_8_v1(val jsonb);
135+ CREATE FUNCTION cs_ste_vec_v1 (val jsonb)
136+ RETURNS cs_ste_vec_index_v1
137+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
138+ BEGIN ATOMIC
139+ RETURN cs_ste_vec_v1_v0_0(val);
140+ END;
83141
84- CREATE FUNCTION cs_ore_64_8_v1 (val jsonb)
85- RETURNS ore_64_8_index_v1
142+
143+ -- casts text to ore_64_8_v1_term (bytea)
144+ DROP FUNCTION IF EXISTS _cs_text_to_ore_64_8_v1_term_v1_0(t text );
145+
146+ CREATE FUNCTION _cs_text_to_ore_64_8_v1_term_v1_0 (t text )
147+ RETURNS ore_64_8_v1_term
148+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
149+ BEGIN ATOMIC
150+ RETURN t::bytea ;
151+ END;
152+
153+ -- cast to cleanup ore_64_8_v1 extraction
154+ DROP CAST IF EXISTS (text AS ore_64_8_v1_term);
155+
156+ CREATE CAST (text AS ore_64_8_v1_term)
157+ WITH FUNCTION _cs_text_to_ore_64_8_v1_term_v1_0(text ) AS IMPLICIT;
158+
159+
160+ -- extracts ore index from an encrypted column
161+ DROP FUNCTION IF EXISTS cs_ore_64_8_v1_v0_0(val jsonb);
162+
163+ CREATE FUNCTION cs_ore_64_8_v1_v0_0 (val jsonb)
164+ RETURNS ore_64_8_v1
86165 IMMUTABLE STRICT PARALLEL SAFE
87166AS $$
88167 BEGIN
89168 IF val ? ' o' THEN
90- RETURN jsonb_array_to_bytea_array (val- > ' o' );
169+ RETURN (val- >> ' o' )::ore_64_8_v1 ;
91170 END IF;
92171 RAISE ' Expected an ore index (o) value in json: %' , val;
93172 END;
94173$$ LANGUAGE plpgsql;
95174
96- -- ---------------------------------------------------------------------------
97175
176+ DROP FUNCTION IF EXISTS cs_ore_64_8_v1_v0(val jsonb);
177+
178+ CREATE FUNCTION cs_ore_64_8_v1_v0 (val jsonb)
179+ RETURNS ore_64_8_v1
180+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
181+ BEGIN ATOMIC
182+ RETURN cs_ore_64_8_v1_v0_0(val);
183+ END;
184+
185+ DROP FUNCTION IF EXISTS cs_ore_64_8_v1(val jsonb);
186+
187+ CREATE FUNCTION cs_ore_64_8_v1 (val jsonb)
188+ RETURNS ore_64_8_v1
189+ LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
190+ BEGIN ATOMIC
191+ RETURN cs_ore_64_8_v1_v0_0(val);
192+ END;
98193
99194DROP FUNCTION IF EXISTS _cs_first_grouped_value(jsonb, jsonb);
100195
0 commit comments