Merge lp:~laurynas-biveinis/percona-server/tokudb-compression into lp:percona-server/5.6

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Stewart Smith
Approved revision: no longer in the source branch.
Merged at revision: 519
Proposed branch: lp:~laurynas-biveinis/percona-server/tokudb-compression
Merge into: lp:percona-server/5.6
Diff against target: 379 lines (+151/-14)
13 files modified
Percona-Server/mysql-test/r/information_schema.result (+1/-1)
Percona-Server/mysql-test/r/mysqldump.result (+1/-1)
Percona-Server/mysql-test/r/show_check.result (+2/-2)
Percona-Server/mysql-test/r/tokudb_zip_grammar.result (+37/-0)
Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is.result (+4/-4)
Percona-Server/mysql-test/suite/funcs_1/r/is_tables.result (+3/-3)
Percona-Server/mysql-test/t/tokudb_zip_grammar.test (+50/-0)
Percona-Server/sql/handler.cc (+2/-0)
Percona-Server/sql/handler.h (+4/-1)
Percona-Server/sql/lex.h (+6/-0)
Percona-Server/sql/sql_show.cc (+20/-2)
Percona-Server/sql/sql_yacc.yy (+18/-0)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+3/-0)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/tokudb-compression
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
George Ormond Lorch III g2 Pending
Review via email: mp+199152@code.launchpad.net

This proposal supersedes a proposal from 2013-12-02.

Description of the change

2nd MP:

Added a test that the new reserved words are usable as identifiers
Rebased on the current trunk

http://jenkins.percona.com/job/percona-server-5.6-param/453/

1st MP:

Add TokuDB compression format ROW_TYPE support, implementing
https://blueprints.launchpad.net/percona-server/+spec/support-tokudb-compression-algorithms.

Add new lexer symbols TOKUDB_UNCOMPRESSED, TOKUDB_ZLIB,
TOKUDB_QUICKLZ, TOKUDB_LZMA, TOKUDB_FAST, TOKUDB_SMALL, accept them as
valid ROW_TYPE option values in the parser, add corresponding values
to enum row_type.

Add support for them to get_schema_tables_record() so that
INFORMATION_SCHEMA.TABLES can return them, as well as bump
ROW_FORMAT field length for I_S.TABLES and I_S.FILES tables to
accomodate longer strings.

In InnoDB, handle the new option values as unsupported in
get_row_format_name(), create_options_are_invalid(),
innobase_table_flags(). Other SEs do not require this.

Add a testcase innodb_zip_grammar to test the grammar changes and
InnoDB/MyISAM/Memory handling of compression formats as unsupported
create options. Re-record information_schema, mysqldump, show_check,
funcs_1.is_tables, and funcs_1.is_columns_is for the changed
I_S.*.ROW_FORMAT width.

http://jenkins.percona.com/job/percona-server-5.6-param/427/

To post a comment you must log in.
Revision history for this message
George Ormond Lorch III (gl-az) : Posted in a previous version of this proposal
review: Approve (g2)
Revision history for this message
Stewart Smith (stewart) wrote : Posted in a previous version of this proposal

I'd like to see a test where we use the strings as identifiers/column names just to test that we're not unintentionally making these being needed to be quoted.

Otherwise approved.

