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

307 Commits

Author SHA1 Message Date
01446d1e22 Reformat all code to coding standard 2017-10-26 17:18:17 +01:00
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
05d934f0ab MCOL-744 Fix BPP mutex crash
Whilst very rare we can hit a case where we attempt to unlock objLock
when it is already unlocked. With the Boost version in Ubuntu 16.04 this
triggers an abort() effectively crashing PrimProc.

In this patch we switch to a pthread mutex instead which does not have
this limitation. At a later date we can look into refactoring how BPP
and this mutex works.
2017-08-11 07:21:37 +01:00
fa17a98d60 MCOL-744 Fix BPP mutex crash
Whilst very rare we can hit a case where we attempt to unlock objLock
when it is already unlocked. With the Boost version in Ubuntu 16.04 this
triggers an abort() effectively crashing PrimProc.

In this patch we switch to a pthread mutex instead which does not have
this limitation. At a later date we can look into refactoring how BPP
and this mutex works.
2017-08-11 07:17:07 +01:00
3330495a2e MCOL-777 Cleanup source
Clean out autotools and some other things from the source tree.
2017-08-07 15:59:56 +01:00
f2e7feffd6 Merge pull request #224 from mariadb-corporation/MCOL-857-1.1
MCOL-857 Fix thread leak on ByteStream exception
2017-08-03 12:40:14 -05:00
d690a14eb9 MCOL-857 Fix thread leak on ByteStream exception
ByteStream::advance can throw an exception if there isn't enough data in
the buffer yet. PrimProc's BPP processor would not catch this causing a
thread to be leaked every time. This was happening on BPP destroy and
abort.
2017-08-03 17:49:55 +01:00
3d3142e29a MCOL-857 Fix thread leak on ByteStream exception
ByteStream::advance can throw an exception if there isn't enough data in
the buffer yet. PrimProc's BPP processor would not catch this causing a
thread to be leaked every time. This was happening on BPP destroy and
abort.
2017-08-03 17:47:56 +01:00
e49edf19c8 MCOL-523 set copyright notices 2017-08-03 11:36:19 -05:00
108fbcf572 MCOL-523 Add UDAF and UDAnF SDK 2017-08-02 11:30:57 -05:00
bc2a4e7795 MCOL-523 Add UDAF and UDAnF SDK 2017-08-02 11:22:07 -05:00
be7b83f89a MCOL-834 Fix crashes introduced
* Fix race condition in cleanup
* Fix mutex cleanup crash
2017-07-27 23:24:30 +01:00
bc80fd99dc MCOL-834 Fix crashes introduced
* Fix race condition in cleanup
* Fix mutex cleanup crash
2017-07-27 23:22:45 +01:00
29ac5fe2b2 MCOL-834 Cleanup BPP threads on ExeMgr disconnect
If ExeMgr disconnects (such as a crash) whilst queries are being
executed some BPP threads get orphaned. This patch tracks the BPP usage
for each threads and cleans up appropriately.
2017-07-26 14:16:25 +01:00
b990a26996 MCOL-834 Cleanup BPP threads on ExeMgr disconnect
If ExeMgr disconnects (such as a crash) whilst queries are being
executed some BPP threads get orphaned. This patch tracks the BPP usage
for each threads and cleans up appropriately.
2017-07-26 11:50:26 +01:00
f240c89faf Merge pull request #156 from mariadb-corporation/MCOL-671
MCOL-671 Fix TEXT/BLOB single row SELECT WHERE
2017-04-21 10:06:34 -05:00
6128293ad3 MCOL-671 Fix TEXT/BLOB single row SELECT WHERE
pDictionaryScan won't work for BLOB/TEXT since it requires searching the
data file and rebuilding the token from matches. The tokens can't be
rebuild correctly due the bits in the token used for block counts. This
patch forces the use of pDictionaryStep instead for WHERE conditions.

