Skip to content

Commit 6388413

Browse files
committed
feat: has_index functions
1 parent 7e691e4 commit 6388413

File tree

4 files changed

+96
-1
lines changed

4 files changed

+96
-1
lines changed

src/blake3/functions.sql

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ CREATE FUNCTION eql_v2.blake3(val jsonb)
1010
IMMUTABLE STRICT PARALLEL SAFE
1111
AS $$
1212
BEGIN
13+
IF val IS NULL THEN
14+
RETURN NULL;
15+
END IF;
1316

14-
IF NOT (val ? 'b3') NULL THEN
17+
IF NOT (val ? 'b3') THEN
1518
RAISE 'Expected a blake3 index (b3) value in json: %', val;
1619
END IF;
1720

@@ -34,3 +37,24 @@ AS $$
3437
RETURN (SELECT eql_v2.blake3(val.data));
3538
END;
3639
$$ LANGUAGE plpgsql;
40+
41+
42+
CREATE FUNCTION eql_v2.has_blake3(val jsonb)
43+
RETURNS boolean
44+
IMMUTABLE STRICT PARALLEL SAFE
45+
AS $$
46+
BEGIN
47+
RETURN val ? 'b3';
48+
END;
49+
$$ LANGUAGE plpgsql;
50+
51+
52+
CREATE FUNCTION eql_v2.has_blake3(val eql_v2_encrypted)
53+
RETURNS boolean
54+
IMMUTABLE STRICT PARALLEL SAFE
55+
AS $$
56+
BEGIN
57+
RETURN eql_v2.has_blake3(val.data);
58+
END;
59+
$$ LANGUAGE plpgsql;
60+

src/bloom_filter/functions.sql

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ CREATE FUNCTION eql_v2.bloom_filter(val jsonb)
88
IMMUTABLE STRICT PARALLEL SAFE
99
AS $$
1010
BEGIN
11+
IF val IS NULL THEN
12+
RETURN NULL;
13+
END IF;
14+
1115
IF val ? 'bf' THEN
1216
RETURN ARRAY(SELECT jsonb_array_elements(val->'bf'))::eql_v2.bloom_filter;
1317
END IF;
18+
1419
RAISE 'Expected a match index (bf) value in json: %', val;
1520
END;
1621
$$ LANGUAGE plpgsql;
@@ -26,3 +31,23 @@ AS $$
2631
RETURN (SELECT eql_v2.bloom_filter(val.data));
2732
END;
2833
$$ LANGUAGE plpgsql;
34+
35+
36+
CREATE FUNCTION eql_v2.has_bloom_filter(val jsonb)
37+
RETURNS boolean
38+
IMMUTABLE STRICT PARALLEL SAFE
39+
AS $$
40+
BEGIN
41+
RETURN val ? 'bf';
42+
END;
43+
$$ LANGUAGE plpgsql;
44+
45+
46+
CREATE FUNCTION eql_v2.has_bloom_filter(val eql_v2_encrypted)
47+
RETURNS boolean
48+
IMMUTABLE STRICT PARALLEL SAFE
49+
AS $$
50+
BEGIN
51+
RETURN eql_v2.has_bloom_filter(val.data);
52+
END;
53+
$$ LANGUAGE plpgsql;

src/ore_cllw_u64_8/functions.sql

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ CREATE FUNCTION eql_v2.ore_cllw_u64_8(val jsonb)
1313
IMMUTABLE STRICT PARALLEL SAFE
1414
AS $$
1515
BEGIN
16+
IF val IS NULL THEN
17+
RETURN NULL;
18+
END IF;
1619

1720
IF NOT (val ? 'ocf') THEN
1821
RAISE 'Expected a ore_cllw_u64_8 index (ocf) value in json: %', val;
@@ -39,6 +42,26 @@ AS $$
3942
$$ LANGUAGE plpgsql;
4043

4144

45+
CREATE FUNCTION eql_v2.has_ore_cllw_u64_8(val jsonb)
46+
RETURNS boolean
47+
IMMUTABLE STRICT PARALLEL SAFE
48+
AS $$
49+
BEGIN
50+
RETURN val ? 'ocf';
51+
END;
52+
$$ LANGUAGE plpgsql;
53+
54+
55+
CREATE FUNCTION eql_v2.has_ore_cllw_u64_8(val eql_v2_encrypted)
56+
RETURNS boolean
57+
IMMUTABLE STRICT PARALLEL SAFE
58+
AS $$
59+
BEGIN
60+
RETURN eql_v2.has_ore_cllw_u64_8(val.data);
61+
END;
62+
$$ LANGUAGE plpgsql;
63+
64+
4265

4366
--
4467
-- Compare ore cllw bytes

src/ore_cllw_var_8/functions.sql

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ CREATE FUNCTION eql_v2.ore_cllw_var_8(val jsonb)
1313
AS $$
1414
BEGIN
1515

16+
IF val IS NULL THEN
17+
RETURN NULL;
18+
END IF;
19+
1620
IF NOT (val ? 'ocv') THEN
1721
RAISE 'Expected a ore_cllw_var_8 index (ocv) value in json: %', val;
1822
END IF;
@@ -38,6 +42,25 @@ AS $$
3842
$$ LANGUAGE plpgsql;
3943

4044

45+
CREATE FUNCTION eql_v2.has_ore_cllw_var_8(val jsonb)
46+
RETURNS boolean
47+
IMMUTABLE STRICT PARALLEL SAFE
48+
AS $$
49+
BEGIN
50+
RETURN val ? 'ocv';
51+
END;
52+
$$ LANGUAGE plpgsql;
53+
54+
55+
CREATE FUNCTION eql_v2.has_ore_cllw_var_8(val eql_v2_encrypted)
56+
RETURNS boolean
57+
IMMUTABLE STRICT PARALLEL SAFE
58+
AS $$
59+
BEGIN
60+
RETURN eql_v2.has_ore_cllw_var_8(val.data);
61+
END;
62+
$$ LANGUAGE plpgsql;
63+
4164

4265
CREATE FUNCTION eql_v2.compare_ore_cllw_var_8(a eql_v2.ore_cllw_var_8, b eql_v2.ore_cllw_var_8)
4366
RETURNS int AS $$

0 commit comments

Comments
 (0)