pg_nanp
May 5, 2019 ยท View on GitHub
an efficient, validated, formatted NANP type
Description
This type supports efficient, validated, formatted usage of North American Numbering Plan (NANP) data. It only accepts valid NANP numeric sequences, rejecting sequences that violate NANP specifications. On the other hand, it supports numerous typical formatting embellishments to plain NANP numeric sequences. It formats output consistently in ###-###-#### format.Installation
curl -s -S -L https://github.com/rlichtenwalter/pg_nanp/archive/master.zip > pg_nanp.zip unzip pg_nanp.zip (cd pg_nanp-master && make PG_CONFIG=<optional custom pg_config path>) (cd pg_nanp-master && make PG_CONFIG=<optional custom pg_config path> install) (cd ~postgres && sudo -u postgres psql -c 'CREATE EXTENSION pg_nanp;')
Usage
testuser=# SELECT '2345678910'::nanp;
nanp
--------------
234-567-8910
(1 row)
testuser=# SELECT '12345678910'::nanp;
nanp
--------------
234-567-8910
(1 row)
testuser=# SELECT '22345678910'::nanp;
ERROR: invalid input format for nanp: '22345678910'
LINE 1: SELECT '22345678910'::nanp;
testuser=# SELECT '1345678910'::nanp;
ERROR: invalid input format for nanp: '1345678910'
LINE 1: SELECT '1345678910'::nanp;
testuser=# SELECT '1145678910'::nanp;
ERROR: invalid input format for nanp: '1145678910'
LINE 1: SELECT '1145678910'::nanp;
testuser=# SELECT '2341678910'::nanp;
ERROR: invalid input format for nanp: '2341678910'
LINE 1: SELECT '2341678910'::nanp;