1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-08 14:22:09 +03:00
Commit Graph

1086 Commits

Author SHA1 Message Date
Roman Nozdrin
d62b66ecf7 parse_item() in execplan code now always get an actual GWI structure
to avoid accedental crashes.

Add check for Conversion of Big IN Predicates Into Subqueries optimization
conditions.

Enabled derivedTableOptimization() for group by and derived handlers.

Disabled Conversion of Big IN Predicates Into Subqueries optimization.

Disabled most of optimizer_flags for now.

RowGroup + operator now correctly sets useStringTable flag that
instructs code to check StringStore instead of plain data buffer.
2019-08-01 14:29:55 -04:00
Roman Nozdrin
7d5275e1bd MCOL-2178 CS now doesn't initiate a scan when MDB explicitly set scan to false in rnd_init().
sortItemIsInGroupRec() now has a base case for Item_Field and this prevents unbound recursion.

    Fixes fromSub() call with incorrect number of arguments.

    CS now doesn't ask for statistics unless a user explicitly asks for it using calsettrace().
2019-08-01 14:29:55 -04:00
Roman Nozdrin
a9c72675ba MCOL-2178 Fixed MDB crash with setError() operating with empty gwi.
FromSubQuery() is no pushdown aware.

    Actualize OUTER_JOIN_DEBUG section in ha_calpont_execplan.cpp
    to be used with 10.4.

    Enabled derivedTableOptimization() for select handler.
2019-08-01 14:29:55 -04:00
Roman Nozdrin
3074b6c4b3 MCOL-2178 Functions with constant args are processed by CS now.
Fix crash in ha_calpont_impl_close_connection()

    Fix leak in ci.tableMap.

    Removed extra returns in pushdown_init to avoid crashes.

    create_select_handler now detects INSERT..SELECT.

    buildConstColFromFilter now uses any kind of filter to supply
    relevant columns.

    Remove strings used by vtable redo phase.

    Make FromSubQuery aware of Pushdown handlers.

    Changed debug_walk to work around changed Item framework.

    Temporary disabled derived handler and unsupported features checks.
2019-08-01 14:09:35 -04:00
Roman Nozdrin
b4d1cbc529 MCOL-2178 upstream merge forces to add explicit namespaces.
Add a magic value check to avoid cleanup procedures only
    if needed.
2019-08-01 14:09:35 -04:00
Roman Nozdrin
c297ceb6c1 MCOL-2178 Connector code now uses separate hton for columnstore engine.
CS now uses hton->close_connection() method to release all FEP
    connections from MDB to ExeMgr.

    Refactor fetchNextRow() to remove decimal and double precision
    changes.
2019-08-01 14:09:35 -04:00
Roman Nozdrin
5409eed6f5 MCOL-2178 Introduced a dummy replacement for a infinidb_table.
Used Item attribute getters introduced by 10.4

    Make changes to support Item::CONST_ITEM introduced by 10.4
    as a replacement for INT_,REAL_,STRING_ ITEM.

    Replaced QT_INFINIDB_DERIVED and similar flags
    with correponded flags for Item->print().

    Replaced or commented out infinidb_ variable names with columnstore_
    where applicable.

    Fixed an impossible precision typo.
2019-08-01 14:09:35 -04:00
Roman Nozdrin
cd72326c4d MCOL-2178 Introduced a dummy replacement for a infinidb_table.
Used Item attribute getters introduced by 10.4

    Make changes to support Item::CONST_ITEM introduced by 10.4
    as a replacement for INT_,REAL_,STRING_ ITEM.

    Replaced QT_INFINIDB_DERIVED and similar flags
    with correponded flags for Item->print().

    Replaced or commented out infinidb_ variable names with columnstore_
    where applicable.
2019-08-01 14:09:35 -04:00
Roman Nozdrin
6fd5b2f22d MCOL-2178 Merging with 10.4
SELECT_LEX had been moved in THD so changed all references.
        Avoid writing CS decimal scales into MDB decimal fields
            d-only dec attribute. WIP
        Replaced infinidb_vtable with a singleton MIGR.
        Merged with MCOL-2121.
        Added new wsrep include paths needed by UDaF code.
        Removed .vcxproj from Connector code.
