1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-07 03:22:57 +03:00
Commit Graph

256 Commits

Author SHA1 Message Date
Andrew Hutchings
82bd9e29f5 Merge branch 'develop-1.1' into 1.1-merge-up-2018-12-20b 2018-12-20 20:55:00 +00:00
Andrew Hutchings
e4ee1095de Merge branch 'develop-1.1' into 1.1-merge-up-2018-12-20 2018-12-20 20:37:24 +00:00
Andrew Hutchings
7989ccefe0 MCOL-2018 Fix array bounds issue
StringStore NULL check includes a check for _CpNuLl_ in the
StringStore. This is a case should never happen but we keep it just in
case.

Unfortunately this check was skipping 4*8 bytes instead of just 4 bytes.
This is definitely bad behaviour but it could cause an out-of-bounds read
based crash.
2018-12-12 18:06:09 +00:00
David Hall
9c1bc910a5 MCOL-1793, fix REGR_SLOPE calculations, change scale to DECIMAL_NOT_SPECIFIED (variable length) for most REGR_*** functions. 2018-11-20 16:29:17 -06:00
David Hall
d930a1e322 MCOL-521 Some more fixes for multi-parm aggregates. Add regr slope 2018-09-25 16:31:10 -05:00
David Hall
3fac7b1e19 MCOL-521 more multi-param work with constant NULL 2018-09-13 14:12:10 -05:00
Andrew Hutchings
580a3ec123 MCOL-1647 Fix TIME regressions
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
2018-08-17 07:55:51 +01:00
Andrew Hutchings
443a2867c4 MCOL-1385 Initial 10.3 support 2018-08-02 14:55:01 +01:00
Roman Nozdrin
bd641301da Merge pull request #504 from mariadb-corporation/1.1-merge-up-20180621
Merge develop-1.1 into develop
2018-07-04 22:52:04 +03:00
Roman Nozdrin
77b52a6a32 MCOL-1446 CS sorting direction aligned with the server`s. 2018-07-03 19:55:30 +03:00
Andrew Hutchings
8c90419852 Fix merge and coding style issues 2018-06-22 15:31:31 +01:00
David Hall
ea70806e93 MCOL-1201 Add support for UDAF multiple parm constants 2018-06-05 14:10:04 -05:00
David Hall
ec3a3846c3 MCOL-1201 manual rebase with develop. Obsoletes branch MCOL-1201 2018-06-05 14:06:58 -05:00
David Hall
06e9772310 MCOL-1201 some fixes from testing 2018-06-05 13:54:17 -05:00
David Hall
6fa7dded6f MCOL-1201 manual rebase with develop. Obsoletes branch MCOL-1201 2018-06-05 13:54:17 -05:00
Andrew Hutchings
1a582eed4a Merge branch 'develop-1.1' into 1.1-merge-up-20180509-a2 2018-05-09 09:20:55 +01:00
Andrew Hutchings
ac3e702a3e MCOL-1396 Allow StringStore to hold more than 2GB
StringStore originally worked by returning a 32bit pointer to a memory
location and storing the length with that pointer. This allowed 4GB to
be stored in 64KB blocks. With 1.1 we used the high bit to signify a
TEXT/BLOB string of > 64KB reducing the max capacity to 2GB but without
any bounds checking.

So, if you went over the 2GB mark the getter would think you are trying
to get a long string instead of a short one and come up empty. It would
then return NULL.

This patch uses 64bit memory points still retaining the high bit to
signify long strings. It also now stores the length with the string
rather than with the pointer to allow the full 64bits for pointers.

It also adds a bounds check for small strings.
2018-05-08 19:38:06 +01:00
Andrew Hutchings
c40903de9b MCOL-392 Apply astyle
Make this branch apply our style guidelines
2018-05-01 09:52:26 +01:00
Andrew Hutchings
dba04e8b72 MCOL-392 Fix cpimport and >8bit positive hour 2018-04-30 09:42:41 +01:00
Andrew Hutchings
edb2e2f36d MCOL-392 Fix negative time handling 2018-04-30 09:42:41 +01:00
Andrew Hutchings
3c1ebd8b94 MCOL-392 Add initial TIME datatype support 2018-04-30 09:42:41 +01:00
Andrew Hutchings
59d0a45da3 Merge branch 'develop-1.1' into 1.1-merge-up 2017-12-12 20:26:00 +00:00
Andrew Hutchings
addd719524 MCOL-1083 Fix NULL row init for TEXT/BLOB
We should have been initalizing TEXT/BLOB 8 byte tokens for NULL,
instead we were initializing the entire length of the TEXT/BLOB which
can do a lot of damage.
2017-12-06 17:08:08 +00:00
Andrew Hutchings
01446d1e22 Reformat all code to coding standard 2017-10-26 17:18:17 +01:00
David Hall
9b6accbdea MCOL-926 Handle NULLs better for UDAF 2017-10-04 11:15:39 -05:00
David Hall
9e841bdc6c MCOL-926 Handle duplicate function detection for UDAF 2017-10-02 15:08:32 -05:00
David Hall
a0b30f904c MCOL-523 Remove un-implemented functions finish(), getRowCnt(), and getRowsInPartition(). 2017-09-07 16:02:36 -05:00
Andrew Hutchings
3f040173d2 MCOL-874 StringStore Mk.3
StringStore as a vector of std::string had a performance regressions and
a rare crash.

This new version of StringStore restores the original StringStore with
the 64KB limitation and adds another vector to store strings that won't
fit into the small string storage.
2017-08-14 21:47:04 +01:00
David Hall
4eafaa8682 MCOL-869 UDAF with other aggregate gives wrong answer 2017-08-11 12:46:19 -05:00
Andrew Hutchings
16ecfb9d6c MCOL-858 Preserve NULs in StringStore deserialize
The fix for MCOL-838 broke VARBINARY as it truncated on the first NUL on
StringStore deserialize. This fix uses append() to force a copy instead
whilst preserving length.

This fixes test012
2017-08-07 19:56:52 +01:00
Andrew Hutchings
3330495a2e MCOL-777 Cleanup source
Clean out autotools and some other things from the source tree.
2017-08-07 15:59:56 +01:00
David Hall
a27d29c909 MCOL-523 std::string can't be SMALL_POLICY in static_any 2017-08-04 12:32:30 -05:00
David Hall
e49edf19c8 MCOL-523 set copyright notices 2017-08-03 11:36:19 -05:00
David Hall
b401a9293c MCOL-523 Add back in initial reset for UDAF calls without GROUP BY 2017-08-02 14:57:07 -05:00
David Hall
bc2a4e7795 MCOL-523 Add UDAF and UDAnF SDK 2017-08-02 11:22:07 -05:00
Andrew Hutchings
cc1cbaa160 MCOL-838 Enforce copy of string in StringStore
Since we aren't using C++11 the deserialize was doing using reference
counts for string copy which occasionally caused a use after free.
2017-07-31 06:38:21 +01:00
Andrew Hutchings
83331f4fa7 MCOL-712 Support TEXT for GROUP BY
Add missing support
2017-05-11 10:32:29 +01:00
Andrew Hutchings
e9db44424c MCOL-642 Separate TEXT from BLOB
* TEXT and BLOB now have separate identifiers internally
* TEXT columns are identified as such in system catalog
* cpimport only requires hex input for BLOB, not TEXT
2017-03-27 21:36:27 +01:00
Andrew Hutchings
b1d04c04fb MCOL-267 Fix LONGBLOB issues
* Set max column length to a little under 2.1GB in DDL
* Fix token edge case
* Re-write RowGroup string handling to take more than 64KB in one string
2017-03-21 17:22:31 +00:00
Andrew Hutchings
093aa377e5 MCOL-267 multi-block support for PrimProc and bulk
* Adds multi-block bulk write support
* Adds PrimProc multi-block read support
* Allows the functions length() and hex() to work with BLOB columns
2017-03-20 18:32:24 +00:00
Andrew Hutchings
27e5995cd3 MCOL-267 Add basic engine support
This patch adds enough support so that cross engines joins with blob
columns in the foreign engines will work. The modifications are as
follows:

* Add CrossEngine support for non-NULL-terminated (binary) data
* Add row data support for blobs (similar to varbinary)
* Add engine support for writing out blob data correctly to the storage
engine API
* Re-enable blob support in the engine plugin
2017-03-17 09:27:50 +00:00
Andrew Hutchings
2f3937ac7e MCOL-505 Performance improvements to ExeMgr
This fix improves the performance of ExeMgr by doing the following:

* Significantly reduces the amount of time the xml configuration is
scanned
* Uses a much faster way to determine the CPU core count
* Reduces the amount of times certain allocations are executed
* Rowgroup pre-allocates vectors for 1024 rows

This improves performance for the first query of a connection and the
performance for smaller result sets. It may well improve performance in
other areas too.
2017-01-12 16:58:16 +00:00
Andrew Hutchings
a1eb952332 MCOL-352 Fix VARCHAR with no NUL
It is possible to have a VARCHAR column that isn't NUL terminated, an
example of this is a union of two CHAR columns. So the length should
always act as a terminator when there is no NUL.
2016-10-26 17:07:15 +01:00
Andrew Hutchings
3d91ac193c Merge branch 'develop' of git://github.com/mariadb-corporation/mariadb-columnstore-engine into MCOL-97 2016-09-22 18:50:59 -05:00
Ben Thompson
7d3cd26af9 MCOL-160 MCOL-262 CMake Build Fixes for out-of-tree builds and engine RPMS 2016-09-22 10:14:18 -04:00
Andrew Hutchings
b954001fba Remove net-snmp and use the OS version
Also remove a few old binaries from build/
2016-09-13 17:42:57 +01:00
Ben Thompson
4709c2bece Add dependencies on netsnmp build 2016-07-27 16:00:28 -05:00
Ben Thompson
424628349b Add CMake build tree files 2016-07-15 10:49:57 -05:00
Ben Thompson
d90af9496e Remove Makefile.in and update gitignore 2016-07-15 10:49:57 -05:00
david hill
55858d9eb0 MCOL-5 - chnage for ubunut build 2016-07-11 17:15:16 -05:00