In addition this patch adds support for TEXT/BLOB in various parts of
the job step processing. This fixes things like error 202 during an
UPDATE with a join condition on TEXT/BLOB columns.
2017-04-21 11:21:59 +01:00
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
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
530cc94915 MCOL-267 Minor fixups
Fix things found by David Hall
2017-03-23 17:14:00 +00:00
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
1892ac8681 MCOL-267 Bulk write & PrimProc fixes 2017-03-20 21:26:53 +00:00
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
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
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
084c1b8ecc Merge pull request #125 from mariadb-corporation/MCOL-513
Mcol 513
2017-02-20 17:47:36 +00:00
87a679e6eb MCOL-513 use a single funcor per thread. ThreadPool was doing one at a time anyway, but in a convpluted way that made it easier to add more if wanted. But it was expensive. Cleanup and polish. 2017-02-17 09:46:42 -06:00
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
3d91ac193c Merge branch 'develop' of git://github.com/mariadb-corporation/mariadb-columnstore-engine into MCOL-97 2016-09-22 18:50:59 -05:00
7d3cd26af9 MCOL-160 MCOL-262 CMake Build Fixes for out-of-tree builds and engine RPMS 2016-09-22 10:14:18 -04:00
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
392d6df495 Merge branch 'mcol-159' into develop
Conflicts:
	1
	Makefile.save
	autom4te.cache/output.0
	autom4te.cache/traces.0
	autom4te.cache/traces.1
	compile
	config.guess
	config.sub
	configure.save
	dbcon/Makefile.in
	dbcon/ddlpackage/Makefile.in
	dbcon/ddlpackage/ddl-scan.cpp
	dbcon/ddlpackageproc/Makefile.in
	dbcon/dmlpackage/Makefile.in
	dbcon/dmlpackage/dml-scan.cpp
	dbcon/dmlpackageproc/Makefile.in
	dbcon/execplan/Makefile.in
	dbcon/joblist/Makefile.in
	dbcon/mysql/Makefile.in
	ddlproc/Makefile.in
	decomsvr/Makefile.in
	depcomp
	dmlproc/Makefile.in
	exemgr/Makefile.in
	install-sh
	missing
	net-snmp/Makefile.in
	net-snmp/net-snmp-5.7.3/agent/mibgroup/mib_module_includes.h
	net-snmp/net-snmp-5.7.3/configure-summary
	net-snmp/net-snmp-5.7.3/dist/generation-scripts/gen-variables
	net-snmp/net-snmp-5.7.3/include/net-snmp/agent/mib_module_config.h
	net-snmp/net-snmp-5.7.3/mk/MODULE_LIST.mk
	net-snmp/net-snmp-5.7.3/mk/mib_module_list_c.mk
	net-snmp/net-snmp-5.7.3/mk/mib_module_list_code.mk
	net-snmp/net-snmp-5.7.3/mk/mib_module_list_ft.mk
	net-snmp/net-snmp-5.7.3/mk/mib_module_list_lo.mk
	net-snmp/net-snmp-5.7.3/mk/mib_module_list_o.mk
	net-snmp/net-snmp-5.7.3/mk/mibgroup_list_ft.mk
	net-snmp/net-snmp-5.7.3/mk/mibgroup_list_lo.mk
	net-snmp/net-snmp-5.7.3/mk/mibgroup_list_o.mk
	net-snmp/net-snmp-5.7.3/mk/module_list_c.mk
	net-snmp/net-snmp-5.7.3/mk/module_list_code.mk
	net-snmp/net-snmp-5.7.3/mk/module_list_ft.mk
	net-snmp/net-snmp-5.7.3/mk/module_list_lo.mk
	net-snmp/net-snmp-5.7.3/mk/module_list_o.mk
	oam/Makefile.in
	oam/cloud/Makefile.in
	oam/etc/Makefile.in
	oam/oamcpp/Makefile.in
	oam/post/Makefile.in
	oamapps/Makefile.in
	oamapps/calpontDB/Makefile.in
	oamapps/calpontSupport/Makefile.in
	oamapps/columnstoreDB/Makefile.in
	oamapps/columnstoreSupport/Makefile.in
	oamapps/mcsadmin/Makefile.in
	oamapps/postConfigure/Makefile.in
	oamapps/sendtrap/Makefile.in
	oamapps/serverMonitor/Makefile.in
	oamapps/sessionWalker/Makefile.in
	oamapps/traphandler/Makefile.in
	primitives/Makefile.in
	primitives/blockcache/Makefile.in
	primitives/linux-port/Makefile.in
	primitives/primproc/Makefile.in
	procmgr/Makefile.in
	procmon/Makefile.in
	snmpd/Makefile.in
	snmpd/etc/Makefile.in
	snmpd/snmpmanager/Makefile.in
	tools/Makefile.in
	tools/clearShm/Makefile.in
	tools/cleartablelock/Makefile.in
	tools/configMgt/Makefile.in
	tools/cplogger/Makefile.in
	tools/dbbuilder/Makefile.in
	tools/dbloadxml/Makefile.in
	tools/ddlcleanup/Makefile.in
	tools/editem/Makefile.in
	tools/getConfig/Makefile.in
	tools/idbmeminfo/Makefile.in
	tools/setConfig/Makefile.in
	tools/viewtablelock/Makefile.in
	utils/Makefile.in
	utils/batchloader/Makefile.in
	utils/boost_idb/Makefile.in
	utils/cacheutils/Makefile.in
	utils/common/Makefile.in
	utils/compress/Makefile.in
	utils/configcpp/Makefile.in
	utils/dataconvert/Makefile.in
	utils/ddlcleanup/Makefile.in
	utils/funcexp/Makefile.in
	utils/idbdatafile/Makefile.in
	utils/idbhdfs/Makefile.in
	utils/idbhdfs/hdfs-12/Makefile.in
	utils/idbhdfs/hdfs-20/Makefile.in
	utils/jemalloc/Makefile.in
	utils/joiner/Makefile.in
	utils/loggingcpp/Makefile.in
	utils/messageqcpp/Makefile.in
	utils/mysqlcl_idb/Makefile.in
	utils/querystats/Makefile.in
	utils/querytele/Makefile.in
	utils/rowgroup/Makefile.in
	utils/rwlock/Makefile.in
	utils/startup/Makefile.in
	utils/threadpool/Makefile.in
	utils/thrift/Makefile.in
	utils/udfsdk/Makefile.in
	utils/windowfunction/Makefile.in
	utils/winport/Makefile.in
	versioning/BRM/Makefile.in
	versioning/Makefile.in
	writeengine/Makefile.in
	writeengine/bulk/Makefile.in
	writeengine/client/Makefile.in
	writeengine/dictionary/Makefile.in
	writeengine/index/Makefile.in
	writeengine/redistribute/Makefile.in
	writeengine/server/Makefile.in
	writeengine/shared/Makefile.in
	writeengine/splitter/Makefile.in
	writeengine/wrapper/Makefile.in
