我在Github Gist中找到了这个用于Base58 Encoder 的MySQL 函数 。
DELIMITER $$
CREATE FUNCTION base58_encode (num int) RETURNS varchar(255)
  DETERMINISTIC
BEGIN
  DECLARE alphabet varchar(255);
  DECLARE base_count int DEFAULT 0;
  DECLARE encoded varchar(255);
  DECLARE divisor DECIMAL(10,4);
  DECLARE mode int DEFAULT 0;
  SET alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
  SET base_count = CHAR_LENGTH(alphabet);
  SET encoded = "";
  WHILE num  >= base_count DO
    SET divisor = num / base_count;
    SET mode = (num - (base_count* TRUNCATE(divisor,0)));
    SET encoded = CONCAT(SUBSTRING(alphabet FROM mode+1 FOR 1), encoded);
    SET num = TRUNCATE(divisor,0);
  END WHILE;
  SET encoded = CONCAT(SUBSTRING(alphabet FROM num+1 FOR 1), encoded);
  RETURN (encoded);
END
我是新手PostgreSQL,很难将上述函数转换为 PostgreSQL 函数。
PostgreSQLBase58 编码器的上述 SQL 片段的等效功能如何?