1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2026-10-23 21:49:05 +03:00
Commit Graph

112 Commits

Author SHA1 Message Date
Patrick LeBlanc
b62b5bcb1e Mass 'Corporaton' -> 'Corporation' substitution for 1.1. 2020-02-10 11:02:41 -05:00
Roman Nozdrin
f8bc6d2ff5 MCOL-1495 DML operations created two fCatalogMap entries per session.
These entries were never deleted so WE leaks about 7MB per 100 DML
    sessions. I add purge operations in the very end of four functions
    involved in DML.
2019-06-21 17:37:10 +01:00
Andrew Hutchings
e3cd205388 MCOL-1968 Fix UTF char/varchar min/max handling
If the first byte of a char/varchar was > 0x80 then it will break the
min/max values for an extent during cpimport. This patch makes the
min/max compare unsigned and only switches to signed when storing.

In addition send all the LDI / INSERT...SELECT data to cpimport, not
truncated. Let cpimport figure out the truncation point.
2019-06-11 10:37:04 +01:00
Andrew Hutchings
159df155a7 Merge branch 'develop-1.0' into develop-1.1-merge-up-20190214 2019-02-14 14:15:07 +00:00
Andrew Hutchings
f805478eb9 MCOL-2149 Fix cpimport decimal saturation
If we saturate int64_t during string -> decimal conversion then end
processing there instead of continuing. This preserves a good saturation
value.
2019-02-08 17:55:50 +00:00
Andrew Hutchings
8f5fb1a71e Merge branch 'develop-1.0' into 1.1-merge-up-20190111 2019-01-11 18:44:15 +00:00
Patrick LeBlanc
fe94776ac6 MCOL-2062: bug parsing scientific notation in cpimport
Made it use strtold instead of the 'manual' string parsing
stuff it was doing.
2019-01-09 16:31:38 -06:00
Andrew Hutchings
9888f88ac5 MCOL-1662 Use version buffer for UPDATEs
For some reason version buffer is not turned up for update queries which
means that the version number for dictionary blocks is not changed.
This can lead to dirty cache reads resulting in _CpNoTf_ in the results.

This patch turns on version buffer for updates.
2018-12-17 09:08:30 +00:00
Roman Nozdrin
d807aaee0a MCOL-1347 ALTER TABLE ADD COLUMN now creates a column with correct width for a varchar columns. 2018-12-10 10:11:11 -08:00
Andrew Hutchings
24c5e93756 MCOL-1737 Add debug logging options for LRU cache
This adds options which are user enabled to debug the LRU cache inside
ColumnStore. Specifically cache flushing.

It adds the following:
* PrimProc flush information when SIGUSR2 mode is enabled
* cpimport dictionary flush information when -d2 is used
* WriteEngineServer DML flush information to STDERR
2018-09-21 09:50:10 +01:00
Roman Nozdrin
4572c25534 MCOL-1675 When insert record calculate HWM using a column with the smallest width instead of the first column in the same way as in MCOL-984. 2018-08-28 11:29:38 +03:00
Andrew Hutchings
9e3f92b6a3 MCOL-1330 Make debug flag let valgrind work
Add a '-d' flag to WriteEngine, ExeMgr and PrimProc to let valgrind work
with them.
2018-06-25 15:10:28 +01:00
Andrew Hutchings
2bbb70f61b MCOL-1408 Multiple API HWM boundary fixes
Fixes the following:

