1. This patch adds support for wide decimals with/without scale
to cpimport. In addition, INSERT ... SELECT and LDI are also
now supported.
2. Logic to compute the number of bytes to convert a binary
representation in the buffer to a narrow decimal is also
simplified.
Since we now perform type promotion to wide decimals for aggregations
involving numeric fields, we need to check for wide decimal in
in and out ROWs and call the appropriate setter and getter functions.
2. Set Decimal precision in SimpleColumn::evaluate().
3. Add support for int128_t in ConstantColumn.
4. Set IDB_Decimal::s128Value in buildDecimalColumn().
5. Use width 16 as first if predicate for branching based on decimal width.
This commit introduces DataConvert UTs.
DataConvert::decimalToString now can negative values.
Next version for Row::toString(), applyMapping UT checks.
Row:equals() is now wide-DECIMAL aware.
Replaced BINARYEMPTYROW and BINARYNULL values. We need to have
separate magic values for numeric and non-numeric binary types
b/c numeric cant tolerate losing 0 used for magics previously.
atoi128() now parses minus sign and produces negative values.
RowAggregation::isNull() now uses Row::isNull() for DECIMAL.
There are multiple overloaded version of the low level DML write methods to
push down CSC column type. WE needs the type to convert values correctly.
Replaced WE_INT128 with CSC data type that is more informative.
Removed commented and obsolete code.
Replaced switch-case blocks with oneliners.
Found the following:
* Potential stack explosions with alloca() usage on potentially large
strings
* Memory leaks in WriteEngineServer
* Stack usage out of scope in dataconvert
* A typo in an 'if' statement in dataconvert
I reformulate the messages.
Changed version in preprocessor conditions to avoid compilation
warnings in Debian 9.
Disabled sign-compare check for generated files in DML/DDL.
Fixed pragmas that disables compilation checks.
DDLProc now returns an error if it couldn't cwd.
Use either auto_ptr or unique_ptr depending on GCC version.
Fixes the following:
* Read past buffer end in intToDatetime / intToTime
* Allow intToTime to convert datetime
* Allow intToTime to convert shortened time values
* Allow stringToTime to convert datetime and int time values
* Fix saturation / bad values in intToTime and stringToTime
* Fix TIME return in STR_TO_DATE()
* Fix NULL return on type inequality for TIMEDIFF()
* Fix zero day calculation error in ADDTIME()/SUBTIME()
* Fix DATETIME to int calculation error in aggregate bit operations
* Make the new harderning flags optional with -DSECURITY_HARDENED_NEW