1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-05-30 00:27:08 +03:00

81 Commits

Author SHA1 Message Date
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
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
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
aea729fe7d MCOL-267 DML support
* DML writes for multi-block dictionary (blob) now works
* PrimProc fixed so that the first block in multi-block is read
correctly
* Performance optimisation (removed string copy into stack) for new
dictionary entries
2017-03-18 14:31:29 +00:00
Andrew Hutchings
c08d03fba4 MCOL-267 Make BLOB DDL/DML work
Currently limited to 8KB inserts.
2017-03-17 12:10:02 +00:00
Andrew Hutchings
80b4d7ee36 MCOL-553 Improve error handling for ulimit
Now sends an error to the error log and aborts postConfigure
2017-02-21 21:10:57 +00:00
Andrew Hutchings
739f61a1ef MCOL-553 Error if we can't set file limits
Especially for non-root installs. Otherwise we could be in for some pain
later...
2017-02-08 17:13:30 +00:00
David Hall
90ba63b929 MCOL-455 spell check 2017-01-20 10:40:58 -06:00
David Hall
72436e1d57 MCOL-455: fix crash caused by rewind of unopened redistribute plan file during display when no partitions have been planned to be moved. 2017-01-20 10:20:09 -06:00
Andrew Hutchings
4163f94976 MCOL-353 Fix lag at end of cpimport
The end of a cpimport adds a delay which is 1 second multiplied by the
number of PMs. This in-turn is multipled up with the number of
connections/threads causing a long delay when you have several PMs.

The delay is not required as we already have a 20ms delay and we will
re-enter the recv() if there is no data and we are still connected.
2017-01-17 10:25:59 +00:00
Andrew Hutchings
ffcfc41563 MCOL-507 Further ExeMgr performance improvements
This does the following:

* Switch resource manager to a singleton which reduces the amount of
times the XML data is scanned and objects allocated.
* Make the I_S tables use the FE implementation of the system catalog
* Make the I_S.columnstore_columns table use the RID list cache
* Make the extentmap pre-allocate a vector instead of many small allocs
2017-01-16 12:33:27 +00:00
Andrew Hutchings
ae630b3375 Merge pull request #89 from mariadb-corporation/MCOL-455
MCOL-455 Change resistribute database logic to move all segment files…
2017-01-09 19:57:04 +00:00
David Hall
600e758539 MCOL-455 Change resistribute database logic to move all segment files from designated dbroots to others in the system. 2017-01-06 13:04:32 -06:00
Andrew Hutchings
bb800e4771 MCOL-477 Change autoincrement on ALTER TABLE
This patch allows the following syntax to change the current
autoincrement value for the table:

ALTER TABLE table_name COMMENT='autoincrement=value';

Where "value" is the new integer to be used.
2017-01-05 15:03:54 +00:00
Andrew Hutchings
025838629b MCOL-454 I_S.COLUMNSTORE_FILES multi-node
I_S.COLUMNSTORE_FILES returned bad filenames and NULL file sizes when
there are multiple nodes in a ColumnStore cluster

It adds an extra message call to the WriteEngine to get the file size
for that file. The I_S function will figure out which WriteEngine to
communicate with and get the file size details from it.
2016-12-14 16:55:03 +00:00
David Hall
127180220b MCOL-307 merge with develop 2016-12-01 10:06:32 -06:00
Andrew Hutchings
874596c6cd MCOL-309 Implement Information Schema tables
This patch does the following:

* Fix a year storage issue in the datestamp for the columnstore tables
  metadata table (note that any previous tables will still have the
  incorrect year stored).
* Expose the table creation date in CalpontSystemCatalog::getTables()
* Add an INFORMATION_SCHEMA table listing the tables in ColumnStore
  (similar to systable)
* Add an INFORMATION_SCHEMA table listing the columns in ColumnStore
  (similar to syscolumn)
* Add an INFORMATION_SCHEMA table listing the extents in ColumnStore
  (similar to the editem tool but with additional file information)
* Modifies the build system and scripts to support the new tables
2016-11-14 15:44:20 +00:00
David Hall
bd17d20710 MCOL-307 Add Redistribute command to mcsadmin 2016-11-08 15:19:31 -06:00
Andrew Hutchings
4fc7fa12cd MCOL-129 INSERT/UPDATE strict mode support
This changes the warning for truncation to the correct MariaDB error
code (1264).

In addition it passes the strict mode up into the DML class to roll back
correctly.

It also sets the abort_on_warning flag for updates as this isn't set on
the rnd_init phase but is needed for strict mode to work.
2016-11-04 14:06:00 +00:00
david hill
ed3bc28171 added copyright headers 2016-10-11 10:02:01 -05:00
david hill
897d8d3f3d change snmp to alarm 2016-10-10 17:46:24 -05: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
d551b7d6e0 MCOL-298 Fix saturated date/datetime handling
Saturated DML updates would be set to NULL as were saturated cpimport
values. This sets them to the zero date/datetime value.
2016-09-14 19:58:11 +01: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
David Hall
33a6102116 Remove SKIP_AUTOI. Not used 2016-09-06 15:42:48 -05:00
David Hall
23cf2e3edc Remove #define SKIP_AUTOI. This is no longer used 2016-09-06 12:04:28 -05:00
dhall-InfiniDB
1a7883f98b Merge pull request #4 from LinuxJedi/MCOL-274
Make date handling more in-line with MySQL
2016-09-02 09:15:00 -05:00
Andrew Hutchings
25851df89d Add support for zero date separate to NULL
NULL is now pushed through the MariaDB storage engine plugin down to the
insert processing. A '0000-00-00' date is now a separate value to NULL.

This is more in-line with MariaDB's handling.
2016-08-30 16:26:36 +01:00
Andrew Hutchings
0bea3e4ab1 Make date handling more in-line with MySQL
Date limit of year 1400 was used due to Boost's limits.

This patch strips out the use of Boost for date handling and sets the
lower limit to year 1000.
2016-08-30 11:25:16 +01:00