2016-08-10 16:24:51 -05:00
010d660e5f During BPP destroy, check the joinDataReceived member function to ensure the END_JOINER command has been processed before destroy. 2016-08-08 16:38:38 -05:00
e2f540553c MCOL-257. Use a shared pointer for the base BPPHandler. If a thread was waiting for execution in the priority thread pool, it was possible for the BPPHandler for which it had a pointer to go out of scope and be destroyed. With a shared ptr, it won't be destroyed until the last thread is done with it. 2016-07-28 09:25:49 -05:00
4709c2bece Add dependencies on netsnmp build 2016-07-27 16:00:28 -05:00
edb55cf23a mcol-5 save files 2016-07-19 10:46:58 -05:00
424628349b Add CMake build tree files 2016-07-15 10:49:57 -05:00
d90af9496e Remove Makefile.in and update gitignore 2016-07-15 10:49:57 -05:00
7d8de28b43 MCOL-59, change calpont.xml 2016-06-22 16:00:00 -05:00
22b7b3d1ef [MCOL-69] - autotools bootstrap only needed on new release version 2016-06-15 04:46:10 -04:00
23f8cb50b9 Builds! 2016-06-03 19:54:24 +03:00
b1b60065d9 build fails with boost linking errors 2016-06-03 13:55:09 +03:00
16b1264557 Merge pull request #3 from mariadb-corporation/master
merge upstream
2016-06-01 23:13:42 -04:00
e9d96ddc85 copyright additions 2016-06-01 20:03:20 -05:00
5827cd5c47 merge upstream 2016-06-01 19:59:03 -04:00
3a6d4c3fd2 Revert "copyright name change"
This reverts commit 7000f6e4f2.
2016-06-01 17:54:28 -05:00
be45f0a40f merge 2016-06-01 17:30:57 -04:00
7000f6e4f2 copyright name change 2016-06-01 14:54:11 -05:00
eff8f39801 MCOL-3 directory name changes 2016-05-31 16:40:30 -05:00
185d1a780c [MCOL-69] Remove Makefile.in files (should be generated with autoreconf) 2016-05-30 07:48:12 -04:00