1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-06-12 05:01:56 +03:00
Commit Graph

58 Commits

Author SHA1 Message Date
3d068a7263 chore(codemanagement, ci): better coredumps handling, deps fixed 2025-06-09 11:56:32 +00:00
aa7e0fb9b4 Deep build refactoring phase 1 (#3562)
* configcpp refactored
* logging and datatypes refactored

* more dataconvert
* chore(build): massive removals, auto add files to debian install file
* chore(codemanagement): nodeps headers, potentioal library
* chore(build): configure before autobake
* chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated
* chore(build): install deps as separate step for build-packages
* more deps
* check  debian/mariadb-plugin-columnstore.install automatically
* chore(build): add option for multibracnh compilation
* Fix warning
2025-05-30 14:05:21 +04:00
a1019b7c0e chore(build): refactor main CMakeLists.txt (#3543)
* chore(build): refactor main CMakeLists.txt

* chore(build): fix boost version for packages, set clang-20 only for amd and arm

* chore(build): boost 4 sm

* chore(build): boost dep for rowgroup

* chore(build): toolset for boost

* chore(build): suppress clang warnings for boost

* chore(ci, build): use ASAN for unittest on ubuntu 24.04 only, added custom cmake flag option for bootstrap, custom params for new and existing pipelines

* chore(build): sort bootstrap flags

* chore(CI): remove publish pkg step, adding clickable link instead to publish steps, fix customenv
2025-05-20 05:00:48 +04:00
21c3bbce16 do *not* link ha_columnstore.so with libmariadb.so
this means some libraries have to be compiled twice -
for tools with libmariadb.so and for plugin, without.
2022-11-17 11:53:42 -06:00
28a12eda82 Fix up CmakeLists.txt
A better way to fix the dependencies
2022-09-06 16:15:07 -05:00
bcaf867731 Fix up cmake to build out of band
The main CmakeLists.txt was using MY_CHECK_AND_SET_COMPILER_FLAG before the include. This works in-band with server because it was already included in server's CmakeLists.txt.
dbcon/mysql included curl as a build dependency. We don't build curl. It's a lib dependency. Not sure why it works in-band. One wouldn't think it should.
2022-09-06 16:08:47 -05:00
f5b2a6885f MCOL-5013: Load Data from S3 into Columnstore
Introduced UDF and stored prodecure.
usage:

set columnstore_s3_key='<s3_key>';
set columnstore_s3_secret='<s3_secret>';
set columnstore_s3_region='region';

and then use UDF
select columnstore_dataload("<tablename>", "<filename>", "<bucket>", "<db_name>");
for UDF db_name can be ommited, then current connection db will be used

or stored function
call calpontsys.columnstore_load_from_s3("<tablename>", "<filename>", "<bucket>", "<db_name>");
2022-07-04 19:52:37 +03:00
923bbf4033 MCOL-1356: Add convert_tz (#2099) 2021-08-19 17:47:10 -05:00
75e3bbc31e MCOL-4674 Fix ColumnStore to run MTR tests in a build directory 2021-04-13 11:25:25 +04:00
abbe2ebbf6 Dynamic version numbering 2021-01-21 10:30:46 +00:00
129d5b5a0f MCOL-4174 Review/refactor frontend/connector code 2020-11-18 13:53:15 +00:00
b5bc38c4ad MCOL-4329 dev set plugin-maturity to stable
Also remove x-columnstore.cnf
2020-09-28 14:35:34 -05:00
be60b49646 Fix for using correct cnf file when building as submodule. 2020-08-19 18:43:46 -05:00
30d3930f96 MCOL-4155: rename the cnf file for enterprise builds. 2020-08-12 15:21:32 -05:00
26895ccdb3 Remove x-columnstore.cnf b/c it breaks minor-upgrade on RPM-based distros 2020-07-27 12:04:49 +00:00
cfc61fb5df Don't install files w/o the target. 2020-07-10 18:42:24 +00:00
7e868bc588 add dependency for generated header files errorids.h messageids.h patch made by Ben. 2020-07-10 18:38:49 +00:00
87055f42f6 make columnstore to load in enterprise
.cnf file overwriting plugin-maturity must be lexicographically
after mariadb-enterprise.cnf

also set the maturity correctly without relying on supermodule doing it
2020-07-07 11:10:54 -04:00
1390372c35 Define a dummy columnstore target when doing a standalone build. 2020-06-30 13:02:07 -04:00
1e8eaa0550 fix RPM detection
RPM|DEB is not a valid cmake condition

Also: DRY
2020-06-30 16:04:09 +02:00
1e0fa1aaa0 Disable plugin for bintar builds. 2020-06-25 12:45:05 +00:00
1a5c6910da Make changes based on feedback to PR #1254 for the cache. 2020-06-08 14:11:30 -04:00
c30d105c30 Use batch inserts for the cache flush. 2020-06-03 15:20:03 -04:00
43d5d511d7 Initial port of Monty's code of the ColumnStore cache. 2020-06-03 15:20:03 -04:00
da32afc0b2 Merge pull request #1023 from LinuxJedi/mariadb-systemctl
MCOL-3718 Use systemd instead of mysql-Columnstore
2020-02-28 16:19:58 -05:00
114c5be935 MCOL-3669 Add real versioning to plugin
Make the version in information_schema.all_plugins reflect the real
version of ColumnStore.
2019-12-13 19:19:16 +00:00
7489d0bfd0 MCOL-3625 Rename packages
Rename packages to MariaDB-columnstore-engine, MariaDB-columnstore-libs
and MariaDB-columnstore-platform.

Also add the "columnstore-" prefix the the components so that MariaDB's
packaging system understands then and add a line to include them in
MariaDB's packaging.

In addition
* Fix S3 building for dist source build
* Fix Debian 10 dependency issue
* Fix git handling for dist builds
* Add support for MariaDB's RPM building
* Use MariaDB's PCRE and readline
* Removes a few dead files
* Fix Boost noncopyable includes
2019-12-04 11:04:39 +00:00
a8cd34f86d Add support for building from server 2019-12-03 21:21:28 +00:00
e072bf9e9b MCOL-3628 Move I_S tables into main handler lib
The I_S tables are all now in ha_columnstore.so
2019-12-03 21:21:28 +00:00
9f89ab0559 MCOL-3627 Fix library name
The ColumnStore library is now called ha_columnstore.so to be inline
with other storage engines.
2019-12-03 21:21:28 +00:00
3fabf01e93 MCOL-3593 Disabled full optimizer run and enabled copy-pasted simplify_joins.
Disabled 4th if block in buildOuterJoin to handle non-optimized MDB query
    structures.

    Broke getSelectPlan into pieces: processFrom, processWhere.

MCOL-3593 UNION processing depends on two flags isUnion that comes as
arg of getSelectPlan and unionSel that is a local variable in
getSelectPlan. Modularization of getSelectPlan broke the mechanizm.
This patch is supposed to partially fix it.

MCOL-3593 Removed unused if condition from buildOuterJoin that allows
unsupported construct subquery in ON expression.
Fixed an improper if condition that ignors tableMap entries w/o condition
in external_lock thus external_lock doesn't clean up when the query
finishes.
Fixed wrong logging for queries processed in tableMode. Now rnd_init
properly sends queryText down to ExeMgr to be logged.

MCOL-3593 Unused attribute FromSubQuery::fFromSub was removed.
 getSelectPlan has been modularized into: setExecutionParams,
 processFrom, processWhere. SELECT, HAVING, GROUP BY, ORDER BY
 still lives in getSelectPlan.
Copied optimization function simplify_joins_ into our pushdown
 code to provide the plugin code with some rewrites from MDB it
 expects.
The columnstore_processing_handlers_fallback session variable
 has been removed thus CS can't fallback from SH to partial
 execution paths, e.g. DH, GBH or plugin API.

MCOL-3602 Moved MDB optimizer rewrites into a separate file.

Add SELECT_LEX::optimize_unflattened_subqueries() call to fix IN
 into EXISTS rewrite for semi-JOINs with subqueries.

disable_indices_for_CEJ() add index related hints to disable
 index access methods in Cross Engine Joins.

create_SH() now flattens JOIN that has both physical tables and
 views. This fixes most of views related tests in the regression.
2019-11-25 10:03:32 -06:00
8ab9ebb0f4 MCOL-3606 Make ColumnStore use generic paths
ColumnStore now uses standard bin/lib paths for pretty much everything.
Data path is now hard-coded to /var/lib/columnstore.

This patch also:

* Removes v1 decompression
* Removes a bunch of unneeded files
* Removes COLUMNSTORE_INSTALL_DIR / $INSTALLDIR
* Makes my.cnf.d work for all platforms (MCOL-3558)
* Changes configcpp to use recursive mutex (fixes possible config write deadlock)
* Fixes MCOL-3599 Fix regr functions, The library was installed in the wrong location
* Fixes a bunch of Ubuntu packaging issues
* Changes the binary names of several of the executables so as not to
clash with potential executables from other packages
2019-11-09 16:53:05 +00:00
ebb22a96a3 MCOL-3551 Use generic MariaDB Server paths
This branch enforces the use of generic MariaDB server paths for their
binaries and data rather than custom paths.

/usr/local/mariadb/columnstore is now only for columnstore with this
patch.

It should be noted that this removes the auto-mounting of external
MariaDB UM data storage for AWS.

This is also a fix for MCOL-3510 after buildbot changes are made.

Also... MCOL-3552 Use columnstore.cnf to load plugins

The ColumnStore plugins now load using a columnstore.cnf instead of a
SQL sequence to be more in-line with MariaDB's methods.
2019-10-13 09:34:37 +01:00
c8df46ed26 Replace ha_calpont with ha_mcs in the source code and filenames in the plugin code. 2019-10-11 17:33:43 +00:00
12cb5201ac MCOL-2178 Separate ha_mcs_pushdown.cpp compilation.
Set a proper type for string literals on ConstantColumn ctor
to fix the regression produced by MCOL-174.

Removed OPTIMIZER_SWITCH_EXISTS_TO_IN b/c MDB produces
unsupported optimization with it and CS couldn't create
ExistsFilter.
2019-10-07 03:12:37 -05:00
74d68b4db3 Fix my.cnf clash
This patch:

* Moves ColumnStore my.cnf to /etc/my.cnf.d/columnstore.cnf
* Removes unneeded entries from columnstore.cnf
* Removes some things that used my.cnf and are now dead
* Also removes utils/scenarios
* Modifies things that use extra defaults file to use the standard one
* Makes sure that C++11 standard is used for older CMake versions

With this patch we no longer need to set -DINSTALL_SYSCONF2DIR and
-DINSTALL_SYSCONFDIR when building MariaDB server.
2019-09-04 18:51:02 +01:00
2c63258537 MCOL-2178 SH now allows to fallback to other pushdown handlers.
SH query execution migrated from SH::init() into create_SH().
There is a session variable columnstore_processing_handlers_fallback
that allows to fallback to DH, GBH if SH fails. DH now uses semantic
tree check for unsupported features to allow to fallback to GBH or
storage API.

Fixes GBH related bug when create_GBH() returns a handler for
queries with impossible WHERE/HAVING.

Fixed bug in FromSubquery::transform() where isUnion is set to true.

Enabled RTTI b/c server team enabled it for MDB.

Removed unused code supposed to be used with vtable.
2019-08-25 04:05:59 +03:00
f0c83a4a1f MCOL-2178 Enable GBH by default.
We preserve union related condition blocks until UNION-capable smart handler.

    Removed a number of commented code blocks.

    Add projection list REAL and TIME constants, e.g
        SELECT TIME'10:20:30',  TIMESTAMP'2001-01-01 10:20:30',  DATE'2001-01-01' FROM cs1;

    Marked potentially useless block in ORDER BY processing for future removal.

    Removed string variables used for reconstructed query in the pre-1.4 fork.

    Removed cp_get_plan().

    GBH doesn't step in if SH processes the query.

    All smart handlers now correctly processes impossible WHERE and HAVING.
2019-08-12 21:02:32 +03:00
2071716ebd MCOL-2121 New derived_handler(MDEV-17096) infrastructure.
Renamed isInfiniDB() into isMCSTable

    Changed getSelectPlan() to reuse it with derived and
        other handler types.

    Separate pushdown handlers methods and functions.

    Removed vcxproj files from the source.

    Added fix for MCOL-2166.

    Merged with MCOL-2121
2019-08-01 12:54:17 -04:00
138a6c5592 move cmake scripts to cmake folder
add boost super build project (currently disabled)
declare BOOST_NO_CXX11_SCOPED_ENUMS on projects that use boost::filesystem
2019-04-19 11:00:43 -05:00
06696f596a MCOL-1101 Add plugin variables to replace the legacy system vars.
Legacy system vars with names infinidb_* was preserved for
    backward compatibility and they will be used if
    columnstore_use_legacy_vars variable is set.

    Remove unused structure and plugin variable.
2019-02-18 16:13:50 +03:00
d22183e195 MCOL-1101 Move client UDFs into a separate file.
Remove rmParms from ha_calpont_impl.cpp
2019-02-13 22:09:55 +03:00
971055a473 MCOL-1101. PoC for INFINIDB_VTABLE and thd variables migration to plugin sys variables. 2019-02-13 22:09:55 +03:00
443a2867c4 MCOL-1385 Initial 10.3 support 2018-08-02 14:55:01 +01:00
458f445629 MCOL-763 Remove dumpcat.pl
Dumpcat was trying to pull in Perl's MySQL DBD as a dependency in RPM
builds. For 1.1 this causes conflicts so we can't do this. There are
alternative tools in ColumnStore to do the same thing as dumpcat.pl and
the SQL files are still there which is what the support tool uses.
2017-07-05 07:42:32 +01:00
b070ef3217 MCOL-597 some clean up and make Release builds work 2017-04-21 09:48:59 -05:00
a3c4503bc9 MCOL-597 stabilization 2017-04-21 09:47:56 -05:00
3b1de94cd8 MCOL-406 Improved Information Schema
* Add INFORMATION_SCHEMA.COLUMNSTORE_FILES which contains information
  about files
* Remove file information from COLUMNSTORE_EXTENTS (due to above)
* Hide columns with Object ID < 3000 (internal columns)
* Fix bad calculation in data_size columns
* Fix minor memory leak
* Add compressedSize() function to IDBFileSystem to get the used file
  size for a compressed file
* Add columnstore_info schema with utility stored procedures to access
  the information_schema tables
2016-11-23 22:11:26 +00:00
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
3d91ac193c Merge branch 'develop' of git://github.com/mariadb-corporation/mariadb-columnstore-engine into MCOL-97 2016-09-22 18:50:59 -05:00