2019-08-01 12:54:17 -04:00
Roman Nozdrin
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
David Hall
765d1d38d4 MCOL-174 Handle quoted numerics 2019-07-31 13:58:50 -05:00
Andrew Hutchings
83a8924229 Fix namespace and class changes 2019-07-29 13:48:28 +01:00
Andrew Hutchings
811909aa72 Merge branch 'develop-1.2' into develop-merge-up-20190729 2019-07-29 12:19:26 +01:00
Andrew Hutchings
a627611378 Revert "MCOL-2243 Only set length and dec when dec is zero"
This reverts commit b05c4e8df4.
2019-07-11 13:32:44 +01:00
Andrew Hutchings
6219486607 MCOL-3399 Fix VARCHAR LDI length processing
Accidentally passed the wrong number of bytes when processing the row
provided in LDI. Revert the buf increment code.
2019-07-10 11:09:40 +01:00
David.Hall
5bb388842c Merge pull request #794 from mariadb-corporation/MCOL-3391
MCOL-3391 Fix columnstore_upgrade unicode support
2019-06-25 15:40:56 -05:00
Andrew Hutchings
089ec7d4dc MCOL-3391 Fix columnstore_upgrade unicode support
The columnstore_upgrade() procedure would break on utf8 table names.
This patch fixes that.
2019-06-25 17:15:30 +01:00
Andrew Hutchings
cddb776bd4 Merge branch 'develop-1.1' into develop-1.2-merge-up-20190619 2019-06-19 18:34:43 +01:00
Andrew Hutchings
b05c4e8df4 MCOL-2243 Only set length and dec when dec is zero
Length and dec for columns only needs to be set when it is the result of
a function. Otherwise it could lead to odd side-effects in MariaDB.
2019-06-18 16:13:50 +01:00
Andrew Hutchings
7d22a5945c MCOL-1989 Fix view in view subquery outer join
A view calling a view as part of a subquery outer join was not getting
the view name for the derived table columns. Which caused ColumnStore to
think it was joining outside of the view and triggered a missing column
error.

This fix adds the view name from the subquery if one cannot be obtained
from the field object.
2019-06-14 15:52:30 +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
5e4f1b9933 Merge branch 'develop' into MCOL-265 2019-06-10 13:58:03 +01:00
Roman Nozdrin
e12a2acd53 MCOL-537 Regression test doesn't tolerate 'failed' in stderr, stdout.
I reformulate the messages.

    Changed version in preprocessor conditions to avoid compilation
    warnings in Debian 9.

    Disabled sign-compare check for generated files in DML/DDL.
2019-05-20 18:30:52 +03:00
Andrew Hutchings
45df72a416 Fix issue during merge 2019-05-14 14:36:46 +01:00
Andrew Hutchings
ee6575b013 Merge branch 'develop-1.1' into develop-1.2-merge-up-20190514 2019-05-14 14:26:41 +01:00
Andrew Hutchings
020b211bb7 Merge branch 'develop-1.2' into develop-merge-up-20190514 2019-05-14 13:58:33 +01:00
Roman Nozdrin
7e2cb05624 MCOL-537 There are no CS-specific warnings building with gcc 8.2. 2019-05-07 16:00:05 +03:00
Sergey Sedov
12d9e2ec95 fixup! MCOL-2051: CS uses 'NULL' literal as NULL when UPDATEs varchar field
Fixed to retain compatibility with CentOS 6 (no C++11 support).
Moved initialization to the ColumnAssignment constructor.
2019-05-02 10:16:45 +03:00
Sergey Sedov
83aad0c7b1 MCOL-2051: CS uses 'NULL' literal as NULL when UPDATEs varchar field: proxying NULL value. Note: empty strings are still considered NULLs later on. 2019-04-30 13:59:00 +03:00
Roman Nozdrin
9dc33c4e82 Another try to cope with warnings under gcc 8.2. 2019-04-29 11:05:03 +03:00
David Mott
4b9d046c6e Fully resolve potentially ambiguous symbols by removing using namespace statements from headers which have a cascading effect. This causes potential behavior changes when switching to c++11 since symbols can be exported from std and boost while both have been imported into the global namespace. 2019-04-29 01:21:15 -05:00
Andrew Hutchings
1813add162 Merge pull request #743 from davidjmott/develop
Add -DSERVER_BUILD_DIR configure parameter to interrogate the server …
2019-04-26 14:02:20 +01:00
David Mott
e65f80f493 delete visual c++ project files. cmake can generate these if needed 2019-04-25 23:35:03 -05:00
Andrew Hutchings
291fbac506 Fix merge issue 2019-04-25 10:51:02 +01:00
Andrew Hutchings
784bbe09d4 Merge branch 'develop-1.2' into develop-merge-up-20190425 2019-04-25 10:27:59 +01:00
Roman Nozdrin
f4f053dd8c MCOL-3267 CS now executes sorting inside UNION ALL sub-selects. 2019-04-23 14:34:49 +03:00
Roman Nozdrin
ee83287c32 Merge pull request #735 from davidjmott/branches/davidjmott/enable-stdcxx11
Enable c++11 support.
2019-04-23 14:20:47 +03:00
Gagan Goel
e89d1ac3cf MCOL-265 Add support for TIMESTAMP data type 2019-04-23 00:00:09 -04:00
David Mott
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
Roman Nozdrin
287b2ba7bd MCOL-3247 CS uses thread plugin variables since MCOL-1101 that aren't
good for transmiting cal_connection_info to handler::close_connection().
This variables are then erased in THD::cleanup() and the cal_connection_info
is replaced in handler::delete_table with an empty structure.
handler::close_connection() recevies cal_connection_info with empty cal_conn_hndl.
This patch uses THD::ha_data that is supposed to be used in such occasions.
2019-04-15 19:31:12 +03:00
Andrew Hutchings
f9f966fe96 MCOL-593 Add optional MariaDB replication support
This patch will allow MariaDB replication into UM1 when enabling the
following is added to the SystemConfig section of Columnstore.xml:

