summaryrefslogtreecommitdiff
path: root/sql/unireg.h
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2013-04-09 16:18:33 +0200
committerSergei Golubchik <sergii@pisem.net>2013-04-09 16:18:33 +0200
commit02c712aa546df8d6e9c285e6adc95309925673e3 (patch)
tree8d6654dac2666dcd738db1f10dbd919610087795 /sql/unireg.h
parentf6168bb67bb5cab0584809c876c674a92051b5d1 (diff)
downloadmariadb-git-02c712aa546df8d6e9c285e6adc95309925673e3.tar.gz
* frm extra2 segment.
* persistent table versions in the extra2 * ha_archive::frm_compare using TABLE_SHARE::tabledef_version * distinguish between "important" and "optional" extra2 frm values * write engine-defined attributes (aka "table options") to extra2, not to extra, but still read from the old location, if they're found there.
Diffstat (limited to 'sql/unireg.h')
-rw-r--r--sql/unireg.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/unireg.h b/sql/unireg.h
index 89dae6b2e97..8fba6e5cfbe 100644
--- a/sql/unireg.h
+++ b/sql/unireg.h
@@ -167,6 +167,22 @@
#include "sql_list.h" /* List<> */
#include "field.h" /* Create_field */
+/*
+ Types of values in the MariaDB extra2 frm segment.
+ Each value is written as
+ type: 1 byte
+ length: 1 byte (1..255) or \0 and 2 bytes.
+ binary value of the 'length' bytes.
+
+ Older MariaDB servers can ignore values of unknown types if
+ the type code is less than 128. Otherwise older servers are required
+ to report an error.
+*/
+enum extra2_frm_value_type {
+ EXTRA2_TABLEDEF_VERSION=0,
+ EXTRA2_ENGINE_TABLEOPTS=128,
+};
+
int rea_create_table(THD *thd, LEX_CUSTRING *frm,
const char *path, const char *db, const char *table_name,
HA_CREATE_INFO *create_info, handler *file);