1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-05 16:15:50 +03:00
Commit Graph

68 Commits

Author SHA1 Message Date
Roman Nozdrin
6d65b13852 MCOL-901 Significanlty reduced memory consumption for group_concat().
RowGroup default constructor allocates memory too generously.

    Removed commented code from groupconcat.cpp.
2019-01-29 16:02:37 +03: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
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
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
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
David Hall
e49edf19c8 MCOL-523 set copyright notices 2017-08-03 11:36:19 -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
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
david hill
f6afc42dd0 the begginning 2016-01-06 14:08:59 -06:00