Commit graph

18 commits

Author SHA1 Message Date
Sergei Golubchik
e6d51aac77 MDEV-9550 COUNT(NULL) returns incorrect result with sequence storage engine
when calculating COUNT(basic_const), take into account that
this basic_const may be NULL
2016-02-23 10:54:35 +01:00
Sergei Golubchik
8f60656fd5 MDEV-9039 Can't upgrade MariaDB to to 10.1.8 version from 10.0.21
Don't mark the SEQUENCE engine as XA-capable. The engine never
registers itself for any transaction, so it doesn't matter
whether it is XA-capable or not. The only effect of being
"XA-capable" is breaking the "number of XA-capable engines"
check of TC_LOG_MMAP.
2015-11-16 07:55:55 +01:00
Sergei Golubchik
21175bb316 Don't use flags in the group_by_handler class
instead pass the whole query down and let the engine return
unsupported parts back
2015-10-05 17:14:15 +02:00
Sergei Golubchik
c93ac0a1c6 cleanups and simplifications 2015-10-05 17:14:15 +02:00
Sergei Golubchik
7ca8b4bbfa move internal API out from group_by_handler
into a Pushdown_query object
2015-10-05 17:14:15 +02:00
Sergei Golubchik
9ca3d9ea9c remove unused method 2015-10-05 17:14:15 +02:00
Sergei Golubchik
e8daa41885 typos in comments, minor stylistic edits 2015-10-05 17:14:14 +02:00
Monty
cf50e13fbd MDEV-6080: Allowing storage engine to shortcut group by queries
This task is to allow storage engines that can execute GROUP BY or
summary queries efficiently to intercept a full query or sub query from
MariaDB and deliver the result either to the client or to a temporary
table for further processing.

- Added code in sql_select.cc to intercept GROUP BY queries.
  Creation of group_by_handler is done after all optimizations to allow
  storage engine to benefit of an optimized WHERE clause and suggested
  indexes to use.
- Added group by handler to sequence engine and a group_by test suite as
  a way to test the new interface.
- Intercept EXPLAIN with a message "Storage engine handles GROUP BY"

libmysqld/CMakeLists.txt:
  Added new group_by_handler files
sql/CMakeLists.txt:
  Added new group_by_handler files
sql/group_by_handler.cc:
  Implementation of group_by_handler functions
sql/group_by_handler.h:
  Definition of group_by_handler class
sql/handler.h:
  Added handlerton function to create a group_by_handler, if the storage
  engine can intercept the query.
sql/item_cmpfunc.cc:
  Allow one to evaluate item_equal any time.
sql/sql_select.cc:
  Added code to intercept GROUP BY queries
  - If all tables are from the same storage engine and the query is
    using sum functions, call create_group_by() to check if the storage
    engine can intercept the query.
    - If yes:
       - create a temporary table to hold a GROUP_BY row or result
       - In do_select() intercept normal query execution by instead
         calling the group_by_handler to get the result
       - Intercept EXPLAIN
sql/sql_select.h:
  Added handling of group_by_handler
  Added caching of the original join tab (needed for cleanup after
  group_by handler)
storage/sequence/mysql-test/sequence/group_by.result:
  Test group_by_handler interface
storage/sequence/mysql-test/sequence/group_by.test:
  Test group_by_handler interface
storage/sequence/sequence.cc:
  Added simple group_by_engine for handling COUNT(*) and
  SUM(primary_key).  This was done as a test of the group_by_handler
  interface
2015-10-05 17:14:14 +02:00
Sergei Golubchik
1b75bed00f 5.5.40+ merge 2014-10-09 10:30:11 +02:00
Sergei Golubchik
55b010233a promote server_audit and sequence plugins to stable 2014-06-13 13:25:32 +02:00
Sergei Golubchik
94c97e5b68 update plugins' maturity levels:
old plugins get STABLE
newer plugins get GAMMA
those that had bugs recently get BETA
2014-03-19 09:56:46 +01:00
Sergei Golubchik
1b608b0b9c MDEV-5735 Selecting from SEQUENCE table with negative number hangs server 2014-03-01 13:27:04 +01:00
Sergey Vojtovich
a31a371610 MDEV-4786 - merge 10.0-monty - 10.0
Fixed sql_discovery.simple failure.

storage/sequence/sequence.cc:
  Let sequence share class have unique name to avoid collision with other
  classes.
storage/test_sql_discovery/test_sql_discovery.cc:
  Let test_sql_discovery share class have unique name to avoid collision with
  other classes.
2013-07-24 16:51:48 +04:00
Sergey Vojtovich
6069e780dc MDEV-4786 - merge 10.0-monty → 10.0
Fixed sequence compilation failure.

storage/sequence/sequence.cc:
  Adjusted sequence according to:
  WL#4305 - storage-engine private data area per physical table.
2013-07-23 17:38:44 +04:00
Sergei Golubchik
e53b603f7c MDEV-4451 Attempt to write-lock a SEQUENCE table with log-bin enabled causes ER_BINLOG_ROW_ENGINE
mark the SEQUENCE engine as both SBR and RBR capable :)
2013-06-16 17:19:53 +02:00
Sergei Golubchik
08a1ac9d35 MDEV-4449 SEQUENCE depends on TEST_SQL_DISCOVERY for discovering tables upon DDL
implement a non-dummy discover_table_existence() method
2013-06-16 17:07:15 +02:00
Sergei Golubchik
60aed41222 fix internal plugin names 2013-04-09 16:19:10 +02:00
Sergei Golubchik
13b7bcd5d4 sequence engine 2013-04-09 16:17:16 +02:00