Skip to content

Commit 01dcc24

Browse files
authored
Merge pull request #84 from cipherstash/fix-operators
Drop operators more good
2 parents 39c5c18 + de92465 commit 01dcc24

File tree

4 files changed

+51
-34
lines changed

4 files changed

+51
-34
lines changed

sql/016-operators-match.sql

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,37 +87,37 @@ CREATE OPERATOR <@(
8787
);
8888

8989

90-
DROP OPERATOR IF EXISTS <@ (cs_match_index_v1, cs_encrypted_v1);
91-
DROP FUNCTION IF EXISTS cs_encrypted_contained_v1(a cs_match_index_v1, b cs_encrypted_v1);
90+
DROP OPERATOR IF EXISTS <@ (cs_encrypted_v1, cs_match_index_v1);
91+
DROP FUNCTION IF EXISTS cs_encrypted_contained_v1(a cs_encrypted_v1, b cs_match_index_v1);
9292

93-
CREATE FUNCTION cs_encrypted_contained_v1(a cs_match_index_v1, b cs_encrypted_v1)
93+
CREATE FUNCTION cs_encrypted_contained_v1(a cs_encrypted_v1, b cs_match_index_v1)
9494
RETURNS boolean AS $$
95-
SELECT a <@ cs_match_v1(b);
95+
SELECT cs_match_v1(a) <@ b;
9696
$$ LANGUAGE SQL;
9797

9898
CREATE OPERATOR <@ (
9999
PROCEDURE="cs_encrypted_contained_v1",
100-
LEFTARG=cs_match_index_v1,
101-
RIGHTARG=cs_encrypted_v1,
100+
LEFTARG=cs_encrypted_v1,
101+
RIGHTARG=cs_match_index_v1,
102102
RESTRICT = eqsel,
103103
JOIN = eqjoinsel,
104104
HASHES,
105105
MERGES
106106
);
107107

108108

109-
DROP OPERATOR IF EXISTS <@ (cs_encrypted_v1, cs_match_index_v1);
110-
DROP FUNCTION IF EXISTS cs_encrypted_contained_v1(a cs_encrypted_v1, b cs_match_index_v1);
109+
DROP OPERATOR IF EXISTS <@ (cs_match_index_v1, cs_encrypted_v1);
110+
DROP FUNCTION IF EXISTS cs_encrypted_contained_v1(a cs_match_index_v1, b cs_encrypted_v1);
111111

112112
CREATE FUNCTION cs_encrypted_contained_v1(a cs_match_index_v1, b cs_encrypted_v1)
113113
RETURNS boolean AS $$
114-
SELECT cs_match_v1(a) <@ b;
114+
SELECT a <@ cs_match_v1(b);
115115
$$ LANGUAGE SQL;
116116

