File tree Expand file tree Collapse file tree 2 files changed +18
-5
lines changed Expand file tree Collapse file tree 2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -239,13 +239,24 @@ RETURNS integer AS $$
239239 DECLARE
240240 cmp_result integer ;
241241 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
243250 RETURN 0 ;
244251 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
246255 RETURN - 1 ;
247256 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
249260 RETURN 1 ;
250261 END IF;
251262
Original file line number Diff line number Diff line change @@ -12,8 +12,7 @@ CREATE TABLE users
1212
1313TRUNCATE TABLE users;
1414
15-
16- TRUNCATE TABLE users;
15+ INSERT INTO users (name_encrypted) VALUES (NULL );
1716
1817-- User with "LOW" value
1918INSERT INTO users (name_encrypted) VALUES (
5756 -- SANITY CHECK
5857 ASSERT (SELECT EXISTS (SELECT id FROM users WHERE cs_ore_64_8_v1(name_encrypted) < cs_ore_64_8_v1(ore_json)));
5958
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+
6062 ASSERT (SELECT EXISTS (
6163 SELECT id FROM users WHERE name_encrypted < ore_cs_encrypted::jsonb
6264 ));
You can’t perform that action at this time.
0 commit comments