<ReplicationEnabled>Y</ReplicationEnabled>

The intended use case is to replication from an InnoDB MariaDB server
into ColumnStore. You would need to create the tables on the ColumnStore
slave as "ColumnStore" and the same tables in the master as InnoDB.

At the moment the use case is narrow and could be prone to problems so
this will use the hidden flag until we can improve it.
2019-04-15 14:45:34 +01:00
Roman Nozdrin
34b1d44563 MCOL-3247 Add two utility functions to simplify the code:
to log the messages and to forcely close the FEP connection.
2019-04-15 12:37:04 +03:00
Andrew Hutchings
6f15c97591 MCOL-2061 Add upgrade path to rebuild FRM files
A major upgrade (1.1 -> 1.2 for example) may have issues due to stale
FRM table IDs. This commit adds a stored procedure that changes the
table comment to empty on every ColumnStore table to repair the IDs.

The user should run this as part of the upgrade procedure between major
versions.
2019-04-04 15:32:38 +01:00
Andrew Hutchings
064d2ee9e4 Merge branch 'develop-1.2' into develop-merge-up-20190328 2019-03-28 15:09:21 +00:00
Roman Nozdrin
d4c4a10512 MCOL-1883 This commit fixes RENAME behavior that doesn't work properly with table
names that contains '/' sign in the middle. Given the name `some/table/` in to or
from. RENAME uses a prefix to the left of the first '/', namely `some` and doesn't
consider the trailer `/table/`.
2019-03-13 13:14:26 +03:00
Roman Nozdrin
26e61546bd Merge pull request #705 from drrtuy/MCOL-2160
MCOL-2160 MCOL-1883 RENAME now supports both '/' symbols in table names and crash described in MCOL-1883 has been fixed.
2019-03-07 15:08:18 +05:30
David Hall
e9a920b4e8 MCOL-1951 Don't crash when MariaDB UDAF not defined in Columnstore 2019-03-06 13:57:49 -06:00
Andrew Hutchings
6ba299cccd Merge branch 'develop-1.2' into MCOL-1822-c 2019-03-06 06:47:46 -05:00
Roman Nozdrin
79aca9a285 MCOL-2160 MCOL-1883 RENAME now supports both '/' symbols in table names and
doesn't crash on multi-RENAME statements when non-alphanumeric
    chars are presented in table names.

    Replaced INFINIDB_DEBUG with MCS_DEBUG in ha_calpont_ddl.cpp

    Removed unused debug outputs.
2019-03-06 12:55:53 +03:00
David Hall
0ea4ccfe06 MCOL-1822 colWidth should be sizeof(long double), not hardcoded 16 2019-03-05 09:49:11 -06:00