1
1
DROP FUNCTION IF EXISTS cs_ciphertext_v1_v0_0(val jsonb);
2
2
3
- CREATE FUNCTION cs_ciphertext_v1 (val jsonb)
3
+ CREATE FUNCTION cs_ciphertext_v1_v0_0 (val jsonb)
4
4
RETURNS text
5
5
IMMUTABLE STRICT PARALLEL SAFE
6
6
AS $$
@@ -13,13 +13,30 @@ AS $$
13
13
$$ LANGUAGE plpgsql;
14
14
15
15
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;
17
34
18
35
19
36
-- 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);
21
38
22
- CREATE FUNCTION cs_match_v1 (val jsonb)
39
+ CREATE FUNCTION cs_match_v1_v0_0 (val jsonb)
23
40
RETURNS cs_match_index_v1
24
41
IMMUTABLE STRICT PARALLEL SAFE
25
42
AS $$
@@ -31,13 +48,31 @@ AS $$
31
48
END;
32
49
$$ LANGUAGE plpgsql;
33
50
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;
35
70
36
71
37
72
-- 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);
39
74
40
- CREATE FUNCTION cs_unique_v1 (val jsonb)
75
+ CREATE FUNCTION cs_unique_v1_v0_0 (val jsonb)
41
76
RETURNS cs_unique_index_v1
42
77
IMMUTABLE STRICT PARALLEL SAFE
43
78
AS $$
@@ -50,12 +85,29 @@ AS $$
50
85
$$ LANGUAGE plpgsql;
51
86
52
87
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;
54
106
55
107
-- 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);
57
109
58
- CREATE FUNCTION cs_ste_vec_v1 (val jsonb)
110
+ CREATE FUNCTION cs_ste_vec_v1_v0_0 (val jsonb)
59
111
RETURNS cs_ste_vec_index_v1
60
112
IMMUTABLE STRICT PARALLEL SAFE
61
113
AS $$
@@ -67,34 +119,77 @@ AS $$
67
119
END;
68
120
$$ LANGUAGE plpgsql;
69
121
70
- -- ---------------------------------------------------------------------------
71
122
123
+ DROP FUNCTION IF EXISTS cs_ste_vec_v1_v0(val jsonb);
72
124
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;
74
131
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;
80
132
133
+ DROP FUNCTION IF EXISTS cs_ste_vec_v1(val jsonb);
81
134
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;
83
141
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
86
165
IMMUTABLE STRICT PARALLEL SAFE
87
166
AS $$
88
167
BEGIN
89
168
IF val ? ' o' THEN
90
- RETURN jsonb_array_to_bytea_array (val- > ' o' );
169
+ RETURN (val- >> ' o' )::ore_64_8_v1 ;
91
170
END IF;
92
171
RAISE ' Expected an ore index (o) value in json: %' , val;
93
172
END;
94
173
$$ LANGUAGE plpgsql;
95
174
96
- -- ---------------------------------------------------------------------------
97
175
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;
98
193
99
194
DROP FUNCTION IF EXISTS _cs_first_grouped_value(jsonb, jsonb);
100
195
0 commit comments