From 9518f7f441d3184b38d651342cbd7f320bc9b11b Mon Sep 17 00:00:00 2001 From: cereum <49958069+cereum@users.noreply.github.com> Date: Sat, 14 Sep 2024 16:08:46 -0500 Subject: [PATCH 1/2] mark all non blocklist-related functions as immutable --- src/install.sql | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/install.sql b/src/install.sql index c0c00e2..df577c5 100644 --- a/src/install.sql +++ b/src/install.sql @@ -31,7 +31,7 @@ BEGIN --raise notice 'Shuffled alphabet: %', array_to_string(chars, ''); RETURN array_to_string(chars, ''); END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.checkAlphabet(alphabet TEXT) RETURNS BOOLEAN AS $$ DECLARE @@ -58,7 +58,7 @@ BEGIN RETURN TRUE; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.isBlockedId(id TEXT) RETURNS BOOLEAN AS $$ DECLARE @@ -112,7 +112,7 @@ BEGIN --raise notice 'toId result: %', array_to_string(id, ''); RETURN array_to_string(id, ''); END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.toNumber(id TEXT, alphabet TEXT) RETURNS BIGINT AS $$ DECLARE @@ -139,7 +139,7 @@ BEGIN --raise notice 'tonumber result: %', result; RETURN result; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.encodeNumbers(numbers BIGINT[], alphabet TEXT, minLength INT, increment INT DEFAULT 0) RETURNS TEXT AS $$ DECLARE @@ -231,7 +231,7 @@ BEGIN RETURN id; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.decode(id TEXT, alphabet TEXT DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') RETURNS BIGINT[] AS $$ @@ -301,7 +301,7 @@ BEGIN RETURN ret; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.encode(numbers BIGINT[], alphabet TEXT DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', minLength INT DEFAULT 0) RETURNS TEXT AS $$ DECLARE @@ -313,13 +313,13 @@ BEGIN id := sqids.encodeNumbers(numbers, alphabet, minLength); RETURN id; END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.encode(numbers BIGINT[], minLength INT) RETURNS TEXT AS $$ BEGIN RETURN sqids.encode(numbers, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', minLength); END; -$$ LANGUAGE plpgsql; +$$ LANGUAGE plpgsql IMMUTABLE; CREATE OR REPLACE FUNCTION sqids.defaultBlocklist() RETURNS VOID AS $$ BEGIN From 9acb313430a2f87a948a6c42b09049e98854a8e0 Mon Sep 17 00:00:00 2001 From: cereum <49958069+cereum@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:25:50 -0500 Subject: [PATCH 2/2] update changelog --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 902fdfb..f9d7a63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,4 +4,7 @@ -Created install.sql with working but probably under tested working encode/decode ## V0.2 --Added spec tests & fixed any failures \ No newline at end of file +-Added spec tests & fixed any failures + +## V0.2.1 +-Marked functions as immutable \ No newline at end of file