* Generate error if calculateRowId fails
* No data written when first extent is completely full on a write, all
data going to second extent.
* 0 byte valArray malloc
* valArray free() on no malloc
* Column touched but no data written if all data going to second extent
* Wrong colWidth used on second extent calculateRowId
* Out of bounds memory write (crash) when no data for first extent
* Extent not committed if all data going to second extent
2018-06-06 16:18:54 +01:00
Andrew Hutchings
b6424480c0 MCOL-1408 Fix HWM calculation for DML & API
HWM for DML and API was being calculated using the first column in a
table instead of the smallest column. This shifts the calculation to the
correct column.
2018-05-29 21:21:38 +01:00
Andrew Hutchings
d010397be6 MCOL-1197 Make -c work in cpimport
It turns out -c wasn't actually connected to anything and now with have
BLOB/TEXT it is pretty useful. If -c is set to < 1MB then 1MB is used,
otherwise it will use the selected buffer size.
2018-05-09 14:52:42 +01:00
david hill
ae04b8a687 Merge pull request #438 from mariadb-corporation/MCOL-1323
MCOL-1323 cpimport Splitter has incorrect SIGPIPE mapping
2018-04-10 10:55:56 -04:00
David Hall
dbcbd6c7e7 MCOL-1323 cpimport Splitter has incorrect SIGPIPE mapping 2018-04-04 12:34:17 -05:00
David.Hall
2b944ebe2c Merge branch 'develop-1.1' into MCOL-1160 2018-01-30 15:32:25 -06:00
Andrew Hutchings
63f8e1ce71 MCOL-1176 Fix API extent rollover
When the API inserts data into ColumnStore which will roll over into a
new extent that data wasn't being put into the new extent and corruption
occured. This patch now tracks the additional data and inserts it into
the new extent. It also makes sure the LBIDs are stored so that they are
correctly committed.
2018-01-30 11:46:47 +00:00
Andrew Hutchings
6211372f61 MCOL-1160 Track and flush dictionary blocks
When bulk write API is used dictionary blocks that are written to needs
flushing in PrimProc. This patch tracks the blocks and flushes them.
2018-01-23 21:17:33 +00:00
Andrew Hutchings
5d9f9c819b Merge branch 'develop-1.0' into 1.1-merge-up-20180118 2018-01-18 16:28:08 +00:00
Andrew Hutchings
c31c836352 MCOL-1085 Add crash dump to daemons
This patch adds an automated crash dump which logs in
/var/log/mariadb/columnstore/trace/ when one of the ColumnStore daemons
crashes.
2018-01-03 09:20:09 +00:00
Andrew Hutchings
8babe4a35d Merge branch 'develop-1.0' into 1.0-merge-up 2017-12-12 10:01:14 +00:00
David Hall
34799d8d30 MCOL-994 handle a second abbreviated extent in case it moved dbroots because of redistribute remove. 2017-12-07 10:49:51 -06:00
Andrew Hutchings
37f673d121 Merge branch 'develop-1.0' into 1.0-merge-up 2017-11-30 15:09:11 +00:00
Andrew Hutchings
3d5bd3809c MCOL-444 Truncate UTF8 correctly
cpimport would truncate UTF8 data half way through a character which
would cause problems for functions using that data. This patch
calculates the correct truncation point when inserting the data.
2017-11-29 10:43:57 +00:00
Andrew Hutchings
21ca6ca42f MCOL-1021 Fix dictionary de-duplication cache
The signatures were getting destroyed whilst processing before being
used in the dictionary de-duplication cache making the cache full of
empty strings. This fix resets the signature after insertion for the
cache.

This fix also lets the signature cache be read when there is 1000
entries in it.
2017-11-09 17:28:21 +00:00
Andrew Hutchings
7aa588f523 MCOL-984 Fix API bulk insert rowID/HWM calulation
The rowID and therefore HWM for an insert was being calculated based on
the first column. If there are smaller columns in the table these will
insert in the middle of blocks instead of creating new blocks. This means
that we would no longer be crash safe and PrimProc gets very confused until
a cache flush.

We now use the smallest column to calculate the rowID and HWM increment
(as cpimport does).
2017-10-26 11:19:41 +01:00
David Hall
1dc0ea5fb4 MCOL-786 Redistribute: Round robin target dbroots 2017-10-05 15:05:44 -05:00
David Hall
de919c7f05 MCOL-786 Redistribute: Round robin target dbroots 2017-09-18 12:49:43 -05:00
Andrew Hutchings
f8f6f8bdde Fix write API char < 5
We need to cast to a 64bit int, not a size based int.
2017-09-13 17:19:00 +01:00
Andrew Hutchings
401e257df3 MCOL-879 Fix QueryStats linking issues
With 1.1 we have removed libdrizzle and used MariaDB's client library
instead for both CrossEngine and QueryStats. Unfortunately MariaDB 10.2
has two client libraries which have different structs with the same
name. When QueryStats was running inside the ColumnStore plugin this
symbol conflict was causing a crash.

