diff options
author | unknown <msvensson@neptunus.(none)> | 2006-05-10 20:01:35 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-05-10 20:01:35 +0200 |
commit | 10a0474e9ad5c3311b485c4b7f1e0ef83804d1b0 (patch) | |
tree | 631e46e8faac998ae7828a8e34b7c327cd3606e9 | |
parent | e95a7e88b7d77b5cb9302863ee7d31ee771bfb6c (diff) | |
parent | 741c257f489f2b79de5f11e96bbbe3a9df7f8163 (diff) | |
download | mariadb-git-10a0474e9ad5c3311b485c4b7f1e0ef83804d1b0.tar.gz |
Merge bk-internal:/home/bk/mysql-5.1-new
into neptunus.(none):/home/msvensson/mysql/mysql-5.1
-rw-r--r-- | config/ac-macros/plugins.m4 | 5 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | include/my_base.h | 2 | ||||
-rw-r--r-- | sql/opt_range.cc | 161 | ||||
-rw-r--r-- | unittest/examples/no_plan.t.c | 2 | ||||
-rw-r--r-- | unittest/examples/skip_all.t.c | 2 | ||||
-rw-r--r-- | unittest/examples/todo.t.c | 2 | ||||
-rw-r--r-- | unittest/mytap/t/basic.t.c | 2 |
8 files changed, 99 insertions, 79 deletions
diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 index c00741bcfc0..4bf9292547d 100644 --- a/config/ac-macros/plugins.m4 +++ b/config/ac-macros/plugins.m4 @@ -750,7 +750,10 @@ dnl --------------------------------------------------------------------------- AC_DEFUN([_MYSQL_INCLUDE_LIST],[ ifelse([$1], [], [], [ m4_define([__mysql_include__],[$1]) - sinclude($1) + dnl We have to use builtin(), because sinclude would generate an error + dnl "file $1 does not exists" in aclocal-1.8 - which is a bug, clearly + dnl violating m4 specs, and which is fixed in aclocal-1.9 + builtin([include],$1) m4_undefine([__mysql_include__]) _MYSQL_INCLUDE_LIST(m4_shift($@)) ]) diff --git a/configure.in b/configure.in index 054b01ba2b4..4f356971a49 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb -AM_INIT_AUTOMAKE(mysql, 5.1.10-beta) +AM_INIT_AUTOMAKE(mysql, 5.1.11-beta) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 diff --git a/include/my_base.h b/include/my_base.h index e014f7c33b7..0390106880a 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -340,7 +340,7 @@ enum ha_base_keytype { #define HA_ERR_WRONG_COMMAND 131 /* Command not supported */ #define HA_ERR_OLD_FILE 132 /* old databasfile */ #define HA_ERR_NO_ACTIVE_RECORD 133 /* No record read in update() */ -#define HA_ERR_RECORD_DELETED 134 /* Intern error-code */ +#define HA_ERR_RECORD_DELETED 134 /* A record is not there */ #define HA_ERR_RECORD_FILE_FULL 135 /* No more room in file */ #define HA_ERR_INDEX_FILE_FULL 136 /* No more room in file */ #define HA_ERR_END_OF_FILE 137 /* end in next/prev/first/last */ diff --git a/sql/opt_range.cc b/sql/opt_range.cc index e4eb6e8ab3f..9ab1063d6b2 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -4306,7 +4306,8 @@ TRP_ROR_INTERSECT *get_best_covering_ror_intersect(PARAM *param, DBUG_EXECUTE("info", print_ror_scans_arr(param->table, "building covering ROR-I", ror_scan_mark, ror_scans_end);); - do { + do + { /* Update changed sorting info: #covered fields, @@ -7387,64 +7388,69 @@ int QUICK_ROR_INTERSECT_SELECT::get_next() uint last_rowid_count=0; DBUG_ENTER("QUICK_ROR_INTERSECT_SELECT::get_next"); - /* Get a rowid for first quick and save it as a 'candidate' */ - quick= quick_it++; - if (cpk_quick) + do { - do { + /* Get a rowid for first quick and save it as a 'candidate' */ + quick= quick_it++; + if (cpk_quick) + { + do + { + error= quick->get_next(); + }while (!error && !cpk_quick->row_in_ranges()); + } + else error= quick->get_next(); - }while (!error && !cpk_quick->row_in_ranges()); - } - else - error= quick->get_next(); - if (error) - DBUG_RETURN(error); + if (error) + DBUG_RETURN(error); - quick->file->position(quick->record); - memcpy(last_rowid, quick->file->ref, head->file->ref_length); - last_rowid_count= 1; + quick->file->position(quick->record); + memcpy(last_rowid, quick->file->ref, head->file->ref_length); + last_rowid_count= 1; - while (last_rowid_count < quick_selects.elements) - { - if (!(quick= quick_it++)) + while (last_rowid_count < quick_selects.elements) { - quick_it.rewind(); - quick= quick_it++; - } - - do { - if ((error= quick->get_next())) - DBUG_RETURN(error); - quick->file->position(quick->record); - cmp= head->file->cmp_ref(quick->file->ref, last_rowid); - } while (cmp < 0); + if (!(quick= quick_it++)) + { + quick_it.rewind(); + quick= quick_it++; + } - /* Ok, current select 'caught up' and returned ref >= cur_ref */ - if (cmp > 0) - { - /* Found a row with ref > cur_ref. Make it a new 'candidate' */ - if (cpk_quick) + do + { + if ((error= quick->get_next())) + DBUG_RETURN(error); + quick->file->position(quick->record); + cmp= head->file->cmp_ref(quick->file->ref, last_rowid); + } while (cmp < 0); + + /* Ok, current select 'caught up' and returned ref >= cur_ref */ + if (cmp > 0) { - while (!cpk_quick->row_in_ranges()) + /* Found a row with ref > cur_ref. Make it a new 'candidate' */ + if (cpk_quick) { - if ((error= quick->get_next())) - DBUG_RETURN(error); + while (!cpk_quick->row_in_ranges()) + { + if ((error= quick->get_next())) + DBUG_RETURN(error); + } } + memcpy(last_rowid, quick->file->ref, head->file->ref_length); + last_rowid_count= 1; + } + else + { + /* current 'candidate' row confirmed by this select */ + last_rowid_count++; } - memcpy(last_rowid, quick->file->ref, head->file->ref_length); - last_rowid_count= 1; - } - else - { - /* current 'candidate' row confirmed by this select */ - last_rowid_count++; } - } - /* We get here iff we got the same row ref in all scans. */ - if (need_to_fetch_row) - error= head->file->rnd_pos(head->record[0], last_rowid); + /* We get here iff we got the same row ref in all scans. */ + if (need_to_fetch_row) + error= head->file->rnd_pos(head->record[0], last_rowid); + } while (error == HA_ERR_RECORD_DELETED); DBUG_RETURN(error); } @@ -7473,41 +7479,44 @@ int QUICK_ROR_UNION_SELECT::get_next() do { - if (!queue.elements) - DBUG_RETURN(HA_ERR_END_OF_FILE); - /* Ok, we have a queue with >= 1 scans */ + do + { + if (!queue.elements) + DBUG_RETURN(HA_ERR_END_OF_FILE); + /* Ok, we have a queue with >= 1 scans */ - quick= (QUICK_SELECT_I*)queue_top(&queue); - memcpy(cur_rowid, quick->last_rowid, rowid_length); + quick= (QUICK_SELECT_I*)queue_top(&queue); + memcpy(cur_rowid, quick->last_rowid, rowid_length); - /* put into queue rowid from the same stream as top element */ - if ((error= quick->get_next())) - { - if (error != HA_ERR_END_OF_FILE) - DBUG_RETURN(error); - queue_remove(&queue, 0); - } - else - { - quick->save_last_pos(); - queue_replaced(&queue); - } + /* put into queue rowid from the same stream as top element */ + if ((error= quick->get_next())) + { + if (error != HA_ERR_END_OF_FILE) + DBUG_RETURN(error); + queue_remove(&queue, 0); + } + else + { + quick->save_last_pos(); + queue_replaced(&queue); + } - if (!have_prev_rowid) - { - /* No rows have been returned yet */ - dup_row= FALSE; - have_prev_rowid= TRUE; - } - else - dup_row= !head->file->cmp_ref(cur_rowid, prev_rowid); - }while (dup_row); + if (!have_prev_rowid) + { + /* No rows have been returned yet */ + dup_row= FALSE; + have_prev_rowid= TRUE; + } + else + dup_row= !head->file->cmp_ref(cur_rowid, prev_rowid); + } while (dup_row); - tmp= cur_rowid; - cur_rowid= prev_rowid; - prev_rowid= tmp; + tmp= cur_rowid; + cur_rowid= prev_rowid; + prev_rowid= tmp; - error= head->file->rnd_pos(quick->record, prev_rowid); + error= head->file->rnd_pos(quick->record, prev_rowid); + } while (error == HA_ERR_RECORD_DELETED); DBUG_RETURN(error); } diff --git a/unittest/examples/no_plan.t.c b/unittest/examples/no_plan.t.c index 67029c7962f..98e4d06def6 100644 --- a/unittest/examples/no_plan.t.c +++ b/unittest/examples/no_plan.t.c @@ -1,4 +1,6 @@ +#include "my_config.h" + #include <stdlib.h> #include <tap.h> diff --git a/unittest/examples/skip_all.t.c b/unittest/examples/skip_all.t.c index bbde6b63f1c..19b8c1fddaf 100644 --- a/unittest/examples/skip_all.t.c +++ b/unittest/examples/skip_all.t.c @@ -1,4 +1,6 @@ +#include "my_config.h" + #include <stdlib.h> #include <tap.h> diff --git a/unittest/examples/todo.t.c b/unittest/examples/todo.t.c index 13a0c950b54..82601bee41c 100644 --- a/unittest/examples/todo.t.c +++ b/unittest/examples/todo.t.c @@ -1,4 +1,6 @@ +#include "my_config.h" + #include <stdlib.h> #include <tap.h> diff --git a/unittest/mytap/t/basic.t.c b/unittest/mytap/t/basic.t.c index eb820d6c651..95a77755347 100644 --- a/unittest/mytap/t/basic.t.c +++ b/unittest/mytap/t/basic.t.c @@ -1,4 +1,6 @@ +#include "my_config.h" + #include <stdlib.h> #include <tap.h> |