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
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 |