Commit dfb3e31c authored by serg@serg.mysql.com's avatar serg@serg.mysql.com
Browse files

Merge work:/home/bk/mysql into serg.mysql.com:/usr/home/serg/Abk/mysql

parents 37c41731 dfb1566f
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
heikki@donna.mysql.fi
jani@janikt.pp.saunalahti.fi
miguel@light.local
monty@hundin.mysql.fi
monty@tik.mysql.fi
monty@work.mysql.com
mwagner@evoq.mwagner.org
paul@central.snake.net
paul@teton.kitebird.com
sasha@mysql.sashanet.com
serg@serg.mysql.com
tim@threads.polyesthetic.msg
tim@white.box
jani@hynda.mysql.fi
jcole@tetra.spaceapes.com
davida@isil.mysql.com
tonu@x153.internalnet
tim@work.mysql.com
serg@serg.mysql.com
+11720 −11104

File changed.

Preview size limit exceeded, changes collapsed.

+11 −0
Original line number Diff line number Diff line
@@ -2351,6 +2351,7 @@ btr_estimate_n_rows_in_range(
	btr_path_t*	slot1;
	btr_path_t*	slot2;
	ibool		diverged;
	ulint           divergence_level;           
	ulint		n_rows;
	ulint		i;
	mtr_t		mtr;
@@ -2393,6 +2394,7 @@ btr_estimate_n_rows_in_range(

	n_rows = 1;
	diverged = FALSE;
	divergence_level = 1000000;
	
	for (i = 0; ; i++) {
		ut_ad(i < BTR_PATH_ARRAY_N_SLOTS);
@@ -2403,6 +2405,13 @@ btr_estimate_n_rows_in_range(
		if (slot1->nth_rec == ULINT_UNDEFINED
				|| slot2->nth_rec == ULINT_UNDEFINED) {

		        if (i > divergence_level + 1) {
		                /* In trees whose height is > 1 our algorithm
		                tends to underestimate: multiply the estimate
		                by 2: */

		                n_rows = n_rows * 2;
		        }
			return(n_rows);
		}

@@ -2417,6 +2426,8 @@ btr_estimate_n_rows_in_range(
				return(10);
			}

			divergence_level = i;

			diverged = TRUE;
		} else if (diverged) {
			n_rows = (n_rows * (slot1->n_recs + slot2->n_recs))
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ Created 11/11/1995 Heikki Tuuri
#include "ibuf0ibuf.h"
#include "log0log.h"
#include "os0file.h"
#include "trx0sys.h"

/* When flushed, dirty blocks are searched in neigborhoods of this size, and
flushed along with the original page. */
+1 −2
Original line number Diff line number Diff line
@@ -1698,8 +1698,7 @@ ibuf_contract(

	btr_pcur_open_at_rnd_pos(data->index, BTR_SEARCH_LEAF, &pcur, &mtr);

	if (data->size == 1
			&& 0 == page_get_n_recs(btr_pcur_get_page(&pcur))) {
	if (0 == page_get_n_recs(btr_pcur_get_page(&pcur))) {

		/* This tree is empty */
	    
Loading