mariadb/sql/ha_heap.h
unknown 52046a7ba3 Bug fixes for 3.23.23
myisam/mi_debug.c:
  ***MISSING WEAVE***
Docs/internals.texi:
  Added coding guidelines
Docs/manual.texi:
  Changelog update + Win32 -> Windows
client/mysql.cc:
  Changed --no-named-commands to be on by default
client/mysqlimport.c:
  Bug fix
include/config-win.h:
  Update of supported functions
include/global.h:
  Removed compiler warning
libmysql/libmysql.c:
  Fix for Ia64
myisam/ChangeLog:
  Changelog
myisam/Makefile.am:
  Added file mi_dbug.c
myisam/ft_stopwords.c:
  Fix for Ia64
myisam/mi_delete_table.c:
  Extra debugging
myisam/mi_rename.c:
  Extra debugging
myisam/mi_rnext.c:
  Fixed bug with MIN and concurrent insert
myisam/mi_rprev.c:
  Fixed bug with MAX and concurrent insert
myisam/mi_search.c:
  Fixed bug with DECIMAL/NUMERIC keys
myisam/myisamdef.h:
  Extra debugging
scripts/make_binary_distribution.sh:
  Added thread safe mysql library
sql/ha_heap.cc:
  Fix of HEAP bug with range keys
sql/ha_heap.h:
  Fix of HEAP bug with range keys
sql/handler.cc:
  Optimizing
sql/handler.h:
  Optimizing
sql/lock.cc:
  More DEBUG + fix of RENAME bug
sql/mini_client.cc:
  Fix for Ia64
sql/mysql_priv.h:
  Fix for name locks
sql/mysqld.cc:
  Shorter message if wrong options
sql/opt_range.cc:
  Added TODO
sql/sql_base.cc:
  Fix for DROP TABLE
sql/sql_parse.cc:
  Fix of permission checking for CHECK TABLE
sql/sql_select.cc:
  Fix of using LEFT JOIN with empty table
sql/table.h:
  Fix for name locks
tests/fork_test.pl:
  Fixed typo
2000-08-29 12:31:01 +03:00

86 lines
3 KiB
C++

/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifdef __GNUC__
#pragma interface /* gcc class implementation */
#endif
/* class for the the heap handler */
#include <heap.h>
class ha_heap: public handler
{
HP_INFO *file;
public:
ha_heap(TABLE *table): handler(table), file(0) {}
~ha_heap() {}
const char *table_type() const { return "HEAP"; }
const char **bas_ext() const;
ulong option_flag() const
{ return (HA_READ_RND_SAME+HA_NO_INDEX+HA_BINARY_KEYS+HA_WRONG_ASCII_ORDER+
HA_KEYPOS_TO_RNDPOS+HA_NO_BLOBS+HA_REC_NOT_IN_SEQ); }
uint max_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_keys() const { return MAX_KEY; }
uint max_key_parts() const { return MAX_REF_PARTS; }
uint max_key_length() const { return HA_MAX_REC_LENGTH; }
virtual double scan_time() { return (double) (records+deleted) / 100.0; }
virtual double read_time(ha_rows rows) { return (double) rows / 100.0; }
virtual bool fast_key_read() { return 1;}
int open(const char *name, int mode, int test_if_locked);
int close(void);
int write_row(byte * buf);
int update_row(const byte * old_data, byte * new_data);
int delete_row(const byte * buf);
int index_read(byte * buf, const byte * key,
uint key_len, enum ha_rkey_function find_flag);
int index_read_idx(byte * buf, uint idx, const byte * key,
uint key_len, enum ha_rkey_function find_flag);
int index_next(byte * buf);
int index_prev(byte * buf);
int index_first(byte * buf);
int index_last(byte * buf);
int rnd_init(bool scan=1);
int rnd_next(byte *buf);
int rnd_pos(byte * buf, byte *pos);
void position(const byte *record);
void info(uint);
int extra(enum ha_extra_function operation);
int reset(void);
int external_lock(THD *thd, int lock_type);
int delete_all_rows(void);
ha_rows records_in_range(int inx, const byte *start_key,uint start_key_len,
enum ha_rkey_function start_search_flag,
const byte *end_key,uint end_key_len,
enum ha_rkey_function end_search_flag);
int delete_table(const char *from);
int rename_table(const char * from, const char * to);
int create(const char *name, TABLE *form, HA_CREATE_INFO *create_info);
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
enum thr_lock_type lock_type);
};