summaryrefslogtreecommitdiff
path: root/sql/records.cc
diff options
context:
space:
mode:
authorunknown <mikef@nslinux.bedford.progress.com>2001-03-21 15:34:16 -0500
committerunknown <mikef@nslinux.bedford.progress.com>2001-03-21 15:34:16 -0500
commitb4098ead8324790a52a70b4b35a3e83bc4c7ed54 (patch)
tree5306fccfc0c0c42aabf0e2dd6bf883cdecc3ed03 /sql/records.cc
parent4b56b0ee43843dae2f5503718bd851f8debbd561 (diff)
downloadmariadb-git-b4098ead8324790a52a70b4b35a3e83bc4c7ed54.tar.gz
Add support for Gemini table handler, Monty has checked and approved
Fix bug when read return error acconfig.h: Add Gemini to configure acinclude.m4: Add Gemini to configure include/my_base.h: Add error codes for tables handlers mysql-test/t/select.test: Force temporary tables to MyISAM sql-bench/server-cfg.sh: Allow Gemini to run sql-bench sql/Makefile.am: Add Gemini to configure sql/handler.cc: Add support for Gemini table handler sql/handler.h: Add support for Gemini table handler sql/lex.h: Add support for Gemini table handler sql/mysqld.cc: Add support for Gemini table handler sql/opt_range.cc: Fix bug when read return error sql/records.cc: Fix bug when read return error sql/sql_class.cc: Add support for Gemini table handler sql/sql_class.h: Add support for Gemini table handler sql/sql_lex.h: Add support for Gemini table handler sql/sql_rename.cc: Add commit for table rename sql/sql_table.cc: Add commit for table rename BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql/records.cc')
-rw-r--r--sql/records.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/records.cc b/sql/records.cc
index e6f76e7fec6..56e0536e75a 100644
--- a/sql/records.cc
+++ b/sql/records.cc
@@ -164,25 +164,30 @@ static int rr_sequential(READ_RECORD *info)
static int rr_from_tempfile(READ_RECORD *info)
{
+ int tmp;
+tryNext:
if (my_b_read(info->io_cache,info->ref_pos,info->ref_length))
return -1; /* End of file */
- int tmp=info->file->rnd_pos(info->record,info->ref_pos);
+ tmp=info->file->rnd_pos(info->record,info->ref_pos);
if (tmp)
{
if (tmp == HA_ERR_END_OF_FILE)
tmp= -1;
+ else if (tmp == HA_ERR_RECORD_DELETED)
+ goto tryNext;
else if (info->print_error)
info->file->print_error(tmp,MYF(0));
}
return tmp;
} /* rr_from_tempfile */
-
static int rr_from_pointers(READ_RECORD *info)
{
+ byte *cache_pos;
+tryNext:
if (info->cache_pos == info->cache_end)
return -1; /* End of file */
- byte *cache_pos=info->cache_pos;
+ cache_pos=info->cache_pos;
info->cache_pos+=info->ref_length;
int tmp=info->file->rnd_pos(info->record,cache_pos);
@@ -190,6 +195,8 @@ static int rr_from_pointers(READ_RECORD *info)
{
if (tmp == HA_ERR_END_OF_FILE)
tmp= -1;
+ else if (tmp == HA_ERR_RECORD_DELETED)
+ goto tryNext;
else if (info->print_error)
info->file->print_error(tmp,MYF(0));
}