Skip to content

Commit 3180ed9

Browse files
authored
Merge pull request #22 from cipherstash/add-index-testing
Move over files from migrator (includes fix for indexes clobbering)
2 parents 118225e + a6e18cc commit 3180ed9

15 files changed

+2773
-9
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,4 @@ dist
179179
cipherstash-proxy.toml
180180

181181
# turbo repo
182-
.turbo
182+
.turbo

justfile

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
set dotenv-load
2+
set positional-arguments
3+
4+
5+
test_dsl:
6+
#!/usr/bin/env bash
7+
set -euxo pipefail
8+
9+
PGPASSWORD=$CS_DATABASE__PASSWORD dropdb --force --if-exists --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
10+
PGPASSWORD=$CS_DATABASE__PASSWORD createdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
11+
12+
connection_url=postgresql://$CS_DATABASE__USERNAME:@localhost:$CS_DATABASE__PORT/cs_migrator_test
13+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-core.sql
14+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-config-schema.sql
15+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-config-functions.sql
16+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-encryptindex.sql
17+
18+
# tests
19+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/core.sql
20+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/config.sql
21+
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/encryptindex.sql
22+
23+
dropdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
24+
25+
26+
build:
27+
#!/usr/bin/env bash
28+
set -euxo pipefail
29+
30+
cat sql/dsl-core.sql sql/dsl-config-schema.sql sql/dsl-config-functions.sql sql/dsl-encryptindex.sql > release/cipherstash-encrypt-dsl.sql
31+
32+
33+
psql:
34+
psql postgresql://$CS_USERNAME:$CS_PASSWORD@localhost:$CS_PORT/$CS_DATABASE__NAME
35+
36+
37+
psql_direct:
38+
psql --user $CS_DATABASE__USERNAME --dbname $CS_DATABASE__NAME --port $CS_DATABASE__PORT

languages/go/xorm/cipherstash-encrypt-dsl.sql

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ BEGIN ATOMIC
130130
RETURN cs_unique_v1_v0_0(col);
131131
END;
132132

133-
-- extracts json containment index from an encrypted column
133+
-- extracts json ste_vec index from an encrypted column
134134
CREATE OR REPLACE FUNCTION cs_ste_vec_v1_v0_0(col jsonb)
135135
RETURNS cs_ste_vec_index_v1
136136
LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
@@ -233,7 +233,7 @@ CREATE FUNCTION _cs_config_check_indexes(val jsonb)
233233
RETURNS BOOLEAN
234234
LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
235235
BEGIN ATOMIC
236-
SELECT jsonb_object_keys(jsonb_path_query(val, '$.tables.*.*.indexes')) = ANY('{match, ore, unique, json}');
236+
SELECT jsonb_object_keys(jsonb_path_query(val, '$.tables.*.*.indexes')) = ANY('{match, ore, unique, ste_vec}');
237237
END;
238238

239239

@@ -299,7 +299,7 @@ DROP FUNCTION IF EXISTS cs_discard_v1();
299299
DROP FUNCTION IF EXISTS cs_refresh_encrypt_config();
300300

301301
DROP FUNCTION IF EXISTS _cs_config_default();
302-
DROP FUNCTION IF EXISTS _cs_config_match_1_default();
302+
DROP FUNCTION IF EXISTS _cs_config_match_default();
303303

304304
DROP FUNCTION IF EXISTS _cs_config_add_table(text, json);
305305
DROP FUNCTION IF EXISTS _cs_config_add_column(text, text, json);
@@ -328,8 +328,7 @@ AS $$
328328
tbl jsonb;
329329
BEGIN
330330
IF NOT config #> array['tables'] ? table_name THEN
331-
SELECT jsonb_build_object(table_name, jsonb_build_object()) into tbl;
332-
SELECT jsonb_set(config, array['tables'], tbl) INTO config;
331+
SELECT jsonb_insert(config, array['tables', table_name], jsonb_build_object()) INTO config;
333332
END IF;
334333
RETURN config;
335334
END;
@@ -377,9 +376,9 @@ $$ LANGUAGE plpgsql;
377376

378377

379378
--
380-
-- Default options for match_1 index
379+
-- Default options for match index
381380
--
382-
CREATE FUNCTION _cs_config_match_1_default()
381+
CREATE FUNCTION _cs_config_match_default()
383382
RETURNS jsonb
384383
LANGUAGE sql STRICT PARALLEL SAFE
385384
BEGIN ATOMIC
@@ -425,7 +424,7 @@ AS $$
425424

426425
-- set default options for index if opts empty
427426
IF index_name = 'match' AND opts = '{}' THEN
428-
SELECT _cs_config_match_1_default() INTO opts;
427+
SELECT _cs_config_match_default() INTO opts;
429428
END IF;
430429

431430
SELECT _cs_config_add_index(table_name, column_name, index_name, opts, _config) INTO _config;

0 commit comments

Comments
 (0)