lp:~maria-captains/maria/5.3-dsmrr-cpk

Created by Sergey Petrunia and last modified
Get this branch:
bzr branch lp:~maria-captains/maria/5.3-dsmrr-cpk
Members of Maria-captains can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Maria-captains
Project:
MariaDB
Status:
Merged

Recent revisions

2842. By Sergey Petrunia

Include optimizer_unfixed_bugs testsuite in buildbot runs

2841. By Sergey Petrunia

Code cleanup

2840. By Sergey Petrunia

Code cleanup

2839. By Sergey Petrunia

MWL#121-124 DS-MRR support for key-ordered retrieval, etc
- Merge into 5.3-main

2838. By Igor Babaev

Fixed bug #665049.
The bug could cause wrong results for queries over Maria tables when
index condition pushdown was used.

2837. By Sergei Golubchik

5.2 merge

2836. By Timour Katchaounov

Fixed LP bug #613009

The set of Ordered keys of a rowid merge engine is dense. Thus when
we decide not to create a key for a column that has only NULLs, this
column shouldn't be counted.

Notice that the caller has already precomputed the correct total
number of keys that should be created.

2835. By Timour Katchaounov

Fixed LP bug #609121

Post-review fix - avoid re-evaluation of the having clause
when it evaluates to true.

2834. By Oleksandr "Sanja" Byelkin

Type of the variables fixed.

2833. By Timour Katchaounov

Fixed LP bug #601156

The cause for this bug is that MariaDB 5.3 still processes derived tables
(subqueries in the FROM clause) by fully executing them during the parse
phase. This will be remedied by MWL#106 once merged into the main 5.3.

The assert statement is triggered when MATERIALIZATION is ON for EXPLAIN
EXTENDED for derived tables with an IN subquery as follows:
- mysql_parse calls JOIN::exec for the derived table as if it is regular
  execution (not explain).
- When materialization is ON, this call goes all the way to
  subselect_hash_sj_engine::exec, which creates a partial match engine
  because of NULL presence.
- In order to proceed with normal execution, the hash_sj engine substitutes
  itself with the created partial match engine.
- After the parse phase it turns out that this execution was part of
  EXPLAIN EXTENDED, which in turn calls
  Item_cond::print -> ... -> Item_subselect::print,
  which calls engine->print().
  Since subselect_hash_sj_engine::exec substituted the current
  Item_subselect engine with a partial match engine, eventually we call
  its ::print() method. However the partial match engines are designed only
  for execution, hence there is no implementation of this print() method.

The fix temporarily removes the assert, until this code is merged with
MWL#106.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:maria/5.3
This branch contains Public information 
Everyone can see this information.