-- +goose Up -- +goose StatementBegin CREATE OR REPLACE FUNCTION generate_alphanumeric_code(code_length INTEGER DEFAULT 8) RETURNS TEXT AS $$ DECLARE chars TEXT := 'ABCDEFGHJKMNPQRSTUVWXYZ23456789'; result TEXT := ''; i INTEGER; BEGIN FOR i IN 1..code_length LOOP result := result || substr(chars, floor(random() * length(chars) + 1)::INTEGER, 1); END LOOP; RETURN result; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd