diff options
author | acurtis@poseidon.ndb.mysql.com <> | 2005-11-07 16:25:06 +0100 |
---|---|---|
committer | acurtis@poseidon.ndb.mysql.com <> | 2005-11-07 16:25:06 +0100 |
commit | c01a3b5e5f3c28333384ff962f44afea3a1b4dda (patch) | |
tree | 2b8ffe29d899326e4ad244ac3f67d4fcf29bfae6 /sql/examples | |
parent | eed744d30b90da5baa9d9ee2d126341dd63f9d3d (diff) | |
download | mariadb-git-c01a3b5e5f3c28333384ff962f44afea3a1b4dda.tar.gz |
Make storage engines "pluggable", handlerton work
Diffstat (limited to 'sql/examples')
-rw-r--r-- | sql/examples/ha_example.cc | 18 | ||||
-rw-r--r-- | sql/examples/ha_example.h | 1 | ||||
-rw-r--r-- | sql/examples/ha_tina.cc | 23 | ||||
-rw-r--r-- | sql/examples/ha_tina.h | 2 |
4 files changed, 36 insertions, 8 deletions
diff --git a/sql/examples/ha_example.cc b/sql/examples/ha_example.cc index d340b9289ec..68aed7c6483 100644 --- a/sql/examples/ha_example.cc +++ b/sql/examples/ha_example.cc @@ -69,9 +69,9 @@ #include "../mysql_priv.h" -#ifdef HAVE_EXAMPLE_DB #include "ha_example.h" +static handler* example_create_handler(TABLE *table); handlerton example_hton= { "EXAMPLE", @@ -94,6 +94,15 @@ handlerton example_hton= { NULL, /* create_cursor_read_view */ NULL, /* set_cursor_read_view */ NULL, /* close_cursor_read_view */ + example_create_handler, /* Create a new handler */ + NULL, /* Drop a database */ + NULL, /* Panic call */ + NULL, /* Release temporary latches */ + NULL, /* Update Statistics */ + NULL, /* Start Consistent Snapshot */ + NULL, /* Flush logs */ + NULL, /* Show status */ + NULL, /* Replication Report Sent Binlog */ HTON_CAN_RECREATE }; @@ -204,6 +213,12 @@ static int free_share(EXAMPLE_SHARE *share) } +static handler* example_create_handler(TABLE *table) +{ + return new ha_example(table); +} + + ha_example::ha_example(TABLE *table_arg) :handler(&example_hton, table_arg) {} @@ -696,4 +711,3 @@ int ha_example::create(const char *name, TABLE *table_arg, /* This is not implemented but we want someone to be able that it works. */ DBUG_RETURN(0); } -#endif /* HAVE_EXAMPLE_DB */ diff --git a/sql/examples/ha_example.h b/sql/examples/ha_example.h index 37f38fe5210..d2ec83a5837 100644 --- a/sql/examples/ha_example.h +++ b/sql/examples/ha_example.h @@ -152,3 +152,4 @@ public: THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type); //required }; + diff --git a/sql/examples/ha_tina.cc b/sql/examples/ha_tina.cc index 2c193f4ce84..46636b93d21 100644 --- a/sql/examples/ha_tina.cc +++ b/sql/examples/ha_tina.cc @@ -48,8 +48,6 @@ TODO: #include "mysql_priv.h" -#ifdef HAVE_CSV_DB - #include "ha_tina.h" #include <sys/mman.h> @@ -57,6 +55,7 @@ TODO: pthread_mutex_t tina_mutex; static HASH tina_open_tables; static int tina_init= 0; +static handler* tina_create_handler(TABLE *table); handlerton tina_hton= { "CSV", @@ -79,6 +78,15 @@ handlerton tina_hton= { NULL, /* create_cursor_read_view */ NULL, /* set_cursor_read_view */ NULL, /* close_cursor_read_view */ + tina_create_handler, /* Create a new handler */ + NULL, /* Drop a database */ + tina_end, /* Panic call */ + NULL, /* Release temporary latches */ + NULL, /* Update Statistics */ + NULL, /* Start Consistent Snapshot */ + NULL, /* Flush logs */ + NULL, /* Show status */ + NULL, /* Replication Report Sent Binlog */ HTON_CAN_RECREATE }; @@ -247,7 +255,7 @@ static int free_share(TINA_SHARE *share) DBUG_RETURN(result_code); } -bool tina_end() +int tina_end(ha_panic_function type) { if (tina_init) { @@ -255,7 +263,7 @@ bool tina_end() VOID(pthread_mutex_destroy(&tina_mutex)); } tina_init= 0; - return FALSE; + return 0; } /* @@ -272,6 +280,12 @@ byte * find_eoln(byte *data, off_t begin, off_t end) } +static handler* tina_create_handler(TABLE *table) +{ + return new ha_tina(table); +} + + ha_tina::ha_tina(TABLE *table_arg) :handler(&tina_hton, table_arg), /* @@ -909,4 +923,3 @@ int ha_tina::create(const char *name, TABLE *table_arg, DBUG_RETURN(0); } -#endif /* enable CSV */ diff --git a/sql/examples/ha_tina.h b/sql/examples/ha_tina.h index 0ac90a05812..2de6d8c8257 100644 --- a/sql/examples/ha_tina.h +++ b/sql/examples/ha_tina.h @@ -125,5 +125,5 @@ public: int chain_append(); }; -bool tina_end(); +int tina_end(ha_panic_function type); |