- 08 Oct, 2015 3 commits
-
-
Alexander Barkov authored
- Moving Item_xxx_field declarations after Item_sum_xxx declarations, so Item_xxx_field constructors can be defined directly in item_sum.h rather than item_sum.cc. This removes some duplicate code, e.g. initialization of the following members at constructor time: name, decimals, max_length, unsigned_flag, field, maybe_null. - Adding Item_sum_field as a common parent for Item_avg_field and Item_variance_field - Deriving Item_sum_field directly from Item rather that Item_result_field, as Item_sum_field descendants do not need anything from Item_result_field. - Removing hybrid infrastructure from Item_avg_field, adding Item_avg_field_decimal and Item_avg_field_double instead, as desired result type is already known at constructor time (not only at fix_fields time). This simplifies the code. - Changing Item_avg_field_decimal::val_int() to call val_int_from_decimal() instead of doing { return (longlong) rint(val_real()); } This is the fix itself.
-
Alexander Barkov authored
infrastructure, though in fact they always return REAL result. Removing hybrid type artifacts.
-
Alexander Barkov authored
- MDEV-8875 Wrong metadata for MAX(CAST(time_column AS DATETIME)) - MDEV-8873 Wrong field type or metadata for LEAST(int_column,string_column) - MDEV-8912 Wrong metadata or type for @c:=string_or_blob_field Adding Item_hybrid_func as a common parent for Item_func_hybrid_field_type, Item_func_min_max, Item_func_user_var. This removes some duplicate code.
-
- 07 Oct, 2015 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 06 Oct, 2015 3 commits
-
-
Oleksandr Byelkin authored
backport mysql parser fixes 0034963fbf199696792491bcb79d5f0731c98804 5948561812bc691bd0c13cf518a3fe77d9daf920
-
Sergei Petrunia authored
The problem was that GROUP BY code created Item_field objects that referred to fields in the temp. tables used for GROUP BY. Item_ref and set_items_ref_array() call caused pointers to temp. table fields to occur in many places. This patch introduces Item_temptable_field, which can handle item->print() calls made after the underlying table is freed.
-
Jan Lindström authored
MDEV-8901: InnoDB: Punch hole is incorrecty done also to log files causing assertion and database corruption Analysis: Problem is that punch hole does not know the actual page size of the page and does the page belong to an data file or to a log file. Fix: Pass down the file type and page size to os layer to be used when trim is called. Also fix unsafe null pointer access to actual write_size.
-
- 05 Oct, 2015 24 commits
-
-
Alexey Botchkov authored
MDEV-7817 ALTER TABLE {ADD|DROP} INDEX IF [NOT] EXISTS does not get written into binlog if nothing to do. Just log the ALTER statement even if there's nothing to do.
-
Alexander Barkov authored
in case of STRING_RESULT to switch(cmp_type()).
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Daniel Black authored
-
Daniel Black authored
-
Sergei Golubchik authored
The assumption is that the engine should not need to evaluate HAVING on the table->record[0] - the engine either can evaluate HAVING internally before writing it to the table->record[0], or it should leave it to the server, that will evaluate HAVING(table->record[0]). Similarly the engine should not need to evaluate ORDER on the table->record[0]. Either it returns the data already sorted, or the server will sort the table.
-
Sergei Golubchik authored
instead pass the whole query down and let the engine return unsupported parts back
-
Sergei Golubchik authored
down to the point where all tables are already known (and subqueries converted to joins, if needed)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
into a Pushdown_query object
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Monty authored
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
-
Monty authored
-
Monty authored
-
Monty authored
-
Monty authored
-
Monty authored
Fixed compiler warnings sql/sql_view.cc: Ensure that merged_for_insert is properly reset (Left of an old patch)
-
Monty authored
if we didn't write the CREATE TEMPORARY TABLE statement. - Enable old code from one of my older changesets that didn't make into 10.0 - Fix test cased that failed as they expected DROP TEMPORARY TABLE in the log.
-
Sergei Petrunia authored
Remove debug printout that was accidentally left in place
-
Alexander Barkov authored
-
Jan Lindström authored
-
- 04 Oct, 2015 1 commit
-
-
Alexander Barkov authored
- Turning get_mm_tree_for_const() from a static function into a protected method in Item. - Adding a new class Item_bool_func2_with_rev, for the functions and operators that have a reverse function and can use the range optimizer for to optimize "value OP field" as "field REV_OP value". Deriving Item_bool_rowready_func2 and Item_funt_spatial_rel from the new class. - Removing Item_bool_func2::have_rev_func().
-
- 02 Oct, 2015 5 commits
-
-
Alexander Barkov authored
- Item_bool_func::get_func_mm_tree() - Item_bool_func::get_mm_parts() - Item_bool_func::get_ne_mm_tree()
-
Alexander Barkov authored
from Item_bool_func::get_mm_leaf() into Field_xxx::can_optimize_range(). This reduces the total amount of virtual calls. Also, it's a prerequisite change for the pluggable data types.
-
Jan Lindström authored
MDEV-8523: InnoDB: Assertion failure in file buf0buf.cc line 5963 (Failing assertion: key_version == 0 || key_version >= bpage->key_version)
-
Alexander Barkov authored
Item_ref::val_bool_result().
-
Nirbhay Choubey authored
Check if the engine is supported/allowed before replicating the statement.
-
- 01 Oct, 2015 2 commits
-
-
Alexander Barkov authored
-
Sergey Vojtovich authored
Fixed race condition in code filling INFORMATION_SCHEMA.PROCESSLIST.INFO_BINARY. When loading query string/length of another connection one must have LOCK_thd_data locked.
-