Re: Add Roman numeral conversion to to_number

From: David Fetter <david(at)fetter(dot)org>
To: Douglas Doole <dougdoole(at)gmail(dot)com>
Cc: Oliver Ford <ojford(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Add Roman numeral conversion to to_number
Date: 2017-09-17 16:43:31
Message-ID: 20170917164331.GA20718@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Sep 16, 2017 at 10:42:49PM +0000, Douglas Doole wrote:
> Oliver, I took a look at your tests and they look thorough to me.
>
> One recommendation, instead of having 3999 separate selects to test every
> legal roman numeral, why not just do something like this:
>
> do $$
> declare
> i int;
> rn text;
> rn_val int;
> begin
> for i in 1..3999 loop
> rn := trim(to_char(i, 'rn'));
> rn_val := to_number(rn, 'rn');
> if (i <> rn_val) then
> raise notice 'Mismatch: i=% rn=% rn_val=%', i, rn, rn_val;
> end if;
> end loop;
> raise notice 'Tested roman numerals 1..3999';
> end;
> $$;
>
> It's a lot easier to maintain than separate selects.

Why not just one SELECT, as in:

SELECT i, to_char(i, 'rn'), to_number(to_char(i, 'rn'), 'rn');
FROM generate_series(1,3999) i

Best,
David.
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david(dot)fetter(at)gmail(dot)com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chris Travers 2017-09-17 16:48:58 Re: Add Roman numeral conversion to to_number
Previous Message Dilip Kumar 2017-09-17 15:40:19 Re: Effect of changing the value for PARALLEL_TUPLE_QUEUE_SIZE