← Back to team overview

maria-developers team mailing list archive

Re: [GSOC] ColumnStore: Add full support for DECIMAL

 

Hi Daniil,

Just to keep you updated I have created a ticket with some basic
information in it (which we have already gone though) and updated the
MariaDB KB 2017 page accordingly.

The ticket can be found here: https://jira.mariadb.org/browse/MCOL-641

Kind Regards
Andrew

On 20/03/17 22:52, Andrew Hutchings wrote:
> Hi Daniil,
> 
> Yes, it is currently stored as an int64. We want to extend it but also
> some of the internal functionality converts it to a double (see
> utils/funcexp/func_math.cpp for example). Every function would need to
> be fully tested to make sure that it uses DECIMAL end-to-end and handles
> overflow scenarios correctly.
> 
> At the moment ColumnStore's integer storage can only handle fixed 1, 2,
> 4 and 8 byte columns. 2, 4 and 8 are used for DECIMAL. It should be
> somewhat easily extendible to 16 byte columns. I believe this will give
> us the capability to store the same amount of digits as MariaDB. If at
> CREATE TABLE it is determined that a DECIMAL will only require 8 bytes
> it should only use an 8 byte column, if it needs bigger it should use a
> 16 byte column.
> 
> In addition the DDL code in ColumnStore will need modifying to handle
> the range.
> 
> The ability to have 16 byte columns will also help us at a later date
> with other potential data types in the future too.
> 
> Here is the first attempt at implementing 16byte columns in InfiniDB.
> This work has not made its way into ColumnStore yet and there are likely
> quite a few things this doesn't touch:
> 
> https://github.com/infinidb/infinidb/commit/eb1e2df76bda95a43cd2948890bff98f8785a805
> 
> Kind Regards
> Andrew
> 
> On 20/03/17 21:57, Даниил Медведев wrote:
>> I looked at the code (for better understanding of problem), and now I
>> have some questions:
>> Do I understand correctly, that now it is stored as an int64 value with
>> a scale and we want to extend it, and store maximum 65 digits as in
>> documentation?
>> https://github.com/mariadb-corporation/mariadb-columnstore-engine/blob/master/dbcon/execplan/treenode.h#L62
>>
>> We will use fixed size type or extandable?
>>
>> I think that I will find all answers of my questions in specification,
>> and there is no point in asking more questions.
>>
>> Regards,
>> Daniil Medvedev
>>
>> 2017-03-20 21:51 GMT+03:00 Andrew Hutchings <andrew@xxxxxxxxxxxxxxx
>> <mailto:andrew@xxxxxxxxxxxxxxx>>:
>>
>>     Hi Daniil,
>>
>>     Many thanks for your interest. We haven't fully specified it yet (I'll
>>     build a full specification later this week). But I suspect the following
>>     would be involved:
>>
>>     * Implementation of methods to handle MariaDB's DECIMAL format
>>     * Support for a longer than 8-byte numeric column type (there is an
>>     InfiniDB tree with work for this already)
>>     * Modification of the primitives processor for the math
>>     * Modification of the function expression processor to handle the
>>     new type
>>     * Version upgrade support for DECIMAL from the current form to the
>>     new form
>>
>>     In the mean time please let me know if you have any questions.
>>
>>     Kind Regards
>>     Andrew
>>     (Senior Software Engineer, MariaDB ColumnStore)
>>
>>     On 19/03/17 23:09, Даниил Медведев wrote:
>>     > Hello,
>>     >
>>     > I took part in GSoC last year, and closed one of MariaDB tasks. Now I
>>     > want to continue programming with MariaDB developers and solve a
>>     new task.
>>     > I considered some of proposed tasks, and was interested in
>>     "ColumnStore:
>>     > Add full support for DECIMAL".
>>     > I think this task is doable in the given time and I might solve it.
>>     >
>>     > P.S. My github link: https://github.com/medvdanil
>>     >
>>     > Regards,
>>     > Daniil Medvedev
>>     >
>>     >
>>     >
>>     > _______________________________________________
>>     > Mailing list: https://launchpad.net/~maria-developers
>>     <https://launchpad.net/~maria-developers>
>>     > Post to     : maria-developers@xxxxxxxxxxxxxxxxxxx
>>     <mailto:maria-developers@xxxxxxxxxxxxxxxxxxx>
>>     > Unsubscribe : https://launchpad.net/~maria-developers
>>     <https://launchpad.net/~maria-developers>
>>     > More help   : https://help.launchpad.net/ListHelp
>>     <https://help.launchpad.net/ListHelp>
>>     >
>>
>>     --
>>     Andrew Hutchings - LinuxJedi - http://www.linuxjedi.co.uk/
>>
>>
> 

-- 
Andrew Hutchings - LinuxJedi - http://www.linuxjedi.co.uk/


Follow ups

References