Hi Michael,

I think I will do. Math::Base::Convert with convert for up-to-base64
seems to be fine, whatever MySQL extended - MySQL isn't a standard
I orientate myself or my software ;)

Cheers,
Jens

Am 05.02.2015 um 18:07 schrieb mich...@insulin-pumpers.org:

> Take a look at Math::Base::Convert, maybe that will be helpful. It 
> handles VERY large integer numbers efficently instead of returning 
> floats, has a larger conversion set, including the missing bases Jens 
> asked about, and can be easily expanded to any base. You don't have 
> to re-invent the wheel.
> 
> Michael
> 
>> Sorry for my very late reply.
>> 
>> After I wrote the CONV function, I did take much of the code and
>> improved Math::BaseCalc with it.  Although, that patch is still stuck
>> in review ( https://github.com/kenahoo/perl-math-basecalc/pull/2).
>> 
>> So, I don't mind if the code was stripped out to use a separate module
>> for the conversions.  I agree that it's overly complex, since most of
>> these functions should really just be calls to modules or relatively
>> short subs.
>> 
>> The CONV function itself wasn't based on SQL-92, but since functions
>> like HEX/BIN/OCT were already needed, I wrote it for those.  The name
>> was based on the MySQL function.
>> 
>> On Mon, Dec 15, 2014 at 4:40 AM, Jens Rehsack <rehs...@gmail.com>
>> wrote:
>> 
>>> Hi,
>>> 
>>> during review of SQL::Statement wrt. RT#100551 I realized that the
>>> introduced SQL_FUNCTION_CONV (
>>> https://github.com/perl5-dbi/SQL-Statement/blob/master/lib/SQL/State
>>> ment/Functions.pm#L454) is unnecessary over-complex.
>>> 
>>> Since I learned that silent removal of once shipped functionality is
>>> a evil - I'd like to get some suggestions. For existing
>>> implementation I miss a proper documentation of edge-cases: * How is
>>> 1.E converted to octal and why is that necessary in SQL? * Why do
>>> the alphabets lower 63 and 63+ based number differ? * If different
>>> encoding schemes are supported either, why is xnt and b85 missing
>>> and what's about plain ascii?
>>> 
>>> From my perspective - unless proper answers are given - the
>>> implementation of SQL_FUNCTION_CONV should be replaced by an easy to
>>> use wrapper around https://metacpan.org/release/Math-Base-Convert to
>>> rely on dedicated tested and approved.
>>> 
>>> I started a rough test whether it's possible to keep the existing
>>> API and run into different results for 1st chosen test
>>>        {
>>>           test   => 'conv 2->92',
>>>           sql    => "SELECT CONV('101 0100 1111 0111 0110 1011', 
>>>           2, 92)", result => [ ['HN(/'] ],
>>>        },
>>> Mike's module resulted 'HN)/' - so there seem to be more quirks in
>>> individual S::S solution.
>>> 
>>> Any comments?
>>> 
>>> Cheers
>>> --
>>> Jens Rehsack
>>> rehs...@gmail.com
>>> 
>>> 
>> 
>> 
>> -- 
>> Brendan Byrd <p...@resonatorsoft.org>
>> Brendan Byrd <bb...@cpan.org>
>> 
> 
> 

-- 
Jens Rehsack
rehs...@gmail.com

Reply via email to