File tree 2 files changed +18
-5
lines changed
2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -239,13 +239,24 @@ RETURNS integer AS $$
239
239
DECLARE
240
240
cmp_result integer ;
241
241
BEGIN
242
- IF (array_length(a, 1 ) = 0 OR a IS NULL ) AND (array_length(b, 1 ) = 0 OR b IS NULL ) THEN
242
+
243
+ -- NULLs are NULL
244
+ IF a IS NULL OR b IS NULL THEN
245
+ RETURN NULL ;
246
+ END IF;
247
+
248
+ -- empty a and b
249
+ IF cardinality(a) = 0 AND cardinality(b) = 0 THEN
243
250
RETURN 0 ;
244
251
END IF;
245
- IF array_length(a, 1 ) = 0 OR a IS NULL THEN
252
+
253
+ -- empty a and some b
254
+ IF (cardinality(a) = 0 ) AND cardinality(b) > 0 THEN
246
255
RETURN - 1 ;
247
256
END IF;
248
- IF array_length(b, 1 ) = 0 OR a IS NULL THEN
257
+
258
+ -- some a and empty b
259
+ IF cardinality(a) > 0 AND (cardinality(b) = 0 ) THEN
249
260
RETURN 1 ;
250
261
END IF;
251
262
Original file line number Diff line number Diff line change @@ -12,8 +12,7 @@ CREATE TABLE users
12
12
13
13
TRUNCATE TABLE users;
14
14
15
-
16
- TRUNCATE TABLE users;
15
+ INSERT INTO users (name_encrypted) VALUES (NULL );
17
16
18
17
-- User with "LOW" value
19
18
INSERT INTO users (name_encrypted) VALUES (
57
56
-- SANITY CHECK
58
57
ASSERT (SELECT EXISTS (SELECT id FROM users WHERE cs_ore_64_8_v1(name_encrypted) < cs_ore_64_8_v1(ore_json)));
59
58
59
+ -- NULL VALUES SHOULD BE IGNORED
60
+ ASSERT (SELECT (SELECT COUNT (* ) FROM (SELECT id FROM users WHERE cs_ore_64_8_v1(name_encrypted) < cs_ore_64_8_v1(ore_json)) as count) = 1 );
61
+
60
62
ASSERT (SELECT EXISTS (
61
63
SELECT id FROM users WHERE name_encrypted < ore_cs_encrypted::jsonb
62
64
));
You can’t perform that action at this time.
0 commit comments