The server's built-in client API has several different and several
missing functions so some additions to sm.cpp were made to fill the
gaps.

This patch does the following:

* Make sure that libmariadb is only linked to executables, not the
ColumnStore Plugin (to avoid symbol conflicts). Note that all
executables that link to CrossEngine and/or QueryStats need to link to
libmariadb to avoid missing symbol issues.
* Use the server's built-in client API for QueryStats when run in the
plugin
* Replace missing server built-in client API calls in sm.cpp (this is
for QueryStats and CrossEngine to keep the dynamic linker happy)
* Fixes issue where using 'localhost' as the MariaDB Server hostname
would fail in QueryStats.
2017-08-18 10:16: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
bc2a4e7795 MCOL-523 Add UDAF and UDAnF SDK 2017-08-02 11:22:07 -05:00
Andrew Hutchings
17660aaa54 MCOL-769 Fix data casting issues
Several typos corrupting data, a cleaner method used now
2017-06-27 16:56:01 +01:00
Andrew Hutchings
60694a7b72 MCOL-769 Add WE command to get LBIDs written to 2017-06-21 22:39:59 +01:00
Andrew Hutchings
736826cbdf MCOL-769 Make sure system catalog is versioned
Otherwise bad things can happen
2017-06-21 10:05:14 +01:00
Andrew Hutchings
4cca5fa7fa MCOL-769 Much higher performance bulk insert
Use void* pointers instead of boost::any with lots of copies
2017-06-20 19:08:48 +01:00
Andrew Hutchings
44977a8c6b MCOL-769 Add autocommit to condition 2017-06-16 17:55:44 +01:00
Andrew Hutchings
e8581e12d3 MCOL-769 Don't use version buffer in I_S mode
We don't need the version buffer in bulk write I_S mode since auto
commit will be on and we use the first empty block.
2017-06-16 17:29:08 +01:00
Andrew Hutchings
cb52f1a712 MCOL-769 fix column values
They weren't being reset between columns
2017-06-15 10:24:59 +01:00
Andrew Hutchings
8a9c58cf6b MCOL-769 Add new binary bulk insert command
For use with mcsapi and maybe INSERT...SELECT and LDI
2017-06-13 13:19:01 +01:00
Andrew Hutchings
cced9222e1 MCOL-710 Fix ALTER TABLE ADD COLUMN for TEXT/BLOB
The column fill didn't detect that this was a TEXT/BLOB column.
2017-05-10 12:03:21 +01:00
David Hall
a48174de23 MCOL-455: fix crash caused by rewind of unopened redistribute plan file during display when no partitions have been planned to be moved. 2017-04-21 09:48:34 -05:00
dhall-InfiniDB
e1a71a5628 Merge pull request #154 from mariadb-corporation/MCOL-670
MCOL-670 Fix UPDATE with BLOB/TEXT
2017-04-19 16:56:06 -05:00
Andrew Hutchings
785e6c91bd MCOL-670 Fix UPDATE with BLOB/TEXT
* Don't cache > 8000 bytes during update
* Fix PrimProc case where token is used more than once
2017-04-19 22:45:23 +01:00
Andrew Hutchings
f251ebccb2 MCOL-669 TEXT cpimport fixes
* 64KB TEXT column had off-by-one length pointer counting
* TEXT I_S/LDI was looping where it shouldn't causing pointer issues
* TEXT data type wasn't fully understood by cpimport
2017-04-19 14:11: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
b7a01ce02e MCOL-267 Add blob support for INSERT_SELECT
* Note there is a 1MB buffer limit, rows longer than 512KB will fail (2x
due to hex of blob data)
* cpimport needs to use hex of blob data
2017-03-23 14:04:14 +00:00
Andrew Hutchings
1892ac8681 MCOL-267 Bulk write & PrimProc fixes 2017-03-20 21:26:53 +00:00