117117
CREATE OPERATOR <@ (
118118
PROCEDURE="cs_encrypted_contained_v1",
119-
LEFTARG=cs_encrypted_v1,
120-
RIGHTARG=cs_match_index_v1,
119+
LEFTARG=cs_match_index_v1,
120+
RIGHTARG=cs_encrypted_v1,
121121
RESTRICT = eqsel,
122122
JOIN = eqjoinsel,
123123
HASHES,

sql/017-operators-ore.sql

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,31 @@ CREATE OPERATOR <=(
398398
JOIN = scalarlejoinsel
399399
);
400400

401+
401402
-----------------------------------------------------------------------------------------
402403

403404

405+
DROP FUNCTION IF EXISTS cs_encrypted_ore_64_8_compare(a cs_encrypted_v1, b cs_encrypted_v1);
406+
407+
CREATE FUNCTION cs_encrypted_ore_64_8_compare(a cs_encrypted_v1, b cs_encrypted_v1)
408+
RETURNS integer AS $$
409+
BEGIN
410+
RETURN compare_ore_64_8_v1(cs_ore_64_8_v1(a), cs_ore_64_8_v1(b));
411+
END;
412+
$$ LANGUAGE plpgsql;
413+
414+
DROP FUNCTION IF EXISTS cs_encrypted_ore_64_8_compare(a cs_encrypted_v1, b cs_encrypted_v1);
415+
416+
CREATE FUNCTION cs_encrypted_ore_64_8_compare(a cs_encrypted_v1, b jsonb)
417+
RETURNS integer AS $$
418+
BEGIN
419+
RETURN compare_ore_64_8_v1(cs_ore_64_8_v1(a), cs_ore_64_8_v1(jsonb));
420+
END;
421+
$$ LANGUAGE plpgsql;
422+
423+
424+
-----------------------------------------------------------------------------------------
425+
404426

405427
DROP OPERATOR FAMILY IF EXISTS cs_encrypted_ore_64_8_v1_btree_ops_v1 USING btree;
406428

@@ -409,11 +431,12 @@ CREATE OPERATOR FAMILY cs_encrypted_ore_64_8_v1_btree_ops_v1 USING btree;
409431

410432
DROP OPERATOR CLASS IF EXISTS ore_64_8_v1_btree_ops USING btree;
411433

412-
CREATE OPERATOR CLASS cs_encrypted_ore_64_8_v1_btree_ops_v1 DEFAULT FOR TYPE cs_encrypted_v1 USING btree FAMILY cs_encrypted_ore_64_8_v1_btree_ops_v1 AS
413-
OPERATOR 1 <,
414-
OPERATOR 2 <=,
415-
OPERATOR 3 =,
416-
OPERATOR 4 >=,
417-
OPERATOR 5 >;
418-
419-
434+
CREATE OPERATOR CLASS cs_encrypted_ore_64_8_v1_btree_ops_v1 DEFAULT
435+
FOR TYPE cs_encrypted_v1 USING btree
436+
FAMILY cs_encrypted_ore_64_8_v1_btree_ops_v1 AS
437+
OPERATOR 1 <,
438+
OPERATOR 2 <=,
439+
OPERATOR 3 =,
440+
OPERATOR 4 >=,
441+
OPERATOR 5 >,
442+
FUNCTION 1 cs_encrypted_ore_64_8_compare(a cs_encrypted_v1, b cs_encrypted_v1);

sql/666-drop-operators.sql

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
1+
DROP OPERATOR FAMILY IF EXISTS cs_encrypted_ore_64_8_v1_btree_ops_v1 USING btree;
2+
DROP OPERATOR CLASS IF EXISTS ore_64_8_v1_btree_ops USING btree;
13
DROP OPERATOR IF EXISTS @> (cs_encrypted_v1, cs_encrypted_v1);
2-
34
DROP OPERATOR IF EXISTS @> (cs_encrypted_v1, cs_match_index_v1);
45
DROP OPERATOR IF EXISTS @> (cs_match_index_v1, cs_encrypted_v1);
56

67
DROP OPERATOR IF EXISTS <@ (cs_encrypted_v1, cs_encrypted_v1);
7-
88
DROP OPERATOR IF EXISTS <@ (cs_encrypted_v1, cs_match_index_v1);
99
DROP OPERATOR IF EXISTS <@ (cs_match_index_v1, cs_encrypted_v1);
1010

11-
1211
DROP OPERATOR IF EXISTS <= (ore_64_8_v1, cs_encrypted_v1);
1312
DROP OPERATOR IF EXISTS <= (cs_encrypted_v1, ore_64_8_v1);
1413
DROP OPERATOR IF EXISTS <= (jsonb, cs_encrypted_v1);
1514
DROP OPERATOR IF EXISTS <= (cs_encrypted_v1, jsonb);
1615
DROP OPERATOR IF EXISTS <= (cs_encrypted_v1, cs_encrypted_v1);
1716

18-
DROP OPERATOR IF EXISTS >=(ore_64_8_v1, cs_encrypted_v1);
17+
DROP OPERATOR IF EXISTS >= (ore_64_8_v1, cs_encrypted_v1);
1918
DROP OPERATOR IF EXISTS >= (jsonb, cs_encrypted_v1);
2019
DROP OPERATOR IF EXISTS >= (cs_encrypted_v1, ore_64_8_v1);
2120
DROP OPERATOR IF EXISTS >= (cs_encrypted_v1, jsonb);
22-
DROP OPERATOR IF EXISTS >=(cs_encrypted_v1, cs_encrypted_v1);
21+
DROP OPERATOR IF EXISTS >= (cs_encrypted_v1, cs_encrypted_v1);
2322

24-
DROP OPERATOR IF EXISTS <(ore_64_8_v1, cs_encrypted_v1);
25-
DROP OPERATOR IF EXISTS <(cs_encrypted_v1, ore_64_8_v1);
23+
DROP OPERATOR IF EXISTS < (ore_64_8_v1, cs_encrypted_v1);
24+
DROP OPERATOR IF EXISTS < (cs_encrypted_v1, ore_64_8_v1);
2625
DROP OPERATOR IF EXISTS < (jsonb, cs_encrypted_v1);
2726
DROP OPERATOR IF EXISTS < (cs_encrypted_v1, jsonb);
2827
DROP OPERATOR IF EXISTS < (cs_encrypted_v1, cs_encrypted_v1);
@@ -33,25 +32,18 @@ DROP OPERATOR IF EXISTS > (cs_encrypted_v1, ore_64_8_v1);
3332
DROP OPERATOR IF EXISTS > (cs_encrypted_v1, jsonb);
3433
DROP OPERATOR IF EXISTS > (cs_encrypted_v1, cs_encrypted_v1);
3534

36-
3735
DROP OPERATOR IF EXISTS = (cs_encrypted_v1, cs_encrypted_v1);
38-
3936
DROP OPERATOR IF EXISTS = (cs_encrypted_v1, jsonb);
4037
DROP OPERATOR IF EXISTS = (jsonb, cs_encrypted_v1);
41-
4238
DROP OPERATOR IF EXISTS = (cs_encrypted_v1, cs_unique_index_v1);
4339
DROP OPERATOR IF EXISTS = (cs_unique_index_v1, cs_encrypted_v1);
44-
4540
DROP OPERATOR IF EXISTS = (cs_encrypted_v1, ore_64_8_v1);
4641
DROP OPERATOR IF EXISTS = (ore_64_8_v1, cs_encrypted_v1);
4742

4843
DROP OPERATOR IF EXISTS <> (cs_encrypted_v1, cs_encrypted_v1);
49-
5044
DROP OPERATOR IF EXISTS <> (cs_encrypted_v1, jsonb);
5145
DROP OPERATOR IF EXISTS <> (jsonb, cs_encrypted_v1);
52-
5346
DROP OPERATOR IF EXISTS <> (cs_encrypted_v1, cs_unique_index_v1);
5447
DROP OPERATOR IF EXISTS <> (cs_unique_index_v1, cs_encrypted_v1);
55-
5648
DROP OPERATOR IF EXISTS <> (ore_64_8_v1, cs_encrypted_v1);
5749
DROP OPERATOR IF EXISTS <> (cs_encrypted_v1, ore_64_8_v1);

tasks/build.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env bash
22
#MISE description="Build SQL into single release file"
3+
#MISE alias="b"
34
#MISE sources=["sql/*.sql"]
45
#MISE outputs=["release/cipherstash-encrypt.sql","release/cipherstash-encrypt-uninstall.sql"]
56

@@ -21,7 +22,8 @@ cat sql/666-drop_types.sql >> release/cipherstash-encrypt-tmp-drop-install.sql
2122

2223
# Build cipherstash-encrypt.sql
2324
# drop everything first
24-
cat release/cipherstash-encrypt-tmp-drop-install.sql > release/cipherstash-encrypt.sql
25+
cat sql/666-drop-operators.sql > release/cipherstash-encrypt.sql
26+
cat release/cipherstash-encrypt-tmp-drop-install.sql >> release/cipherstash-encrypt.sql
2527
# cat the rest of the sql files
2628
cat sql/0*-*.sql >> release/cipherstash-encrypt.sql
2729

0 commit comments

Comments
 (0)