diff options
author | unknown <mikef@nslinux.bedford.progress.com> | 2001-03-21 15:34:16 -0500 |
---|---|---|
committer | unknown <mikef@nslinux.bedford.progress.com> | 2001-03-21 15:34:16 -0500 |
commit | b4098ead8324790a52a70b4b35a3e83bc4c7ed54 (patch) | |
tree | 5306fccfc0c0c42aabf0e2dd6bf883cdecc3ed03 /sql/records.cc | |
parent | 4b56b0ee43843dae2f5503718bd851f8debbd561 (diff) | |
download | mariadb-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.cc | 13 |
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)); } |