Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-641

Full DECIMAL support in ColumnStore

    XMLWordPrintable

    Details

      Description

      MariaDB ColumnStore supports DECIMAL with some limitations:

      1. We do not support the full DECIMAL range that is in MariaDB

      2. In several places in the code we convert the DECIMAL to DOUBLE during execution therefore losing precision

      Implementing this will likely require the following:

      • 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

        Attachments

          Issue Links

          1.
          Create a framework for wide data types. Sub-Task Closed Roman
          2.
          Add support for INET6 Sub-Task Closed Roman
          3.
          Full Decimal Research Sub-Task Closed Gagan Goel
          4.
          Add support for wide-DECIMAL into FuncExp framework. Sub-Task Closed Roman
          5.
          Add support for wide-DECIMAL into Window Functions. Sub-Task Closed Daniel Lee
          6.
          Add support for wide-DECIMAL into statistical aggregate and regr_ UDAF functions Sub-Task Closed Roman
          7.
          Support JOINs wide-DECIMAL keys. Sub-Task In Progress Roman
          8.
          Review/refactor frontend/connector code. Sub-Task Closed Alexander Barkov
          9.
          Review/refactor primitives code Sub-Task Closed Gagan Goel
          10.
          Review/refactor WE code Sub-Task Open Roman
          11.
          Review/refactor bulk insertion paths and code. Sub-Task Closed Roman
          12.
          Review/refactor DBRM and Casual Partitioning code. Sub-Task Closed Roman
          13.
          Review wide-DECIMAL code in dbcon/execplan classes. Sub-Task Closed Alexey Antipovsky
          14.
          Attach Google Test as CMake external project. Sub-Task Open Unassigned
          15.
          Measure the actual RAM consumption and test the patch for mem leaks. Sub-Task Open Unassigned
          16.
          Release builds contains ASM that either crashes processes or affects query results Sub-Task Closed Roman
          17.
          funcexp::Func_ceil::getIntVal fails with Thread 20 "PPBatchPrimProc" received signal SIGFPE, Arithmetic exception Sub-Task Closed Unassigned
          18.
          Review/refactor hashing for 16 bytes DTs Sub-Task In Progress Roman
          19.
          Separate Decimal and wide Decimal APIs into two classes Sub-Task Closed Unassigned
          20.
          Convert dataconvert::decimalToString() into VDecimal:: and TSInt128 classes methods. Sub-Task Closed Alexander Barkov
          21.
          Add support for wide-DECIMAL into UNION processing Sub-Task Closed Roman
          22.
          Overflow checks fails in decimal unit tests Sub-Task Closed Roman
          23.
          Bulk insertion doesn't work for wide DECIMALs. Sub-Task Closed Unassigned
          24.
          Move __float128 related code into a separate header file. Sub-Task Closed Alexander Barkov
          25.
          Add DDL test cases for wide decimal columns Sub-Task Closed Bharath Bokka
          26.
          Rename VDecimal into Decimal and make IDB_Decimal an alias from Decimal Sub-Task Closed Alexander Barkov
          27.
          Func_round code doesn't use conditional overflow checks doing multiplication Sub-Task Open Unassigned
          28.
          Add auto increment support for Wide Decimals. Sub-Task Open Unassigned
          29.
          UDAF processing might return wrong results duplicating one of the previous group's results Sub-Task Closed Roman
          30.
          Fix between for DECIMAL columns with certain literal values in projection. Sub-Task Closed Roman
          31.
          Remove Row::getBinaryField() from the code b/c it might crash accessing int128 from unaligned address Sub-Task Open Unassigned
          32.
          avg() on wide DECIMAL doesn't round the last digit properly Sub-Task Closed Alexey Antipovsky
          33.
          Remove libquadmath as the dependency Sub-Task Closed Alexey Antipovsky
          34.
          Get rid __float128 Sub-Task Open Unassigned
          35.
          Verify the whole Full DECIMAL patch against regression test suite and fix issues found. Sub-Task In Progress Gagan Goel
          36.
          Analyse wrong and possibly redundant code in Decimal::integralWideRound Sub-Task Open Unassigned

            Activity

              People

              Assignee:
              drrtuy Roman
              Reporter:
              LinuxJedi Andrew Hutchings (Inactive)
              Votes:
              7 Vote for this issue
              Watchers:
              15 Start watching this issue

                Dates

                Created:
                Updated: