create extension base62; select 120::base62; base62 -------- 1w (1 row) select '1w'::base62::int; int4 ------ 120 (1 row) select '1W'::base62::int; int4 ------ 94 (1 row) select '2LKcb1'::base62::int; int4 ------------ 2147483647 (1 row) select 2147483647::base62; base62 -------- 2LKcb1 (1 row) -- ERROR: out of range select 'AAAAAA'::base62; ERROR: value "AAAAAA" is out of range for type base62 LINE 1: select 'AAAAAA'::base62; ^ -- ERROR: out of range select 'aaaaaa'::base62; ERROR: value "aaaaaa" is out of range for type base62 LINE 1: select 'aaaaaa'::base62; ^ -- ERROR: out of range select '3caaaaaaaaaaaaa'::base62::bigint; ERROR: value "3caaaaaaaaaaaaa" is out of range for type base62 LINE 1: select '3caaaaaaaaaaaaa'::base62::bigint; ^ -- ERROR: out of range select '2lkcb1'::base62::int; ERROR: value "2lkcb1" is out of range for type base62 LINE 1: select '2lkcb1'::base62::int; ^ -- ERROR: not a valid digit select '3&'::base62::bigint; ERROR: value "&" is not a valid digit for type base62 LINE 1: select '3&'::base62::bigint; ^ select 'a'::base62 > 'b'::base62; ?column? ---------- f (1 row) select 'a'::base62 < 'b'::base62; ?column? ---------- t (1 row) -- Negativity test select i::base62, i::base62::int from (values ('11111'), ('acDeq'), ('10'), ('A'), ('-1'), ('-A')) as v(i); i | i -------+----------- 11111 | 15018571 acDeq | 541057064 10 | 62 A | 10 -1 | -1 -A | -10 (6 rows) -- Test values select i::base62 from generate_series(1, 80) g(i); i ---- 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 1G 1H 1I (80 rows)