Crembo
05/21/2023, 1:14 PMRazoth
05/21/2023, 1:15 PMCrembo
05/21/2023, 1:16 PMCrembo
05/21/2023, 1:16 PMCrembo
05/21/2023, 1:16 PMCrembo
05/21/2023, 1:16 PMRazoth
05/21/2023, 1:17 PMRazoth
05/21/2023, 1:18 PMCrembo
05/21/2023, 1:20 PMRazoth
05/21/2023, 1:21 PMCrembo
05/21/2023, 1:22 PMRazoth
05/21/2023, 1:24 PMRazoth
05/21/2023, 1:25 PMCrembo
05/21/2023, 1:26 PMRazoth
05/21/2023, 1:27 PMRazoth
05/21/2023, 1:28 PMCrembo
05/21/2023, 1:28 PMCrembo
05/21/2023, 1:28 PMRazoth
05/21/2023, 1:30 PMRazoth
05/21/2023, 1:31 PMCrembo
05/21/2023, 1:31 PMCrembo
05/21/2023, 1:31 PMRazoth
05/21/2023, 1:32 PMCrembo
05/21/2023, 1:32 PMRazoth
05/21/2023, 1:32 PMCrembo
05/21/2023, 1:33 PMCrembo
05/21/2023, 1:33 PMRazoth
05/21/2023, 1:33 PMCrembo
05/21/2023, 1:34 PMRazoth
05/21/2023, 1:34 PMRazoth
05/21/2023, 1:34 PMCrembo
05/21/2023, 1:34 PMCrembo
05/21/2023, 1:35 PMREVOKE
-ing select privileges for the real key to the anon and authed rolesRazoth
05/21/2023, 1:35 PMCrembo
05/21/2023, 1:36 PMCrembo
05/21/2023, 1:36 PMRazoth
05/21/2023, 1:46 PMRazoth
05/21/2023, 1:47 PMCrembo
05/21/2023, 1:49 PMCrembo
05/21/2023, 1:49 PMCrembo
05/21/2023, 1:50 PMRazoth
05/21/2023, 1:53 PMRazoth
05/21/2023, 1:54 PMCrembo
05/21/2023, 1:56 PMCrembo
05/23/2023, 1:43 PMCrembo
05/23/2023, 1:43 PMCREATE OR REPLACE function unique_code_for(tbl regclass)
RETURNS text
LANGUAGE plpgsql
volatile
AS
$$
DECLARE
new_shortcode text;
exists boolean;
BEGIN
LOOP
new_shortcode := nanoid(8, '0123456789BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz');
EXECUTE 'SELECT EXISTS (SELECT * from ' || tbl || ' WHERE shortcode = ''' || new_shortcode || ''')' INTO exists;
IF exists = false THEN
RETURN new_shortcode;
END IF;
END LOOP;
END;
$$
Crembo
05/23/2023, 1:44 PMshortcode text default unique_code_for('tablenamehere')
column constrained unique