review: Needs Fixing
Revision history for this message
Stewart Smith (stewart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Percona-Server/mysql-test/r/information_schema.result'
2--- Percona-Server/mysql-test/r/information_schema.result 2013-05-27 03:01:29 +0000
3+++ Percona-Server/mysql-test/r/information_schema.result 2013-12-16 16:21:05 +0000
4@@ -1227,7 +1227,7 @@
5 column_type GROUP_CONCAT(table_schema, '.', table_name) num
6 varchar(7) information_schema.ROUTINES,information_schema.VIEWS 2
7 varchar(30) information_schema.COLUMNS,information_schema.PROFILING,information_schema.PROFILING 3
8-varchar(20) information_schema.FILES,information_schema.FILES,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PROFILING 6
9+varchar(20) information_schema.FILES,information_schema.FILES,information_schema.FILES,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PROFILING,information_schema.TABLES 8
10 create table t1(f1 char(1) not null, f2 char(9) not null)
11 default character set utf8;
12 select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
13
14=== modified file 'Percona-Server/mysql-test/r/mysqldump.result'
15--- Percona-Server/mysql-test/r/mysqldump.result 2013-10-23 08:48:28 +0000
16+++ Percona-Server/mysql-test/r/mysqldump.result 2013-12-16 16:21:05 +0000
17@@ -3617,7 +3617,7 @@
18 `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
19 `ENGINE` varchar(64) DEFAULT NULL,
20 `VERSION` bigint(21) unsigned DEFAULT NULL,
21- `ROW_FORMAT` varchar(10) DEFAULT NULL,
22+ `ROW_FORMAT` varchar(20) DEFAULT NULL,
23 `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
24 `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
25 `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
26
27=== modified file 'Percona-Server/mysql-test/r/show_check.result'
28--- Percona-Server/mysql-test/r/show_check.result 2013-06-25 13:13:06 +0000
29+++ Percona-Server/mysql-test/r/show_check.result 2013-12-16 16:21:05 +0000
30@@ -120,7 +120,7 @@
31 def information_schema TABLES TABLES TABLE_NAME Name 253 64 0 N 1 0 8
32 def information_schema TABLES TABLES ENGINE Engine 253 64 0 Y 0 0 8
33 def information_schema TABLES TABLES VERSION Version 8 21 0 Y 32800 0 63
34-def information_schema TABLES TABLES ROW_FORMAT Row_format 253 10 0 Y 0 0 8
35+def information_schema TABLES TABLES ROW_FORMAT Row_format 253 20 0 Y 0 0 8
36 def information_schema TABLES TABLES TABLE_ROWS Rows 8 21 0 Y 32800 0 63
37 def information_schema TABLES TABLES AVG_ROW_LENGTH Avg_row_length 8 21 0 Y 32800 0 63
38 def information_schema TABLES TABLES DATA_LENGTH Data_length 8 21 0 Y 32800 0 63
39@@ -928,7 +928,7 @@
40 def information_schema TABLES TABLES TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
41 def information_schema TABLES TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 1 0 33
42 def information_schema TABLES TABLES ENGINE ENGINE 253 192 6 Y 0 0 33
43-def information_schema TABLES TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 0 0 33
44+def information_schema TABLES TABLES ROW_FORMAT ROW_FORMAT 253 60 5 Y 0 0 33
45 def information_schema TABLES TABLES TABLE_COLLATION TABLE_COLLATION 253 96 17 Y 0 0 33
46 def information_schema TABLES TABLES CREATE_OPTIONS CREATE_OPTIONS 253 765 0 Y 0 0 33
47 def information_schema TABLES TABLES TABLE_COMMENT TABLE_COMMENT 253 6144 0 N 1 0 33
48
49=== added file 'Percona-Server/mysql-test/r/tokudb_zip_grammar.result'
50--- Percona-Server/mysql-test/r/tokudb_zip_grammar.result 1970-01-01 00:00:00 +0000
51+++ Percona-Server/mysql-test/r/tokudb_zip_grammar.result 2013-12-16 16:21:05 +0000
52@@ -0,0 +1,37 @@
53+CREATE TABLE t1 (a INT) ENGINE=InnoDB ROW_FORMAT=TOKUDB_UNCOMPRESSED;
54+Warnings:
55+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
56+ALTER TABLE t1 ROW_FORMAT=TOKUDB_ZLIB;
57+Warnings:
58+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
59+ALTER TABLE t1 ROW_FORMAT=TOKUDB_QUICKLZ;
60+Warnings:
61+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
62+ALTER TABLE t1 ROW_FORMAT=TOKUDB_LZMA;
63+Warnings:
64+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
65+ALTER TABLE t1 ROW_FORMAT=TOKUDB_FAST;
66+Warnings:
67+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
68+ALTER TABLE t1 ROW_FORMAT=TOKUDB_SMALL;
69+Warnings:
70+Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
71+ALTER TABLE t1 ROW_FORMAT=TOKUDB_UNDEFINED;
72+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TOKUDB_UNDEFINED' at line 1
73+SET @@SESSION.innodb_strict_mode=ON;
74+ALTER TABLE t1 ROW_FORMAT=TOKUDB_ZLIB;
75+ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE'
76+ALTER TABLE t1 ROW_FORMAT=TOKUDB_QUICKLZ;
77+ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE'
78+ALTER TABLE t1 ROW_FORMAT=TOKUDB_LZMA;
79+ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE'
80+ALTER TABLE t1 ROW_FORMAT=TOKUDB_FAST;
81+ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE'
82+ALTER TABLE t1 ROW_FORMAT=TOKUDB_SMALL;
83+ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE'
84+SET @@SESSION.innodb_strict_mode=DEFAULT;
85+CREATE TABLE t2 (a INT) ENGINE=MyISAM ROW_FORMAT=TOKUDB_ZLIB;
86+CREATE TABLE t3 (a INT) ENGINE=MEMORY ROW_FORMAT=TOKUDB_QUICKLZ;
87+DROP TABLE t1, t2, t3;
88+CREATE TABLE TOKUDB_UNCOMPRESSED(TOKUDB_ZLIB INT, TOKUDB_QUICKLZ INT, TOKUDB_LZMA INT, TOKUDB_FAST INT, TOKUDB_SMALL INT);
89+DROP TABLE TOKUDB_UNCOMPRESSED;
90
91=== modified file 'Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is.result'
92--- Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is.result 2013-05-30 19:00:08 +0000
93+++ Percona-Server/mysql-test/suite/funcs_1/r/is_columns_is.result 2013-12-16 16:21:05 +0000
94@@ -120,7 +120,7 @@
95 def information_schema FILES MAXIMUM_SIZE 18 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select
96 def information_schema FILES MAX_DATA_LENGTH 30 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select
97 def information_schema FILES RECOVER_TIME 23 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(4) select
98-def information_schema FILES ROW_FORMAT 26 NULL YES varchar 10 30 NULL NULL NULL utf8 utf8_general_ci varchar(10) select
99+def information_schema FILES ROW_FORMAT 26 NULL YES varchar 20 60 NULL NULL NULL utf8 utf8_general_ci varchar(20) select
100 def information_schema FILES STATUS 37 NO varchar 20 60 NULL NULL NULL utf8 utf8_general_ci varchar(20) select
101 def information_schema FILES TABLESPACE_NAME 4 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select
102 def information_schema FILES TABLE_CATALOG 5 NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select
103@@ -313,7 +313,7 @@
104 def information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select
105 def information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select
106 def information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select
107-def information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL NULL utf8 utf8_general_ci varchar(10) select
108+def information_schema TABLES ROW_FORMAT 7 NULL YES varchar 20 60 NULL NULL NULL utf8 utf8_general_ci varchar(20) select
109 def information_schema TABLES TABLE_CATALOG 1 NO varchar 512 1536 NULL NULL NULL utf8 utf8_general_ci varchar(512) select
110 def information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32) select
111 def information_schema TABLES TABLE_COMMENT 21 NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) select
112@@ -629,7 +629,7 @@
113 NULL information_schema FILES RECOVER_TIME bigint NULL NULL NULL NULL bigint(4)
114 NULL information_schema FILES TRANSACTION_COUNTER bigint NULL NULL NULL NULL bigint(4)
115 NULL information_schema FILES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
116-3.0000 information_schema FILES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
117+3.0000 information_schema FILES ROW_FORMAT varchar 20 60 utf8 utf8_general_ci varchar(20)
118 NULL information_schema FILES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
119 NULL information_schema FILES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
120 NULL information_schema FILES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
121@@ -818,7 +818,7 @@
122 3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
123 3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
124 NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
125-3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
126+3.0000 information_schema TABLES ROW_FORMAT varchar 20 60 utf8 utf8_general_ci varchar(20)
127 NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
128 NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
129 NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
130
131=== modified file 'Percona-Server/mysql-test/suite/funcs_1/r/is_tables.result'
132--- Percona-Server/mysql-test/suite/funcs_1/r/is_tables.result 2010-02-20 10:07:32 +0000
133+++ Percona-Server/mysql-test/suite/funcs_1/r/is_tables.result 2013-12-16 16:21:05 +0000
134@@ -34,7 +34,7 @@
135 TABLE_TYPE varchar(64) NO
136 ENGINE varchar(64) YES NULL
137 VERSION bigint(21) unsigned YES NULL
138-ROW_FORMAT varchar(10) YES NULL
139+ROW_FORMAT varchar(20) YES NULL
140 TABLE_ROWS bigint(21) unsigned YES NULL
141 AVG_ROW_LENGTH bigint(21) unsigned YES NULL
142 DATA_LENGTH bigint(21) unsigned YES NULL
143@@ -58,7 +58,7 @@
144 `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
145 `ENGINE` varchar(64) DEFAULT NULL,
146 `VERSION` bigint(21) unsigned DEFAULT NULL,
147- `ROW_FORMAT` varchar(10) DEFAULT NULL,
148+ `ROW_FORMAT` varchar(20) DEFAULT NULL,
149 `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
150 `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
151 `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
152@@ -82,7 +82,7 @@
153 TABLE_TYPE varchar(64) NO
154 ENGINE varchar(64) YES NULL
155 VERSION bigint(21) unsigned YES NULL
156-ROW_FORMAT varchar(10) YES NULL
157+ROW_FORMAT varchar(20) YES NULL
158 TABLE_ROWS bigint(21) unsigned YES NULL
159 AVG_ROW_LENGTH bigint(21) unsigned YES NULL
160 DATA_LENGTH bigint(21) unsigned YES NULL
161
162=== added file 'Percona-Server/mysql-test/t/tokudb_zip_grammar.test'
163--- Percona-Server/mysql-test/t/tokudb_zip_grammar.test 1970-01-01 00:00:00 +0000
164+++ Percona-Server/mysql-test/t/tokudb_zip_grammar.test 2013-12-16 16:21:05 +0000
165@@ -0,0 +1,50 @@
166+#
167+# Test TokuDB compression option additions to row_format
168+#
169+--source include/have_innodb.inc
170+
171+#
172+# InnoDB returns a warning on unsupported format if InnoDB strict mode off
173+#
174+
175+CREATE TABLE t1 (a INT) ENGINE=InnoDB ROW_FORMAT=TOKUDB_UNCOMPRESSED;
176+
177+ALTER TABLE t1 ROW_FORMAT=TOKUDB_ZLIB;
178+ALTER TABLE t1 ROW_FORMAT=TOKUDB_QUICKLZ;
179+ALTER TABLE t1 ROW_FORMAT=TOKUDB_LZMA;
180+ALTER TABLE t1 ROW_FORMAT=TOKUDB_FAST;
181+ALTER TABLE t1 ROW_FORMAT=TOKUDB_SMALL;
182+
183+--error ER_PARSE_ERROR
184+ALTER TABLE t1 ROW_FORMAT=TOKUDB_UNDEFINED;
185+
186+SET @@SESSION.innodb_strict_mode=ON;
187+
188+--error ER_ILLEGAL_HA_CREATE_OPTION
189+ALTER TABLE t1 ROW_FORMAT=TOKUDB_ZLIB;
190+--error ER_ILLEGAL_HA_CREATE_OPTION
191+ALTER TABLE t1 ROW_FORMAT=TOKUDB_QUICKLZ;
192+--error ER_ILLEGAL_HA_CREATE_OPTION
193+ALTER TABLE t1 ROW_FORMAT=TOKUDB_LZMA;
194+--error ER_ILLEGAL_HA_CREATE_OPTION
195+ALTER TABLE t1 ROW_FORMAT=TOKUDB_FAST;
196+--error ER_ILLEGAL_HA_CREATE_OPTION
197+ALTER TABLE t1 ROW_FORMAT=TOKUDB_SMALL;
198+
199+SET @@SESSION.innodb_strict_mode=DEFAULT;
200+
201+#
202+# Other storage engines silently convert unsupported formats to default
203+#
204+
205+CREATE TABLE t2 (a INT) ENGINE=MyISAM ROW_FORMAT=TOKUDB_ZLIB;
206+
207+CREATE TABLE t3 (a INT) ENGINE=MEMORY ROW_FORMAT=TOKUDB_QUICKLZ;
208+
209+DROP TABLE t1, t2, t3;
210+
211+#
212+# Test that the new ROW_FORMAT types are still usable as identifiers
213+#
214+CREATE TABLE TOKUDB_UNCOMPRESSED(TOKUDB_ZLIB INT, TOKUDB_QUICKLZ INT, TOKUDB_LZMA INT, TOKUDB_FAST INT, TOKUDB_SMALL INT);
215+DROP TABLE TOKUDB_UNCOMPRESSED;
216
217=== modified file 'Percona-Server/sql/handler.cc'
218--- Percona-Server/sql/handler.cc 2013-12-16 08:45:31 +0000
219+++ Percona-Server/sql/handler.cc 2013-12-16 16:21:05 +0000
220@@ -94,6 +94,8 @@
221 const char *ha_row_type[] = {
222 "", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT",
223 /* Reserved to be "PAGE" in future versions */ "?",
224+ "TOKUDB_UNCOMPRESSED", "TOKUDB_ZLIB", "TOKUDB_QUICKLZ", "TOKUDB_LZMA",
225+ "TOKUDB_FAST", "TOKUDB_SMALL",
226 "?","?","?"
227 };
228
229
230=== modified file 'Percona-Server/sql/handler.h'
231--- Percona-Server/sql/handler.h 2013-12-05 17:23:10 +0000
232+++ Percona-Server/sql/handler.h 2013-12-16 16:21:05 +0000
233@@ -404,7 +404,10 @@
234 ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED,
235 ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT,
236 /** Unused. Reserved for future versions. */
237- ROW_TYPE_PAGE };
238+ ROW_TYPE_PAGE,
239+ ROW_TYPE_TOKU_UNCOMPRESSED, ROW_TYPE_TOKU_ZLIB,
240+ ROW_TYPE_TOKU_QUICKLZ, ROW_TYPE_TOKU_LZMA,
241+ ROW_TYPE_TOKU_FAST, ROW_TYPE_TOKU_SMALL };
242
243 /* Specifies data storage format for individual columns */
244 enum column_format_type {
245
246=== modified file 'Percona-Server/sql/lex.h'
247--- Percona-Server/sql/lex.h 2013-09-27 17:47:04 +0000
248+++ Percona-Server/sql/lex.h 2013-12-16 16:21:05 +0000
249@@ -596,6 +596,12 @@
250 { "TINYINT", SYM(TINYINT)},
251 { "TINYTEXT", SYM(TINYTEXT)},
252 { "TO", SYM(TO_SYM)},
253+ { "TOKUDB_UNCOMPRESSED", SYM(TOKU_UNCOMPRESSED_SYM)},
254+ { "TOKUDB_ZLIB", SYM(TOKU_ZLIB_SYM)},
255+ { "TOKUDB_QUICKLZ", SYM(TOKU_QUICKLZ_SYM)},
256+ { "TOKUDB_LZMA", SYM(TOKU_LZMA_SYM)},
257+ { "TOKUDB_FAST", SYM(TOKU_FAST_SYM)},
258+ { "TOKUDB_SMALL", SYM(TOKU_SMALL_SYM)},
259 { "TRAILING", SYM(TRAILING)},
260 { "TRANSACTION", SYM(TRANSACTION_SYM)},
261 { "TRIGGER", SYM(TRIGGER_SYM)},
262
263=== modified file 'Percona-Server/sql/sql_show.cc'
264--- Percona-Server/sql/sql_show.cc 2013-12-16 08:45:31 +0000
265+++ Percona-Server/sql/sql_show.cc 2013-12-16 16:21:05 +0000
266@@ -4901,6 +4901,24 @@
267 case ROW_TYPE_PAGE:
268 tmp_buff= "Paged";
269 break;
270+ case ROW_TYPE_TOKU_UNCOMPRESSED:
271+ tmp_buff= "tokudb_uncompressed";
272+ break;
273+ case ROW_TYPE_TOKU_ZLIB:
274+ tmp_buff= "tokudb_zlib";
275+ break;
276+ case ROW_TYPE_TOKU_QUICKLZ:
277+ tmp_buff= "tokudb_quicklz";
278+ break;
279+ case ROW_TYPE_TOKU_LZMA:
280+ tmp_buff= "tokudb_lzma";
281+ break;
282+ case ROW_TYPE_TOKU_FAST:
283+ tmp_buff= "tokudb_fast";
284+ break;
285+ case ROW_TYPE_TOKU_SMALL:
286+ tmp_buff= "tokudb_small";
287+ break;
288 }
289
290 table->field[6]->store(tmp_buff, strlen(tmp_buff), cs);
291@@ -7895,7 +7913,7 @@
292 {"ENGINE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, "Engine", OPEN_FRM_ONLY},
293 {"VERSION", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
294 (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Version", OPEN_FRM_ONLY},
295- {"ROW_FORMAT", 10, MYSQL_TYPE_STRING, 0, 1, "Row_format", OPEN_FULL_TABLE},
296+ {"ROW_FORMAT", 20, MYSQL_TYPE_STRING, 0, 1, "Row_format", OPEN_FULL_TABLE},
297 {"TABLE_ROWS", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
298 (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Rows", OPEN_FULL_TABLE},
299 {"AVG_ROW_LENGTH", MY_INT64_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONGLONG, 0,
300@@ -8607,7 +8625,7 @@
301 {"TRANSACTION_COUNTER", 4, MYSQL_TYPE_LONGLONG, 0, 1, 0, SKIP_OPEN_TABLE},
302 {"VERSION", 21 , MYSQL_TYPE_LONGLONG, 0,
303 (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Version", SKIP_OPEN_TABLE},
304- {"ROW_FORMAT", 10, MYSQL_TYPE_STRING, 0, 1, "Row_format", SKIP_OPEN_TABLE},
305+ {"ROW_FORMAT", 20, MYSQL_TYPE_STRING, 0, 1, "Row_format", SKIP_OPEN_TABLE},
306 {"TABLE_ROWS", 21 , MYSQL_TYPE_LONGLONG, 0,
307 (MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED), "Rows", SKIP_OPEN_TABLE},
308 {"AVG_ROW_LENGTH", 21 , MYSQL_TYPE_LONGLONG, 0,
309
310=== modified file 'Percona-Server/sql/sql_yacc.yy'
311--- Percona-Server/sql/sql_yacc.yy 2013-12-05 17:23:10 +0000
312+++ Percona-Server/sql/sql_yacc.yy 2013-12-16 16:21:05 +0000
313@@ -1610,6 +1610,12 @@
314 %token TINYINT
315 %token TINYTEXT
316 %token TO_SYM /* SQL-2003-R */
317+%token TOKU_UNCOMPRESSED_SYM
318+%token TOKU_ZLIB_SYM
319+%token TOKU_QUICKLZ_SYM
320+%token TOKU_LZMA_SYM
321+%token TOKU_FAST_SYM
322+%token TOKU_SMALL_SYM
323 %token TRAILING /* SQL-2003-R */
324 %token TRANSACTION_SYM
325 %token TRIGGERS_SYM
326@@ -6269,6 +6275,12 @@
327 | COMPRESSED_SYM { $$= ROW_TYPE_COMPRESSED; }
328 | REDUNDANT_SYM { $$= ROW_TYPE_REDUNDANT; }
329 | COMPACT_SYM { $$= ROW_TYPE_COMPACT; }
330+ | TOKU_UNCOMPRESSED_SYM { $$= ROW_TYPE_TOKU_UNCOMPRESSED; }
331+ | TOKU_ZLIB_SYM { $$= ROW_TYPE_TOKU_ZLIB; }
332+ | TOKU_QUICKLZ_SYM { $$= ROW_TYPE_TOKU_QUICKLZ; }
333+ | TOKU_LZMA_SYM { $$= ROW_TYPE_TOKU_LZMA; }
334+ | TOKU_FAST_SYM { $$= ROW_TYPE_TOKU_FAST; }
335+ | TOKU_SMALL_SYM { $$= ROW_TYPE_TOKU_SMALL; }
336 ;
337
338 merge_insert_types:
339@@ -14513,6 +14525,12 @@
340 | TIMESTAMP_ADD {}
341 | TIMESTAMP_DIFF {}
342 | TIME_SYM {}
343+ | TOKU_UNCOMPRESSED_SYM {}
344+ | TOKU_ZLIB_SYM {}
345+ | TOKU_QUICKLZ_SYM {}
346+ | TOKU_LZMA_SYM {}
347+ | TOKU_SMALL_SYM {}
348+ | TOKU_FAST_SYM {}
349 | TYPES_SYM {}
350 | TYPE_SYM {}
351 | UDF_RETURNS_SYM {}
352
353=== modified file 'Percona-Server/storage/innobase/handler/ha_innodb.cc'
354--- Percona-Server/storage/innobase/handler/ha_innodb.cc 2013-12-16 08:45:31 +0000
355+++ Percona-Server/storage/innobase/handler/ha_innodb.cc 2013-12-16 16:21:05 +0000
356@@ -9471,6 +9471,7 @@
357 return("FIXED");
358 case ROW_TYPE_PAGE:
359 case ROW_TYPE_NOT_USED:
360+ default:
361 break;
362 }
363 return("NOT USED");
364@@ -9616,6 +9617,7 @@
365 case ROW_TYPE_FIXED:
366 case ROW_TYPE_PAGE:
367 case ROW_TYPE_NOT_USED:
368+ default:
369 push_warning(
370 thd, Sql_condition::WARN_LEVEL_WARN,
371 ER_ILLEGAL_HA_CREATE_OPTION, \
372@@ -9989,6 +9991,7 @@
373 case ROW_TYPE_NOT_USED:
374 case ROW_TYPE_FIXED:
375 case ROW_TYPE_PAGE:
376+ default:
377 push_warning(
378 thd, Sql_condition::WARN_LEVEL_WARN,
379 ER_ILLEGAL_HA_CREATE_OPTION,

Subscribers

People subscribed via source and target branches