diff options
author | unknown <acurtis@xiphis.org> | 2005-12-21 10:18:40 -0800 |
---|---|---|
committer | unknown <acurtis@xiphis.org> | 2005-12-21 10:18:40 -0800 |
commit | 613dd50a33ac3e64073abdbdae66ce3a93e69e30 (patch) | |
tree | d777ca5871199d389af93e8cbe06e1bdbc16a10b /sql/examples/ha_tina.h | |
parent | 9c81773b37a5ec1a689632e3161ae6b9d1fdeb46 (diff) | |
download | mariadb-git-613dd50a33ac3e64073abdbdae66ce3a93e69e30.tar.gz |
Finalize storage engine plugins
Give BerkeleyDB savepoints
Remove "enum db_type" from most of the code
storage/example/ha_example.h:
Rename: sql/examples/ha_example.h -> storage/example/ha_example.h
storage/csv/ha_tina.h:
Rename: sql/examples/ha_tina.h -> storage/csv/ha_tina.h
config/ac-macros/storage.m4:
if hton name is "no", then we don't install it as a builtin
configure.in:
pluggable changes
include/plugin.h:
version field
mysql-test/r/bdb.result:
savepoint results copied from innodb test
mysql-test/r/information_schema.result:
PLUGINS information schema
mysql-test/r/information_schema_db.result:
PLUGINS information schema
mysql-test/t/bdb.test:
savepoint test copied from innodb test
sql/Makefile.am:
tina and example are not here anymore
sql/authors.h:
minor tweek
sql/ha_archive.cc:
remove unwanted handlerton entries
sql/ha_berkeley.cc:
remove unwanted handlerton entries
support for savepoints
changes to show logs
sql/ha_blackhole.cc:
remove unwanted handlerton entries
sql/ha_federated.cc:
remove unwanted handlerton entries
sql/ha_heap.cc:
remove unwanted handlerton entries
sql/ha_innodb.cc:
remove unwanted handlerton entries
changes for show status
sql/ha_myisam.cc:
remove unwanted handlerton entries
sql/ha_myisammrg.cc:
remove unwanted handlerton entries
sql/ha_ndbcluster.cc:
remove unwanted handlerton entries
changes to stat_print
sql/ha_partition.cc:
remove unwanted handlerton entries
bye bye enum db_type
sql/ha_partition.h:
bye bye enum db_type
sql/handler.cc:
remove unwanted handlerton entries
bye bye enum db_type
sql/handler.h:
remove unwanted handlerton entries
bye bye enum db_type
changes to stat_print_fn
sql/item_sum.cc:
bye bye enum db_type
sql/log.cc:
remove unwanted handlerton entries
sql/mysql_priv.h:
bye bye enum db_type
sql/mysqld.cc:
bye bye enum db_type
reorder plugin initialization
sql/set_var.cc:
bye bye enum db_type
sql/set_var.h:
bye bye enum db_type
sql/sql_base.cc:
bye bye enum db_type
sql/sql_cache.cc:
bye bye enum db_type
sql/sql_class.h:
bye bye enum db_type
sql/sql_delete.cc:
bye bye enum db_type
sql/sql_insert.cc:
bye bye enum db_type
sql/sql_lex.h:
show plugin
sql/sql_parse.cc:
bye bye enum db_type
sql/sql_partition.cc:
bye bye enum db_type
sql/sql_plugin.cc:
loadable storage engines
sql/sql_plugin.h:
loadable storage engines
sql/sql_rename.cc:
bye bye enum db_type
sql/sql_select.cc:
bye bye enum db_type
sql/sql_show.cc:
SHOW PLUGIN
PLUGINS information schema
changes to show engines
sql/sql_table.cc:
bye bye enum db_type
sql/sql_view.cc:
bye bye enum db_type
sql/sql_view.h:
bye bye enum db_type
sql/sql_yacc.yy:
bye bye enum db_type
sql/table.cc:
bye bye enum db_type
sql/table.h:
bye bye enum db_type
sql/unireg.cc:
bye bye enum db_type
storage/csv/ha_tina.cc:
make tina into a loadable plugin
storage/example/ha_example.cc:
make into a plugin
storage/csv/Makefile.am:
New BitKeeper file ``storage/csv/Makefile.am''
storage/example/Makefile.am:
New BitKeeper file ``storage/example/Makefile.am''
Diffstat (limited to 'sql/examples/ha_tina.h')
-rw-r--r-- | sql/examples/ha_tina.h | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/sql/examples/ha_tina.h b/sql/examples/ha_tina.h deleted file mode 100644 index c46750fb703..00000000000 --- a/sql/examples/ha_tina.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (C) 2003 MySQL 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 */ - -#include <sys/types.h> -#include <sys/stat.h> -#include <my_dir.h> - -#define DEFAULT_CHAIN_LENGTH 512 - -typedef struct st_tina_share { - char *table_name; - byte *mapped_file; /* mapped region of file */ - uint table_name_length,use_count; - MY_STAT file_stat; /* Stat information for the data file */ - File data_file; /* Current open data file */ - pthread_mutex_t mutex; - THR_LOCK lock; -} TINA_SHARE; - -typedef struct tina_set { - off_t begin; - off_t end; -}; - -class ha_tina: public handler -{ - THR_LOCK_DATA lock; /* MySQL lock */ - TINA_SHARE *share; /* Shared lock info */ - off_t current_position; /* Current position in the file during a file scan */ - off_t next_position; /* Next position in the file scan */ - byte byte_buffer[IO_SIZE]; - String buffer; - /* - The chain contains "holes" in the file, occured because of - deletes/updates. It is used in rnd_end() to get rid of them - in the end of the query. - */ - tina_set chain_buffer[DEFAULT_CHAIN_LENGTH]; - tina_set *chain; - tina_set *chain_ptr; - byte chain_alloced; - uint32 chain_size; - bool records_is_known; - -public: - ha_tina(TABLE_SHARE *table_arg); - ~ha_tina() - { - if (chain_alloced) - my_free((gptr)chain,0); - } - const char *table_type() const { return "CSV"; } - const char *index_type(uint inx) { return "NONE"; } - const char **bas_ext() const; - ulong table_flags() const - { - return (HA_REC_NOT_IN_SEQ | HA_NOT_EXACT_COUNT | - HA_NO_AUTO_INCREMENT ); - } - ulong index_flags(uint idx, uint part, bool all_parts) const - { - /* We will never have indexes so this will never be called(AKA we return zero) */ - return 0; - } - uint max_record_length() const { return HA_MAX_REC_LENGTH; } - uint max_keys() const { return 0; } - uint max_key_parts() const { return 0; } - uint max_key_length() const { return 0; } - /* - Called in test_quick_select to determine if indexes should be used. - */ - virtual double scan_time() { return (double) (records+deleted) / 20.0+10; } - /* The next method will never be called */ - virtual bool fast_key_read() { return 1;} - /* - TODO: return actual upper bound of number of records in the table. - (e.g. save number of records seen on full table scan and/or use file size - as upper bound) - */ - ha_rows estimate_rows_upper_bound() { return HA_POS_ERROR; } - - int open(const char *name, int mode, uint 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); - int rnd_end(); - 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); - 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); - - /* The following methods were added just for TINA */ - int encode_quote(byte *buf); - int find_current_row(byte *buf); - int chain_append(); -}; - -int tina_end(ha_panic_function type); - |