Skip to content

Commit

Permalink
EXAMPLE storage engine: update comments
Browse files Browse the repository at this point in the history
  • Loading branch information
federico-razzoli authored and grooverdan committed Aug 30, 2023
1 parent 0254eb9 commit e666b86
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 25 deletions.
16 changes: 6 additions & 10 deletions storage/example/ha_example.cc
Expand Up @@ -38,7 +38,7 @@
build by doing the following during your build process:<br> ./configure
--with-example-storage-engine
Once this is done, MySQL will let you create tables with:<br>
Once this is done, MariaDB will let you create tables with:<br>
CREATE TABLE <table name> (...) ENGINE=EXAMPLE;
The example storage engine is set up to use table locks. It
Expand All @@ -51,9 +51,9 @@
of this file.
@note
When you create an EXAMPLE table, the MySQL Server creates a table .frm
When you create an EXAMPLE table, the MariaDB Server creates a table .frm
(format) file in the database directory, using the table name as the file
name as is customary with MySQL. No other files are created. To get an idea
name as is customary with MariaDB. No other files are created. To get an idea
of what occurs, here is an example select that would do a scan of an entire
table:
Expand Down Expand Up @@ -86,10 +86,6 @@
ha_example::open() would also have been necessary. Calls to
ha_example::extra() are hints as to what will be occuring to the request.
A Longer Example can be found called the "Skeleton Engine" which can be
found on TangentOrg. It has both an engine and a full build environment
for building a pluggable storage engine.
Happy coding!<br>
-Brian
*/
Expand Down Expand Up @@ -771,7 +767,7 @@ int ha_example::external_lock(THD *thd, int lock_type)
Before adding the lock into the table lock handler (see thr_lock.c),
mysqld calls store lock with the requested locks. Store lock can now
modify a write lock to a read lock (or some other lock), ignore the
lock (if we don't want to use MySQL table locks at all), or add locks
lock (if we don't want to use MariaDB table locks at all), or add locks
for many tables (like we do when we are using a MERGE handler).
Berkeley DB, for example, changes all WRITE locks to TL_WRITE_ALLOW_WRITE
Expand All @@ -781,7 +777,7 @@ int ha_example::external_lock(THD *thd, int lock_type)
When releasing locks, store_lock() is also called. In this case one
usually doesn't have to do anything.
In some exceptional cases MySQL may send a request for a TL_IGNORE;
In some exceptional cases MariaDB may send a request for a TL_IGNORE;
This means that we are requesting the same lock as last time and this
should also be ignored. (This may happen when someone does a flush
table when we have opened a part of the tables, in which case mysqld
Expand Down Expand Up @@ -1084,7 +1080,7 @@ static int show_func_example(MYSQL_THD thd, struct st_mysql_show_var *var,
var->value= buf; // it's of SHOW_VAR_FUNC_BUFF_SIZE bytes
my_snprintf(buf, SHOW_VAR_FUNC_BUFF_SIZE,
"enum_var is %lu, ulong_var is %lu, int_var is %d, "
"double_var is %f, %.6b", // %b is a MySQL extension
"double_var is %f, %.6b", // %b is a MariaDB/MySQL extension
srv_enum_var, srv_ulong_var, THDVAR(thd, int_var),
srv_double_var, "really");
return 0;
Expand Down
30 changes: 15 additions & 15 deletions storage/example/ha_example.h
Expand Up @@ -62,7 +62,7 @@ class Example_share : public Handler_share {
*/
class ha_example: public handler
{
THR_LOCK_DATA lock; ///< MySQL lock
THR_LOCK_DATA lock; ///< MariaDB lock
Example_share *share; ///< Shared lock info
Example_share *get_share(); ///< Get the share

Expand Down Expand Up @@ -97,7 +97,7 @@ class ha_example: public handler
@details
part is the key part to check. First key part is 0.
If all_parts is set, MySQL wants to know the flags for the combined
If all_parts is set, MariaDB wants to know the flags for the combined
index, up to and including 'part'.
*/
ulong index_flags(uint inx, uint part, bool all_parts) const
Expand All @@ -109,15 +109,15 @@ class ha_example: public handler
unireg.cc will call max_supported_record_length(), max_supported_keys(),
max_supported_key_parts(), uint max_supported_key_length()
to make sure that the storage engine can handle the data it is about to
send. Return *real* limits of your storage engine here; MySQL will do
send. Return *real* limits of your storage engine here; MariaDB will do
min(your_limits, MySQL_limits) automatically.
*/
uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }

/** @brief
unireg.cc will call this to make sure that the storage engine can handle
the data it is about to send. Return *real* limits of your storage engine
here; MySQL will do min(your_limits, MySQL_limits) automatically.
here; MariaDB will do min(your_limits, MySQL_limits) automatically.
@details
There is no need to implement ..._key_... methods if your engine doesn't
Expand All @@ -128,7 +128,7 @@ class ha_example: public handler
/** @brief
unireg.cc will call this to make sure that the storage engine can handle
the data it is about to send. Return *real* limits of your storage engine
here; MySQL will do min(your_limits, MySQL_limits) automatically.
here; MariaDB will do min(your_limits, MySQL_limits) automatically.
@details
There is no need to implement ..._key_... methods if your engine doesn't
Expand All @@ -139,7 +139,7 @@ class ha_example: public handler
/** @brief
unireg.cc will call this to make sure that the storage engine can handle
the data it is about to send. Return *real* limits of your storage engine
here; MySQL will do min(your_limits, MySQL_limits) automatically.
here; MariaDB will do min(your_limits, MySQL_limits) automatically.
@details
There is no need to implement ..._key_... methods if your engine doesn't
Expand Down Expand Up @@ -187,7 +187,7 @@ class ha_example: public handler
Everything below are methods that we implement in ha_example.cc.
Most of these methods are not obligatory, skip them and
MySQL will treat them as not implemented
MariaDB will treat them as not implemented
*/
/** @brief
We implement this in ha_example.cc; it's a required method.
Expand All @@ -201,50 +201,50 @@ class ha_example: public handler

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int write_row(const uchar *buf);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int update_row(const uchar *old_data, const uchar *new_data);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int delete_row(const uchar *buf);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int index_read_map(uchar *buf, const uchar *key,
key_part_map keypart_map, enum ha_rkey_function find_flag);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int index_next(uchar *buf);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int index_prev(uchar *buf);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int index_first(uchar *buf);

/** @brief
We implement this in ha_example.cc. It's not an obligatory method;
skip it and and MySQL will treat it as not implemented.
skip it and and MariaDB will treat it as not implemented.
*/
int index_last(uchar *buf);

Expand Down

0 comments on commit e666b86

Please sign in to comment.