summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-05-10 20:01:35 +0200
committerunknown <msvensson@neptunus.(none)>2006-05-10 20:01:35 +0200
commit10a0474e9ad5c3311b485c4b7f1e0ef83804d1b0 (patch)
tree631e46e8faac998ae7828a8e34b7c327cd3606e9
parente95a7e88b7d77b5cb9302863ee7d31ee771bfb6c (diff)
parent741c257f489f2b79de5f11e96bbbe3a9df7f8163 (diff)
downloadmariadb-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.m45
-rw-r--r--configure.in2
-rw-r--r--include/my_base.h2
-rw-r--r--sql/opt_range.cc161
-rw-r--r--unittest/examples/no_plan.t.c2
-rw-r--r--unittest/examples/skip_all.t.c2
-rw-r--r--unittest/examples/todo.t.c2
-rw-r--r--unittest/mytap/t/basic.t.c2
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>