diff --git a/src/blake3/compare.sql b/src/blake3/compare.sql index c4042a34d..6800b7396 100644 --- a/src/blake3/compare.sql +++ b/src/blake3/compare.sql @@ -22,6 +22,7 @@ CREATE FUNCTION eql_v2.compare_blake3(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE a_term eql_v2.blake3; diff --git a/src/blake3/functions.sql b/src/blake3/functions.sql index e6ee5775d..1ceda8fcf 100644 --- a/src/blake3/functions.sql +++ b/src/blake3/functions.sql @@ -14,6 +14,7 @@ CREATE FUNCTION eql_v2.blake3(val jsonb) RETURNS eql_v2.blake3 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -45,6 +46,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.blake3(val eql_v2_encrypted) RETURNS eql_v2.blake3 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.blake3(val.data)); @@ -64,6 +66,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_blake3(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'b3' IS NOT NULL; @@ -83,6 +86,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_blake3(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_blake3(val.data); diff --git a/src/bloom_filter/functions.sql b/src/bloom_filter/functions.sql index 837821a02..25850a5bd 100644 --- a/src/bloom_filter/functions.sql +++ b/src/bloom_filter/functions.sql @@ -15,6 +15,7 @@ CREATE FUNCTION eql_v2.bloom_filter(val jsonb) RETURNS eql_v2.bloom_filter IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -42,6 +43,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.bloom_filter(val eql_v2_encrypted) RETURNS eql_v2.bloom_filter IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.bloom_filter(val.data)); @@ -61,6 +63,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_bloom_filter(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'bf' IS NOT NULL; @@ -80,6 +83,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_bloom_filter(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_bloom_filter(val.data); diff --git a/src/common.sql b/src/common.sql index 2f1b8077c..736c62021 100644 --- a/src/common.sql +++ b/src/common.sql @@ -23,7 +23,9 @@ --! --! @note Returns false immediately if lengths differ (length is not secret) --! @note Used for secure comparison of cryptographic values -CREATE FUNCTION eql_v2.bytea_eq(a bytea, b bytea) RETURNS boolean AS $$ +CREATE FUNCTION eql_v2.bytea_eq(a bytea, b bytea) RETURNS boolean + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE result boolean; differing bytea; @@ -59,7 +61,9 @@ $$ LANGUAGE plpgsql; --! @note Returns NULL if input is JSON null --! @note Each array element is hex-decoded to bytea CREATE FUNCTION eql_v2.jsonb_array_to_bytea_array(val jsonb) -RETURNS bytea[] AS $$ +RETURNS bytea[] + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE terms_arr bytea[]; BEGIN @@ -87,6 +91,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.log(text, text) for contextual logging CREATE FUNCTION eql_v2.log(s text) RETURNS void + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RAISE NOTICE '[LOG] %', s; @@ -106,6 +111,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.log(text) CREATE FUNCTION eql_v2.log(ctx text, s text) RETURNS void + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RAISE NOTICE '[LOG] % %', ctx, s; diff --git a/src/config/constraints.sql b/src/config/constraints.sql index 4ccb05152..183790fd1 100644 --- a/src/config/constraints.sql +++ b/src/config/constraints.sql @@ -44,6 +44,7 @@ END; CREATE FUNCTION eql_v2.config_check_indexes(val jsonb) RETURNS BOOLEAN IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN @@ -75,6 +76,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.config_check_cast(val jsonb) RETURNS BOOLEAN IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE _valid_types text[] := '{text, int, small_int, big_int, real, double, boolean, date, jsonb, json, float, decimal, timestamp}'; @@ -113,6 +115,7 @@ $$ LANGUAGE plpgsql; --! @note Used in CHECK constraint on eql_v2_configuration table CREATE FUNCTION eql_v2.config_check_tables(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF (val ? 'tables') THEN @@ -136,6 +139,7 @@ $$ LANGUAGE plpgsql; --! @note Used in CHECK constraint on eql_v2_configuration table CREATE FUNCTION eql_v2.config_check_version(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF (val ? 'v') THEN diff --git a/src/config/functions.sql b/src/config/functions.sql index 0649e4324..8628cee65 100644 --- a/src/config/functions.sql +++ b/src/config/functions.sql @@ -32,6 +32,7 @@ CREATE FUNCTION eql_v2.add_search_config(table_name text, column_name text, index_name text, cast_as text DEFAULT 'text', opts jsonb DEFAULT '{}', migrating boolean DEFAULT false) RETURNS jsonb + SET search_path = pg_catalog, extensions, public AS $$ DECLARE o jsonb; @@ -108,6 +109,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.modify_search_config CREATE FUNCTION eql_v2.remove_search_config(table_name text, column_name text, index_name text, migrating boolean DEFAULT false) RETURNS jsonb + SET search_path = pg_catalog, extensions, public AS $$ DECLARE _config jsonb; @@ -178,6 +180,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.remove_search_config CREATE FUNCTION eql_v2.modify_search_config(table_name text, column_name text, index_name text, cast_as text DEFAULT 'text', opts jsonb DEFAULT '{}', migrating boolean DEFAULT false) RETURNS jsonb + SET search_path = pg_catalog, extensions, public AS $$ BEGIN PERFORM eql_v2.remove_search_config(table_name, column_name, index_name, migrating); @@ -204,6 +207,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_column CREATE FUNCTION eql_v2.migrate_config() RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN @@ -241,6 +245,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_column CREATE FUNCTION eql_v2.activate_config() RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN @@ -270,6 +275,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2.discard() RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF EXISTS (SELECT FROM public.eql_v2_configuration c WHERE c.state = 'pending') THEN @@ -305,6 +311,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.remove_column CREATE FUNCTION eql_v2.add_column(table_name text, column_name text, cast_as text DEFAULT 'text', migrating boolean DEFAULT false) RETURNS jsonb + SET search_path = pg_catalog, extensions, public AS $$ DECLARE key text; @@ -368,6 +375,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.remove_search_config CREATE FUNCTION eql_v2.remove_column(table_name text, column_name text, migrating boolean DEFAULT false) RETURNS jsonb + SET search_path = pg_catalog, extensions, public AS $$ DECLARE key text; @@ -466,6 +474,7 @@ CREATE FUNCTION eql_v2.config() RETURNS TABLE ( decrypts_as text, indexes jsonb ) + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY diff --git a/src/config/functions_private.sql b/src/config/functions_private.sql index 67c9362bb..b7365c027 100644 --- a/src/config/functions_private.sql +++ b/src/config/functions_private.sql @@ -11,6 +11,7 @@ CREATE FUNCTION eql_v2.config_default(config jsonb) RETURNS jsonb IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF config IS NULL THEN @@ -32,6 +33,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.config_add_table(table_name text, config jsonb) RETURNS jsonb IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE tbl jsonb; @@ -56,6 +58,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.config_add_column(table_name text, column_name text, config jsonb) RETURNS jsonb IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE col jsonb; @@ -82,6 +85,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.config_add_cast(table_name text, column_name text, cast_as text, config jsonb) RETURNS jsonb IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN SELECT jsonb_set(config, array['tables', table_name, column_name, 'cast_as'], to_jsonb(cast_as)) INTO config; @@ -104,6 +108,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.config_add_index(table_name text, column_name text, index_name text, opts jsonb, config jsonb) RETURNS jsonb IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN SELECT jsonb_insert(config, array['tables', table_name, column_name, 'indexes', index_name], opts) INTO config; diff --git a/src/encrypted/aggregates.sql b/src/encrypted/aggregates.sql index 0f1d7657a..9c5b7d932 100644 --- a/src/encrypted/aggregates.sql +++ b/src/encrypted/aggregates.sql @@ -18,6 +18,7 @@ CREATE FUNCTION eql_v2.min(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS eql_v2_encrypted STRICT + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF a < b THEN @@ -66,6 +67,7 @@ CREATE AGGREGATE eql_v2.min(eql_v2_encrypted) CREATE FUNCTION eql_v2.max(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS eql_v2_encrypted STRICT + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF a > b THEN diff --git a/src/encrypted/constraints.sql b/src/encrypted/constraints.sql index 4990c641e..088b1611f 100644 --- a/src/encrypted/constraints.sql +++ b/src/encrypted/constraints.sql @@ -17,6 +17,7 @@ --! @see eql_v2.check_encrypted CREATE FUNCTION eql_v2._encrypted_check_i(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val ? 'i' THEN @@ -41,6 +42,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.check_encrypted CREATE FUNCTION eql_v2._encrypted_check_i_ct(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF (val->'i' ?& array['t', 'c']) THEN @@ -64,6 +66,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.check_encrypted CREATE FUNCTION eql_v2._encrypted_check_v(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF (val ? 'v') THEN @@ -94,6 +97,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.check_encrypted CREATE FUNCTION eql_v2._encrypted_check_c(val jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF (val ? 'c') THEN diff --git a/src/encrypted/functions.sql b/src/encrypted/functions.sql index 3c6e6f27d..64272cb40 100644 --- a/src/encrypted/functions.sql +++ b/src/encrypted/functions.sql @@ -21,6 +21,7 @@ CREATE FUNCTION eql_v2.ciphertext(val jsonb) RETURNS text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val ? 'c' THEN @@ -65,7 +66,8 @@ $$; --! --! @see eql_v2.grouped_value CREATE FUNCTION eql_v2._first_grouped_value(jsonb, jsonb) -RETURNS jsonb AS $$ +RETURNS jsonb +AS $$ SELECT COALESCE($1, $2); $$ LANGUAGE sql IMMUTABLE; @@ -119,6 +121,7 @@ CREATE AGGREGATE eql_v2.grouped_value(jsonb) ( --! @see eql_v2.remove_encrypted_constraint CREATE FUNCTION eql_v2.add_encrypted_constraint(table_name TEXT, column_name TEXT) RETURNS void + SET search_path = pg_catalog, extensions, public AS $$ BEGIN EXECUTE format('ALTER TABLE %I ADD CONSTRAINT eql_v2_encrypted_constraint_%I_%I CHECK (eql_v2.check_encrypted(%I))', table_name, table_name, column_name, column_name); @@ -147,6 +150,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_encrypted_constraint CREATE FUNCTION eql_v2.remove_encrypted_constraint(table_name TEXT, column_name TEXT) RETURNS void + SET search_path = pg_catalog, extensions, public AS $$ BEGIN EXECUTE format('ALTER TABLE %I DROP CONSTRAINT IF EXISTS eql_v2_encrypted_constraint_%I_%I', table_name, table_name, column_name); diff --git a/src/encrypted/hash.sql b/src/encrypted/hash.sql index f284afdb4..64e32d66c 100644 --- a/src/encrypted/hash.sql +++ b/src/encrypted/hash.sql @@ -34,6 +34,7 @@ CREATE FUNCTION eql_v2.hash_encrypted(val eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE ste_val eql_v2_encrypted; diff --git a/src/encryptindex/functions.sql b/src/encryptindex/functions.sql index 0ac4d628d..59d9a0885 100644 --- a/src/encryptindex/functions.sql +++ b/src/encryptindex/functions.sql @@ -26,6 +26,7 @@ CREATE FUNCTION eql_v2.diff_config(a JSONB, b JSONB) RETURNS TABLE(table_name TEXT, column_name TEXT) IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY @@ -65,6 +66,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.select_target_columns CREATE FUNCTION eql_v2.select_pending_columns() RETURNS TABLE(table_name TEXT, column_name TEXT) + SET search_path = pg_catalog, extensions, public AS $$ DECLARE active JSONB; @@ -155,6 +157,7 @@ $$ LANGUAGE sql; --! @see eql_v2.rename_encrypted_columns CREATE FUNCTION eql_v2.create_encrypted_columns() RETURNS TABLE(table_name TEXT, column_name TEXT) + SET search_path = pg_catalog, extensions, public AS $$ BEGIN FOR table_name, column_name IN @@ -182,6 +185,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.create_encrypted_columns CREATE FUNCTION eql_v2.rename_encrypted_columns() RETURNS TABLE(table_name TEXT, column_name TEXT, target_column TEXT) + SET search_path = pg_catalog, extensions, public AS $$ BEGIN FOR table_name, column_name, target_column IN @@ -209,6 +213,7 @@ $$ LANGUAGE plpgsql; --! @note Configuration tracking mechanism is implementation-specific CREATE FUNCTION eql_v2.count_encrypted_with_active_config(table_name TEXT, column_name TEXT) RETURNS BIGINT + SET search_path = pg_catalog, extensions, public AS $$ DECLARE result BIGINT; diff --git a/src/hmac_256/compare.sql b/src/hmac_256/compare.sql index d37aa0f79..160a2166f 100644 --- a/src/hmac_256/compare.sql +++ b/src/hmac_256/compare.sql @@ -22,6 +22,7 @@ CREATE FUNCTION eql_v2.compare_hmac_256(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE a_term eql_v2.hmac_256; diff --git a/src/hmac_256/functions.sql b/src/hmac_256/functions.sql index 055d9af89..37ffc2182 100644 --- a/src/hmac_256/functions.sql +++ b/src/hmac_256/functions.sql @@ -15,6 +15,7 @@ CREATE FUNCTION eql_v2.hmac_256(val jsonb) RETURNS eql_v2.hmac_256 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -41,6 +42,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_hmac_256(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'hm' IS NOT NULL; @@ -60,6 +62,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_hmac_256(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_hmac_256(val.data); @@ -80,6 +83,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.hmac_256(val eql_v2_encrypted) RETURNS eql_v2.hmac_256 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.hmac_256(val.data)); diff --git a/src/jsonb/functions.sql b/src/jsonb/functions.sql index a0b2fa79e..76ce193e2 100644 --- a/src/jsonb/functions.sql +++ b/src/jsonb/functions.sql @@ -32,6 +32,7 @@ CREATE FUNCTION eql_v2.jsonb_path_query(val jsonb, selector text) RETURNS SETOF eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv eql_v2_encrypted[]; @@ -96,6 +97,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_query(val eql_v2_encrypted, selector eql_v2_encrypted) RETURNS SETOF eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY @@ -121,6 +123,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_query(val eql_v2_encrypted, selector text) RETURNS SETOF eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY @@ -145,6 +148,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_exists(val jsonb, selector text) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN EXISTS ( @@ -167,6 +171,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_exists(val eql_v2_encrypted, selector eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN EXISTS ( @@ -192,6 +197,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_exists(val eql_v2_encrypted, selector text) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN EXISTS ( @@ -219,6 +225,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_query_first(val jsonb, selector text) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN ( @@ -243,6 +250,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_query_first(val eql_v2_encrypted, selector eql_v2_encrypted) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN ( @@ -270,6 +278,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_path_query_first(val eql_v2_encrypted, selector text) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN ( @@ -300,6 +309,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_length(val jsonb) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv eql_v2_encrypted[]; @@ -337,6 +347,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_length(val eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN ( @@ -364,6 +375,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_elements(val jsonb) RETURNS SETOF eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv eql_v2_encrypted[]; @@ -407,6 +419,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_elements(val eql_v2_encrypted) RETURNS SETOF eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY @@ -431,6 +444,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_elements_text(val jsonb) RETURNS SETOF text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv eql_v2_encrypted[]; @@ -468,6 +482,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.jsonb_array_elements_text(val eql_v2_encrypted) RETURNS SETOF text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN QUERY diff --git a/src/operators/->.sql b/src/operators/->.sql index f71ee12e8..d68e9e14b 100644 --- a/src/operators/->.sql +++ b/src/operators/->.sql @@ -32,6 +32,7 @@ CREATE FUNCTION eql_v2."->"(e eql_v2_encrypted, selector text) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE meta jsonb; @@ -75,6 +76,7 @@ CREATE OPERATOR ->( CREATE FUNCTION eql_v2."->"(e eql_v2_encrypted, selector eql_v2_encrypted) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2."->"(e, eql_v2.selector(selector)); @@ -103,6 +105,7 @@ CREATE OPERATOR ->( CREATE FUNCTION eql_v2."->"(e eql_v2_encrypted, selector integer) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv eql_v2_encrypted[]; diff --git a/src/operators/->>.sql b/src/operators/->>.sql index 1079b99ed..7d9b5050a 100644 --- a/src/operators/->>.sql +++ b/src/operators/->>.sql @@ -24,6 +24,7 @@ CREATE FUNCTION eql_v2."->>"(e eql_v2_encrypted, selector text) RETURNS text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE found eql_v2_encrypted; @@ -53,6 +54,7 @@ CREATE OPERATOR ->> ( CREATE FUNCTION eql_v2."->>"(e eql_v2_encrypted, selector eql_v2_encrypted) RETURNS text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2."->>"(e, eql_v2.selector(selector)); diff --git a/src/operators/<.sql b/src/operators/<.sql index a0149592d..b33b277e5 100644 --- a/src/operators/<.sql +++ b/src/operators/<.sql @@ -16,6 +16,7 @@ --! @see eql_v2."<" CREATE FUNCTION eql_v2.lt(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) = -1; @@ -44,6 +45,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2."<"(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lt(a, b); @@ -75,6 +77,7 @@ CREATE OPERATOR <( --! @see eql_v2."<"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."<"(a eql_v2_encrypted, b jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lt(a, b::eql_v2_encrypted); @@ -106,6 +109,7 @@ CREATE OPERATOR <( --! @see eql_v2."<"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."<"(a jsonb, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lt(a::eql_v2_encrypted, b); diff --git a/src/operators/<=.sql b/src/operators/<=.sql index 9d31611d5..b80700c86 100644 --- a/src/operators/<=.sql +++ b/src/operators/<=.sql @@ -16,6 +16,7 @@ --! @see eql_v2."<=" CREATE FUNCTION eql_v2.lte(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) <= 0; @@ -39,6 +40,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2."<="(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lte(a, b); @@ -59,6 +61,7 @@ CREATE OPERATOR <=( --! @see eql_v2."<="(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."<="(a eql_v2_encrypted, b jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lte(a, b::eql_v2_encrypted); @@ -79,6 +82,7 @@ CREATE OPERATOR <=( --! @see eql_v2."<="(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."<="(a jsonb, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.lte(a::eql_v2_encrypted, b); diff --git a/src/operators/<>.sql b/src/operators/<>.sql index 76286415c..c9e5c5dc4 100644 --- a/src/operators/<>.sql +++ b/src/operators/<>.sql @@ -17,6 +17,7 @@ CREATE FUNCTION eql_v2.neq(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) <> 0; @@ -42,6 +43,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2."<>"(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.neq(a, b ); @@ -64,6 +66,7 @@ CREATE OPERATOR <> ( CREATE FUNCTION eql_v2."<>"(a eql_v2_encrypted, b jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.neq(a, b::eql_v2_encrypted); @@ -90,6 +93,7 @@ CREATE OPERATOR <> ( CREATE FUNCTION eql_v2."<>"(a jsonb, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.neq(a::eql_v2_encrypted, b); diff --git a/src/operators/<@.sql b/src/operators/<@.sql index 917119177..eb8fa0465 100644 --- a/src/operators/<@.sql +++ b/src/operators/<@.sql @@ -25,7 +25,8 @@ --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2."<@"(a eql_v2_encrypted, b eql_v2_encrypted) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ -- Contains with reversed arguments SELECT eql_v2.ste_vec_contains(b, a) $$ LANGUAGE SQL; diff --git a/src/operators/=.sql b/src/operators/=.sql index e95ff4ce2..a8e9c53ef 100644 --- a/src/operators/=.sql +++ b/src/operators/=.sql @@ -17,6 +17,7 @@ CREATE FUNCTION eql_v2.eq(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) = 0; @@ -46,6 +47,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2."="(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.eq(a, b); @@ -82,6 +84,7 @@ CREATE OPERATOR = ( CREATE FUNCTION eql_v2."="(a eql_v2_encrypted, b jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.eq(a, b::eql_v2_encrypted); @@ -117,6 +120,7 @@ CREATE OPERATOR = ( CREATE FUNCTION eql_v2."="(a jsonb, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.eq(a::eql_v2_encrypted, b); diff --git a/src/operators/>.sql b/src/operators/>.sql index 17787e600..d8effee2a 100644 --- a/src/operators/>.sql +++ b/src/operators/>.sql @@ -16,6 +16,7 @@ --! @see eql_v2.">" CREATE FUNCTION eql_v2.gt(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) = 1; @@ -41,6 +42,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2.">"(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gt(a, b); @@ -58,9 +60,13 @@ CREATE OPERATOR >( ); --! @brief > operator for encrypted value and JSONB +--! @param a eql_v2_encrypted Left operand (encrypted value) +--! @param b jsonb Right operand (JSONB cast to encrypted) +--! @return Boolean True if a > b --! @see eql_v2.">"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2.">"(a eql_v2_encrypted, b jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gt(a, b::eql_v2_encrypted); @@ -78,9 +84,13 @@ CREATE OPERATOR >( ); --! @brief > operator for JSONB and encrypted value +--! @param a jsonb Left operand (JSONB cast to encrypted) +--! @param b eql_v2_encrypted Right operand (encrypted value) +--! @return Boolean True if a > b --! @see eql_v2.">"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2.">"(a jsonb, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gt(a::eql_v2_encrypted, b); diff --git a/src/operators/>=.sql b/src/operators/>=.sql index 46eea61f1..c705564b6 100644 --- a/src/operators/>=.sql +++ b/src/operators/>=.sql @@ -16,6 +16,7 @@ --! @see eql_v2.">=" CREATE FUNCTION eql_v2.gte(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.compare(a, b) >= 0; @@ -39,6 +40,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2.">="(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gte(a, b); @@ -57,9 +59,13 @@ CREATE OPERATOR >=( ); --! @brief >= operator for encrypted value and JSONB +--! @param a eql_v2_encrypted Left operand (encrypted value) +--! @param b jsonb Right operand (JSONB cast to encrypted) +--! @return Boolean True if a >= b --! @see eql_v2.">="(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2.">="(a eql_v2_encrypted, b jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gte(a, b::eql_v2_encrypted); @@ -77,9 +83,13 @@ CREATE OPERATOR >=( ); --! @brief >= operator for JSONB and encrypted value +--! @param a jsonb Left operand (JSONB cast to encrypted) +--! @param b eql_v2_encrypted Right operand (encrypted value) +--! @return Boolean True if a >= b --! @see eql_v2.">="(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2.">="(a jsonb, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.gte(a::eql_v2_encrypted, b); diff --git a/src/operators/@>.sql b/src/operators/@>.sql index 8577e2638..56b1c566f 100644 --- a/src/operators/@>.sql +++ b/src/operators/@>.sql @@ -23,7 +23,8 @@ --! @see eql_v2.ste_vec_contains --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2."@>"(a eql_v2_encrypted, b eql_v2_encrypted) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.ste_vec_contains(a, b) $$ LANGUAGE SQL; diff --git a/src/operators/compare.sql b/src/operators/compare.sql index bac3ce4e3..b434539e6 100644 --- a/src/operators/compare.sql +++ b/src/operators/compare.sql @@ -45,6 +45,7 @@ CREATE FUNCTION eql_v2.compare(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN diff --git a/src/operators/order_by.sql b/src/operators/order_by.sql index dd3bb6bc6..8269baae2 100644 --- a/src/operators/order_by.sql +++ b/src/operators/order_by.sql @@ -22,6 +22,7 @@ CREATE FUNCTION eql_v2.order_by(a eql_v2_encrypted) RETURNS eql_v2.ore_block_u64_8_256 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.ore_block_u64_8_256(a); diff --git a/src/operators/sort.sql b/src/operators/sort.sql index 7bba236f1..ae0c7ff6a 100644 --- a/src/operators/sort.sql +++ b/src/operators/sort.sql @@ -28,6 +28,7 @@ CREATE FUNCTION eql_v2._compare_order_key( ) RETURNS integer IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF a IS NULL AND b IS NULL THEN @@ -58,6 +59,7 @@ CREATE FUNCTION eql_v2._compare_sort_elements( ) RETURNS integer IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF use_ore THEN @@ -89,6 +91,7 @@ CREATE FUNCTION eql_v2._compare_sort_pivot( ) RETURNS integer IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF use_ore THEN @@ -120,6 +123,7 @@ CREATE FUNCTION eql_v2._insertion_sort( hi integer, use_ore boolean ) + SET search_path = pg_catalog, extensions, public AS $$ DECLARE i integer; @@ -181,6 +185,7 @@ CREATE FUNCTION eql_v2._quicksort_sorter( hi integer, use_ore boolean ) + SET search_path = pg_catalog, extensions, public AS $$ DECLARE insertion_threshold CONSTANT integer := 16; @@ -279,6 +284,7 @@ CREATE FUNCTION eql_v2._emit_sorted_rows( ) RETURNS TABLE(id bigint, val eql_v2_encrypted) IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE n integer; @@ -318,6 +324,7 @@ CREATE FUNCTION eql_v2._sort_compare_precomputed( ) RETURNS TABLE(id bigint, val eql_v2_encrypted) IMMUTABLE PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE n integer; @@ -406,6 +413,7 @@ CREATE FUNCTION eql_v2.sort_compare( ) RETURNS TABLE(id bigint, val eql_v2_encrypted) IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE n integer; @@ -472,6 +480,7 @@ CREATE FUNCTION eql_v2.sort_compare( filter text DEFAULT NULL ) RETURNS TABLE(id bigint, val eql_v2_encrypted) + SET search_path = pg_catalog, extensions, public AS $$ DECLARE query text; @@ -528,6 +537,7 @@ CREATE FUNCTION eql_v2.order_by_compare( direction text DEFAULT 'ASC' ) RETURNS TABLE(id bigint, val eql_v2_encrypted) + SET search_path = pg_catalog, extensions, public AS $$ DECLARE all_ids bigint[]; diff --git a/src/operators/~~.sql b/src/operators/~~.sql index 389dea311..5fcebafc5 100644 --- a/src/operators/~~.sql +++ b/src/operators/~~.sql @@ -18,7 +18,8 @@ --! @see eql_v2.bloom_filter --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2.like(a eql_v2_encrypted, b eql_v2_encrypted) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.bloom_filter(a) @> eql_v2.bloom_filter(b); $$ LANGUAGE SQL; @@ -37,7 +38,8 @@ $$ LANGUAGE SQL; --! @see eql_v2."~~" --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2.ilike(a eql_v2_encrypted, b eql_v2_encrypted) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.bloom_filter(a) @> eql_v2.bloom_filter(b); $$ LANGUAGE SQL; @@ -74,6 +76,7 @@ $$ LANGUAGE SQL; --! @see eql_v2.add_search_config CREATE FUNCTION eql_v2."~~"(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.like(a, b); @@ -125,6 +128,7 @@ CREATE OPERATOR ~~*( --! @see eql_v2."~~"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."~~"(a eql_v2_encrypted, b jsonb) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.like(a, b::eql_v2_encrypted); @@ -165,6 +169,7 @@ CREATE OPERATOR ~~*( --! @see eql_v2."~~"(eql_v2_encrypted, eql_v2_encrypted) CREATE FUNCTION eql_v2."~~"(a jsonb, b eql_v2_encrypted) RETURNS boolean + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.like(a::eql_v2_encrypted, b); diff --git a/src/ore_block_u64_8_256/compare.sql b/src/ore_block_u64_8_256/compare.sql index 6e36b3b44..cf6be7970 100644 --- a/src/ore_block_u64_8_256/compare.sql +++ b/src/ore_block_u64_8_256/compare.sql @@ -23,6 +23,7 @@ CREATE FUNCTION eql_v2.compare_ore_block_u64_8_256(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE a_term eql_v2.ore_block_u64_8_256; diff --git a/src/ore_block_u64_8_256/functions.sql b/src/ore_block_u64_8_256/functions.sql index a23c9490f..6d62b9a50 100644 --- a/src/ore_block_u64_8_256/functions.sql +++ b/src/ore_block_u64_8_256/functions.sql @@ -16,7 +16,9 @@ --! --! @see eql_v2.ore_block_u64_8_256(jsonb) CREATE FUNCTION eql_v2.jsonb_array_to_ore_block_u64_8_256(val jsonb) -RETURNS eql_v2.ore_block_u64_8_256 AS $$ +RETURNS eql_v2.ore_block_u64_8_256 + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE terms eql_v2.ore_block_u64_8_256_term[]; BEGIN @@ -47,6 +49,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ore_block_u64_8_256(val jsonb) RETURNS eql_v2.ore_block_u64_8_256 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -73,6 +76,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ore_block_u64_8_256(val eql_v2_encrypted) RETURNS eql_v2.ore_block_u64_8_256 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.ore_block_u64_8_256(val.data); @@ -92,6 +96,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_block_u64_8_256(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'ob' IS NOT NULL; @@ -111,6 +116,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_block_u64_8_256(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_ore_block_u64_8_256(val.data); @@ -135,6 +141,7 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.compare_ore_block_u64_8_256_term(a eql_v2.ore_block_u64_8_256_term, b eql_v2.ore_block_u64_8_256_term) RETURNS integer + SET search_path = pg_catalog, extensions, public AS $$ DECLARE eq boolean := true; @@ -197,7 +204,7 @@ AS $$ data_block := substr(a.bytes, 9 + (left_block_size * unequal_block), left_block_size); - encrypt_block := public.encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb'); + encrypt_block := encrypt(data_block::bytea, hash_key::bytea, 'aes-ecb'); indicator := ( get_bit( @@ -228,7 +235,9 @@ $$ LANGUAGE plpgsql; --! @note Empty arrays sort before non-empty arrays --! @see eql_v2.compare_ore_block_u64_8_256_term CREATE FUNCTION eql_v2.compare_ore_block_u64_8_256_terms(a eql_v2.ore_block_u64_8_256_term[], b eql_v2.ore_block_u64_8_256_term[]) -RETURNS integer AS $$ +RETURNS integer + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE cmp_result integer; BEGIN @@ -277,7 +286,9 @@ $$ LANGUAGE plpgsql; --! --! @see eql_v2.compare_ore_block_u64_8_256_terms(eql_v2.ore_block_u64_8_256_term[], eql_v2.ore_block_u64_8_256_term[]) CREATE FUNCTION eql_v2.compare_ore_block_u64_8_256_terms(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS integer AS $$ +RETURNS integer + SET search_path = pg_catalog, extensions, public +AS $$ BEGIN RETURN eql_v2.compare_ore_block_u64_8_256_terms(a.terms, b.terms); END diff --git a/src/ore_block_u64_8_256/operators.sql b/src/ore_block_u64_8_256/operators.sql index 363beb8be..76f74c4cf 100644 --- a/src/ore_block_u64_8_256/operators.sql +++ b/src/ore_block_u64_8_256/operators.sql @@ -18,7 +18,8 @@ --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_eq(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) = 0 $$ LANGUAGE SQL; @@ -36,7 +37,8 @@ $$ LANGUAGE SQL; --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_neq(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) <> 0 $$ LANGUAGE SQL; @@ -54,7 +56,8 @@ $$ LANGUAGE SQL; --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_lt(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) = -1 $$ LANGUAGE SQL; @@ -72,7 +75,8 @@ $$ LANGUAGE SQL; --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_lte(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) != 1 $$ LANGUAGE SQL; @@ -90,7 +94,8 @@ $$ LANGUAGE SQL; --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_gt(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) = 1 $$ LANGUAGE SQL; @@ -108,7 +113,8 @@ $$ LANGUAGE SQL; --! @note FILE IS DISABLED - Not included in build --! @see eql_v2.compare_ore_block_u64_8_256_terms CREATE FUNCTION eql_v2.ore_block_u64_8_256_gte(a eql_v2.ore_block_u64_8_256, b eql_v2.ore_block_u64_8_256) -RETURNS boolean AS $$ +RETURNS boolean +AS $$ SELECT eql_v2.compare_ore_block_u64_8_256_terms(a, b) != -1 $$ LANGUAGE SQL; diff --git a/src/ore_cllw_u64_8/compare.sql b/src/ore_cllw_u64_8/compare.sql index 1dd062936..71ca38e28 100644 --- a/src/ore_cllw_u64_8/compare.sql +++ b/src/ore_cllw_u64_8/compare.sql @@ -24,6 +24,7 @@ CREATE FUNCTION eql_v2.compare_ore_cllw_u64_8(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE a_term eql_v2.ore_cllw_u64_8; diff --git a/src/ore_cllw_u64_8/functions.sql b/src/ore_cllw_u64_8/functions.sql index d4da2af7e..3d8054b7b 100644 --- a/src/ore_cllw_u64_8/functions.sql +++ b/src/ore_cllw_u64_8/functions.sql @@ -17,6 +17,7 @@ CREATE FUNCTION eql_v2.ore_cllw_u64_8(val jsonb) RETURNS eql_v2.ore_cllw_u64_8 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -44,6 +45,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ore_cllw_u64_8(val eql_v2_encrypted) RETURNS eql_v2.ore_cllw_u64_8 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.ore_cllw_u64_8(val.data)); @@ -63,6 +65,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_cllw_u64_8(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'ocf' IS NOT NULL; @@ -82,6 +85,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_cllw_u64_8(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_ore_cllw_u64_8(val.data); @@ -105,7 +109,9 @@ $$ LANGUAGE plpgsql; --! @note Shared comparison logic for multiple ORE CLLW schemes --! @see eql_v2.compare_ore_cllw_u64_8 CREATE FUNCTION eql_v2.compare_ore_cllw_term_bytes(a bytea, b bytea) -RETURNS int AS $$ +RETURNS int + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE len_a INT; len_b INT; diff --git a/src/ore_cllw_var_8/compare.sql b/src/ore_cllw_var_8/compare.sql index 285a038db..41e6eb356 100644 --- a/src/ore_cllw_var_8/compare.sql +++ b/src/ore_cllw_var_8/compare.sql @@ -24,6 +24,7 @@ CREATE FUNCTION eql_v2.compare_ore_cllw_var_8(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS integer IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE a_term eql_v2.ore_cllw_var_8; diff --git a/src/ore_cllw_var_8/functions.sql b/src/ore_cllw_var_8/functions.sql index d79b9f0ab..3cb5dbdee 100644 --- a/src/ore_cllw_var_8/functions.sql +++ b/src/ore_cllw_var_8/functions.sql @@ -18,6 +18,7 @@ CREATE FUNCTION eql_v2.ore_cllw_var_8(val jsonb) RETURNS eql_v2.ore_cllw_var_8 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN @@ -46,6 +47,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ore_cllw_var_8(val eql_v2_encrypted) RETURNS eql_v2.ore_cllw_var_8 IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.ore_cllw_var_8(val.data)); @@ -65,6 +67,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_cllw_var_8(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN val ->> 'ocv' IS NOT NULL; @@ -84,6 +87,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.has_ore_cllw_var_8(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.has_ore_cllw_var_8(val.data); @@ -108,7 +112,9 @@ $$ LANGUAGE plpgsql; --! @see eql_v2.compare_ore_cllw_term_bytes --! @see eql_v2.compare_ore_cllw_var_8 CREATE FUNCTION eql_v2.compare_ore_cllw_var_8_term(a eql_v2.ore_cllw_var_8, b eql_v2.ore_cllw_var_8) -RETURNS int AS $$ +RETURNS int + SET search_path = pg_catalog, extensions, public +AS $$ DECLARE len_a INT; len_b INT; diff --git a/src/ste_vec/functions.sql b/src/ste_vec/functions.sql index 355f299f1..16d8bd239 100644 --- a/src/ste_vec/functions.sql +++ b/src/ste_vec/functions.sql @@ -19,6 +19,7 @@ CREATE FUNCTION eql_v2.ste_vec(val jsonb) RETURNS public.eql_v2_encrypted[] IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE sv jsonb; @@ -52,6 +53,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ste_vec(val eql_v2_encrypted) RETURNS public.eql_v2_encrypted[] IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.ste_vec(val.data)); @@ -70,6 +72,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.is_ste_vec_value(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val ? 'sv' THEN @@ -92,6 +95,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.is_ste_vec_value(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.is_ste_vec_value(val.data); @@ -111,6 +115,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.to_ste_vec_value(val jsonb) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE meta jsonb; @@ -145,6 +150,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.to_ste_vec_value(val eql_v2_encrypted) RETURNS eql_v2_encrypted IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN eql_v2.to_ste_vec_value(val.data); @@ -164,6 +170,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.selector(val jsonb) RETURNS text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val IS NULL THEN @@ -190,6 +197,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.selector(val eql_v2_encrypted) RETURNS text IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.selector(val.data)); @@ -210,6 +218,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.is_ste_vec_array(val jsonb) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN IF val ? 'a' THEN @@ -233,6 +242,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.is_ste_vec_array(val eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ BEGIN RETURN (SELECT eql_v2.is_ste_vec_array(val.data)); @@ -468,6 +478,7 @@ $$; CREATE FUNCTION eql_v2.ste_vec_contains(a public.eql_v2_encrypted[], b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE result boolean; @@ -505,6 +516,7 @@ $$ LANGUAGE plpgsql; CREATE FUNCTION eql_v2.ste_vec_contains(a eql_v2_encrypted, b eql_v2_encrypted) RETURNS boolean IMMUTABLE STRICT PARALLEL SAFE + SET search_path = pg_catalog, extensions, public AS $$ DECLARE result boolean;