Merge lp:~laurynas-biveinis/percona-server/rebase-5.5.21 into lp:percona-server/5.5

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Stewart Smith
Approved revision: no longer in the source branch.
Merged at revision: 224
Proposed branch: lp:~laurynas-biveinis/percona-server/rebase-5.5.21
Merge into: lp:percona-server/5.5
Prerequisite: lp:~laurynas-biveinis/percona-server/revert-sync-state-flush
Diff against target: 711 lines (+93/-134)
5 files modified
Makefile (+2/-2)
patches/innodb_pass_corrupt_table.patch (+60/-62)
patches/mysql-test.diff (+10/-9)
patches/mysql_dump_ignore_ct.patch (+8/-8)
patches/utf8_general50_ci.patch (+13/-53)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/rebase-5.5.21
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
Review via email: mp+97702@code.launchpad.net

Description of the change

Rebase Percona Server on MySQL 5.5.21.

- Makefile: bump MySQL version to 5.5.21 and Percona Server version to
  24.2.
- innodb_pass_corrupt_table.patch: InnoDB ha_innodb.cc:
  s/upd_buff/upd_buf accordingly to upstream. Reset it to NULL after
  freeing, reset its size to 0.
- mysql-test.diff: re-record percona_server_variables_debug and
  percona_server_variables_release tests.
- mysql_dump_ignore_ct.patch, utf8_general50_ci.patch: refresh
  manually.
- the rest of the patches: refresh automatically.

To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

Jenkins results:
http://jenkins.percona.com/job/percona-server-5.5-param/296/

Very interesting are the mysqldump failures on all centos5 configs:

@@ -5122,8 +5122,6 @@
 -- main : logs flushed successfully!
 -- Starting transaction...
 -- Retrieving table structure for table t1...
--- Sending SELECT query...
--- Retrieving rows...
 --
 -- Host: localhost Database: b12809202_db
 -- ------------------------------------------------------
@@ -5148,7 +5146,9 @@
 /*!40101 SET character_set_client = utf8 */;
 CREATE TABLE `t1` (
   `c1` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+) ENGINE=MyIS-- Sending SELECT query...
+-- Retrieving rows...
+AM DEFAULT CHARSET=latin1;
 /*!40101 SET character_set_client = @saved_cs_client */;

I have verified this to be an upstream issue and will consider how to best report it there:
http://jenkins.percona.com/job/mysql-5.5-url-param/3/

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 'Makefile'
2--- Makefile 2012-02-02 07:11:59 +0000
3+++ Makefile 2012-03-15 17:05:34 +0000
4@@ -1,7 +1,7 @@
5 FETCH_CMD=wget
6 MASTER_SITE=http://s3.amazonaws.com/percona.com/downloads/community
7-MYSQL_VERSION=5.5.20
8-PERCONA_SERVER_VERSION=rel24.1
9+MYSQL_VERSION=5.5.21
10+PERCONA_SERVER_VERSION=rel24.2
11 PERCONA_SERVER ?=Percona-Server-$(MYSQL_VERSION)-$(PERCONA_SERVER_VERSION)
12 PERCONA_SERVER_SHORT_1 ?=Percona-Server-$(MYSQL_VERSION)
13 PERCONA_SERVER_SHORT_2 ?=Percona-Server
14
15=== modified file 'patches/innodb_pass_corrupt_table.patch'
16--- patches/innodb_pass_corrupt_table.patch 2012-03-15 17:05:34 +0000
17+++ patches/innodb_pass_corrupt_table.patch 2012-03-15 17:05:34 +0000
18@@ -7,7 +7,7 @@
19 # should be done or reviewed by the maintainer!
20 --- a/storage/innobase/btr/btr0btr.c
21 +++ b/storage/innobase/btr/btr0btr.c
22-@@ -692,6 +692,12 @@
23+@@ -713,6 +713,12 @@
24
25 block = btr_block_get(space, zip_size, root_page_no, RW_X_LATCH,
26 index, mtr);
27@@ -17,10 +17,10 @@
28 + }
29 + ut_a(block);
30 +
31- ut_a((ibool)!!page_is_comp(buf_block_get_frame(block))
32- == dict_table_is_comp(index->table));
33+ btr_assert_not_corrupted(block, index);
34 #ifdef UNIV_BTR_DEBUG
35-@@ -978,6 +984,12 @@
36+ if (!dict_index_is_ibuf(index)) {
37+@@ -998,6 +1004,12 @@
38
39 root = btr_root_get(index, &mtr);
40
41@@ -33,7 +33,7 @@
42 if (flag == BTR_N_LEAF_PAGES) {
43 seg_header = root + PAGE_HEADER + PAGE_BTR_SEG_LEAF;
44
45-@@ -1437,6 +1449,13 @@
46+@@ -1457,6 +1469,13 @@
47
48 root = btr_page_get(space, zip_size, root_page_no, RW_X_LATCH,
49 NULL, &mtr);
50@@ -47,7 +47,7 @@
51 #ifdef UNIV_BTR_DEBUG
52 ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF
53 + root, space));
54-@@ -1460,6 +1479,12 @@
55+@@ -1480,6 +1499,12 @@
56
57 root = btr_page_get(space, zip_size, root_page_no, RW_X_LATCH,
58 NULL, &mtr);
59@@ -60,7 +60,7 @@
60 #ifdef UNIV_BTR_DEBUG
61 ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP
62 + root, space));
63-@@ -1493,6 +1518,11 @@
64+@@ -1513,6 +1538,11 @@
65 block = btr_block_get(space, zip_size, root_page_no, RW_X_LATCH,
66 NULL, mtr);
67
68@@ -146,7 +146,7 @@
69 #ifdef UNIV_BTR_DEBUG
70 ut_a(page_is_comp(get_block->frame) == page_is_comp(page));
71 #endif /* UNIV_BTR_DEBUG */
72-@@ -590,6 +620,19 @@
73+@@ -595,6 +625,19 @@
74 file, line, mtr);
75
76 if (block == NULL) {
77@@ -166,7 +166,7 @@
78 /* This must be a search to perform an insert/delete
79 mark/ delete; try using the insert/delete buffer */
80
81-@@ -664,6 +707,16 @@
82+@@ -669,6 +712,16 @@
83 block->check_index_page_at_flush = TRUE;
84 page = buf_block_get_frame(block);
85
86@@ -183,7 +183,7 @@
87 if (rw_latch != RW_NO_LATCH) {
88 #ifdef UNIV_ZIP_DEBUG
89 const page_zip_des_t* page_zip
90-@@ -857,6 +910,17 @@
91+@@ -862,6 +915,17 @@
92 RW_NO_LATCH, NULL, BUF_GET,
93 file, line, mtr);
94 page = buf_block_get_frame(block);
95@@ -201,7 +201,7 @@
96 ut_ad(index->id == btr_page_get_index_id(page));
97
98 block->check_index_page_at_flush = TRUE;
99-@@ -977,6 +1041,14 @@
100+@@ -982,6 +1046,14 @@
101 RW_NO_LATCH, NULL, BUF_GET,
102 file, line, mtr);
103 page = buf_block_get_frame(block);
104@@ -216,7 +216,7 @@
105 ut_ad(index->id == btr_page_get_index_id(page));
106
107 if (height == ULINT_UNDEFINED) {
108-@@ -1190,6 +1262,12 @@
109+@@ -1195,6 +1267,12 @@
110 *big_rec = NULL;
111
112 block = btr_cur_get_block(cursor);
113@@ -229,7 +229,7 @@
114 page = buf_block_get_frame(block);
115 index = cursor->index;
116 zip_size = buf_block_get_zip_size(block);
117-@@ -2922,6 +3000,11 @@
118+@@ -2927,6 +3005,11 @@
119
120 block = btr_cur_get_block(cursor);
121
122@@ -241,7 +241,7 @@
123 ut_ad(page_is_leaf(buf_block_get_frame(block)));
124
125 rec = btr_cur_get_rec(cursor);
126-@@ -3630,6 +3713,11 @@
127+@@ -3635,6 +3718,11 @@
128
129 page = btr_cur_get_page(&cursor);
130
131@@ -264,7 +264,7 @@
132 /**************************************************************//**
133 Allocates memory for a persistent cursor object and initializes the cursor.
134 @return own: persistent cursor */
135-@@ -102,6 +102,12 @@
136+@@ -114,6 +114,12 @@
137 ut_ad(cursor->latch_mode != BTR_NO_LATCHES);
138
139 block = btr_pcur_get_block(cursor);
140@@ -277,7 +277,7 @@
141 index = btr_cur_get_index(btr_pcur_get_btr_cur(cursor));
142
143 page_cursor = btr_pcur_get_page_cur(cursor);
144-@@ -397,6 +403,15 @@
145+@@ -409,6 +415,15 @@
146 cursor->latch_mode,
147 btr_pcur_get_btr_cur(cursor)->index, mtr);
148 next_page = buf_block_get_frame(next_block);
149@@ -326,7 +326,7 @@
150
151 /* prototypes for new functions added to ha_innodb.cc */
152 trx_t* innobase_get_trx();
153-@@ -1151,6 +1152,11 @@
154+@@ -1150,6 +1151,11 @@
155 ready = buf_flush_ready_for_replace(&block->page);
156 mutex_exit(&block->mutex);
157
158@@ -338,7 +338,7 @@
159 if (!ready) {
160
161 return(block);
162-@@ -1947,6 +1953,13 @@
163+@@ -1946,6 +1952,13 @@
164 return(NULL);
165 }
166
167@@ -352,7 +352,7 @@
168 block_mutex = buf_page_get_mutex_enter(bpage);
169
170 rw_lock_s_unlock(&buf_pool->page_hash_latch);
171-@@ -2526,6 +2539,13 @@
172+@@ -2525,6 +2538,13 @@
173 return(NULL);
174 }
175
176@@ -366,7 +366,7 @@
177 switch (buf_block_get_state(block)) {
178 buf_page_t* bpage;
179 ibool success;
180-@@ -3200,6 +3220,7 @@
181+@@ -3199,6 +3219,7 @@
182 bpage->newest_modification = 0;
183 bpage->oldest_modification = 0;
184 HASH_INVALIDATE(bpage, hash);
185@@ -374,7 +374,7 @@
186 #if defined UNIV_DEBUG_FILE_ACCESSES || defined UNIV_DEBUG
187 bpage->file_page_was_freed = FALSE;
188 #endif /* UNIV_DEBUG_FILE_ACCESSES || UNIV_DEBUG */
189-@@ -3838,6 +3859,7 @@
190+@@ -3837,6 +3858,7 @@
191 (ulong) bpage->offset);
192 }
193
194@@ -382,7 +382,7 @@
195 /* From version 3.23.38 up we store the page checksum
196 to the 4 first bytes of the page end lsn field */
197
198-@@ -3879,6 +3901,23 @@
199+@@ -3878,6 +3900,23 @@
200 REFMAN "forcing-innodb-recovery.html\n"
201 "InnoDB: about forcing recovery.\n", stderr);
202
203@@ -406,7 +406,7 @@
204 if (srv_force_recovery < SRV_FORCE_IGNORE_CORRUPT) {
205 /* If page space id is larger than TRX_SYS_SPACE
206 (0), we will attempt to mark the corresponding
207-@@ -3895,6 +3934,7 @@
208+@@ -3894,6 +3933,7 @@
209 }
210 }
211 }
212@@ -414,7 +414,7 @@
213
214 if (recv_recovery_is_on()) {
215 /* Pages must be uncompressed for crash recovery. */
216-@@ -3904,8 +3944,11 @@
217+@@ -3903,8 +3943,11 @@
218
219 if (uncompressed && !recv_no_ibuf_operations) {
220 ibuf_merge_or_delete_for_page(
221@@ -787,7 +787,7 @@
222 if (descr != NULL) {
223 --- a/storage/innobase/handler/ha_innodb.cc
224 +++ b/storage/innobase/handler/ha_innodb.cc
225-@@ -4011,6 +4011,12 @@
226+@@ -4024,6 +4024,12 @@
227 DBUG_RETURN(1);
228 }
229
230@@ -797,30 +797,28 @@
231 + DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);
232 + }
233 +
234- /* Create buffers for packing the fields of a record. Why
235- table->reclength did not work here? Obviously, because char
236- fields when packed actually became 1 byte longer, when we also
237-@@ -4038,6 +4044,19 @@
238+ /* Will be allocated if it is needed in ::update_row() */
239+ upd_buf = NULL;
240+ upd_buf_size = 0;
241+@@ -4043,6 +4049,17 @@
242 /* Get pointer to a table object in InnoDB dictionary cache */
243 ib_table = dict_table_get(norm_name, TRUE);
244-
245+
246 + if (srv_pass_corrupt_table <= 1 && ib_table && ib_table->is_corrupt) {
247 + free_share(share);
248-+ my_free(upd_buff);
249++ my_free(upd_buf);
250++ upd_buf = NULL;
251++ upd_buf_size = 0;
252 +
253 + DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);
254 + }
255 +
256 + share->ib_table = ib_table;
257 +
258-+
259-+
260-+
261-+
262 if (NULL == ib_table) {
263 if (is_part && retries < 10) {
264- ++retries;
265-@@ -5187,6 +5206,10 @@
266+ /* MySQL partition engine hard codes the file name
267+@@ -5263,6 +5280,10 @@
268
269 ha_statistic_increment(&SSV::ha_write_count);
270
271@@ -831,7 +829,7 @@
272 if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
273 table->timestamp_field->set_time();
274
275-@@ -5403,6 +5426,10 @@
276+@@ -5479,6 +5500,10 @@
277 func_exit:
278 innobase_active_small();
279
280@@ -842,7 +840,7 @@
281 DBUG_RETURN(error_result);
282 }
283
284-@@ -5580,6 +5607,10 @@
285+@@ -5673,6 +5698,10 @@
286
287 ha_statistic_increment(&SSV::ha_update_count);
288
289@@ -853,7 +851,7 @@
290 if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE)
291 table->timestamp_field->set_time();
292
293-@@ -5668,6 +5699,10 @@
294+@@ -5760,6 +5789,10 @@
295
296 innobase_active_small();
297
298@@ -864,7 +862,7 @@
299 DBUG_RETURN(error);
300 }
301
302-@@ -5689,6 +5724,10 @@
303+@@ -5781,6 +5814,10 @@
304
305 ha_statistic_increment(&SSV::ha_delete_count);
306
307@@ -875,7 +873,7 @@
308 if (!prebuilt->upd_node) {
309 row_get_prebuilt_update_vector(prebuilt);
310 }
311-@@ -5715,6 +5754,10 @@
312+@@ -5807,6 +5844,10 @@
313
314 innobase_active_small();
315
316@@ -886,7 +884,7 @@
317 DBUG_RETURN(error);
318 }
319
320-@@ -5954,6 +5997,10 @@
321+@@ -6046,6 +6087,10 @@
322
323 ha_statistic_increment(&SSV::ha_read_key_count);
324
325@@ -897,7 +895,7 @@
326 index = prebuilt->index;
327
328 if (UNIV_UNLIKELY(index == NULL) || dict_index_is_corrupted(index)) {
329-@@ -6022,6 +6069,10 @@
330+@@ -6113,6 +6158,10 @@
331 ret = DB_UNSUPPORTED;
332 }
333
334@@ -908,7 +906,7 @@
335 switch (ret) {
336 case DB_SUCCESS:
337 error = 0;
338-@@ -6136,6 +6187,10 @@
339+@@ -6227,6 +6276,10 @@
340 {
341 DBUG_ENTER("change_active_index");
342
343@@ -919,7 +917,7 @@
344 ut_ad(user_thd == ha_thd());
345 ut_a(prebuilt->trx == thd_to_trx(user_thd));
346
347-@@ -6249,6 +6304,10 @@
348+@@ -6340,6 +6393,10 @@
349
350 DBUG_ENTER("general_fetch");
351
352@@ -930,7 +928,7 @@
353 ut_a(prebuilt->trx == thd_to_trx(user_thd));
354
355 innodb_srv_conc_enter_innodb(prebuilt->trx);
356-@@ -6258,6 +6317,10 @@
357+@@ -6349,6 +6406,10 @@
358
359 innodb_srv_conc_exit_innodb(prebuilt->trx);
360
361@@ -941,7 +939,7 @@
362 switch (ret) {
363 case DB_SUCCESS:
364 error = 0;
365-@@ -7524,10 +7587,18 @@
366+@@ -7615,10 +7676,18 @@
367
368 update_thd(ha_thd());
369
370@@ -960,7 +958,7 @@
371 error = convert_error_code_to_mysql(error, prebuilt->table->flags,
372 NULL);
373
374-@@ -8039,6 +8110,16 @@
375+@@ -8124,6 +8193,16 @@
376 return(ranges + (double) rows / (double) total_rows * time_for_scan);
377 }
378
379@@ -977,7 +975,7 @@
380 /*********************************************************************//**
381 Calculates the key number used inside MySQL for an Innobase index. We will
382 first check the "index translation table" for a match of the index to get
383-@@ -8216,7 +8297,7 @@
384+@@ -8301,7 +8380,7 @@
385 ib_table = prebuilt->table;
386
387 if (flag & HA_STATUS_TIME) {
388@@ -986,7 +984,7 @@
389 /* In sql_show we call with this flag: update
390 then statistics so that they are up-to-date */
391
392-@@ -8516,10 +8597,18 @@
393+@@ -8601,10 +8680,18 @@
394 THD* thd, /*!< in: connection thread handle */
395 HA_CHECK_OPT* check_opt) /*!< in: currently ignored */
396 {
397@@ -1005,7 +1003,7 @@
398 return(0);
399 }
400
401-@@ -8755,6 +8844,10 @@
402+@@ -8840,6 +8927,10 @@
403 my_error(ER_QUERY_INTERRUPTED, MYF(0));
404 }
405
406@@ -1016,7 +1014,7 @@
407 DBUG_RETURN(is_ok ? HA_ADMIN_OK : HA_ADMIN_CORRUPT);
408 }
409
410-@@ -9525,6 +9618,10 @@
411+@@ -9610,6 +9701,10 @@
412
413 update_thd(thd);
414
415@@ -1027,7 +1025,7 @@
416 if (prebuilt->table->ibd_file_missing && !thd_tablespace_op(thd)) {
417 ut_print_timestamp(stderr);
418 fprintf(stderr,
419-@@ -11989,6 +12086,26 @@
420+@@ -12073,6 +12168,26 @@
421 "dump file (if present). Disabled by default.",
422 NULL, NULL, FALSE);
423
424@@ -1054,10 +1052,10 @@
425 static struct st_mysql_sys_var* innobase_system_variables[]= {
426 MYSQL_SYSVAR(additional_mem_pool_size),
427 MYSQL_SYSVAR(autoextend_increment),
428-@@ -12040,6 +12157,7 @@
429- MYSQL_SYSVAR(purge_threads),
430- MYSQL_SYSVAR(purge_batch_size),
431- MYSQL_SYSVAR(rollback_segments),
432+@@ -12166,6 +12281,7 @@
433+ #ifdef UNIV_DEBUG
434+ MYSQL_SYSVAR(trx_rseg_n_slots_debug),
435+ #endif /* UNIV_DEBUG */
436 + MYSQL_SYSVAR(corrupt_table_action),
437 NULL
438 };
439@@ -1072,7 +1070,7 @@
440 } INNOBASE_SHARE;
441
442
443-@@ -135,6 +136,7 @@
444+@@ -136,6 +137,7 @@
445 int close(void);
446 double scan_time();
447 double read_time(uint index, uint ranges, ha_rows rows);
448@@ -1308,7 +1306,7 @@
449
450 --- a/storage/innobase/row/row0sel.c
451 +++ b/storage/innobase/row/row0sel.c
452-@@ -3912,6 +3912,13 @@
453+@@ -3919,6 +3919,13 @@
454 /* PHASE 4: Look for matching records in a loop */
455
456 rec = btr_pcur_get_rec(pcur);
457@@ -1322,7 +1320,7 @@
458 ut_ad(!!page_rec_is_comp(rec) == comp);
459 #ifdef UNIV_SEARCH_DEBUG
460 /*
461-@@ -3989,7 +3996,13 @@
462+@@ -3996,7 +4003,13 @@
463 if (UNIV_UNLIKELY(next_offs >= UNIV_PAGE_SIZE - PAGE_DIR)) {
464
465 wrong_offs:
466@@ -1337,7 +1335,7 @@
467 ut_print_timestamp(stderr);
468 buf_page_print(page_align(rec), 0);
469 fprintf(stderr,
470-@@ -4040,7 +4053,8 @@
471+@@ -4047,7 +4060,8 @@
472
473 offsets = rec_get_offsets(rec, index, offsets, ULINT_UNDEFINED, &heap);
474
475
476=== modified file 'patches/mysql-test.diff'
477--- patches/mysql-test.diff 2012-03-15 17:05:34 +0000
478+++ patches/mysql-test.diff 2012-03-15 17:05:34 +0000
479@@ -995,9 +995,9 @@
480 +insert into t2 select variable_name from information_schema.global_variables order by variable_name;
481 +insert into t2 select variable_name from information_schema.session_variables order by variable_name;
482
483- # These are only present in debug builds.
484- delete from t2 where variable_name='innodb_change_buffering_debug';
485-@@ -63,7 +63,7 @@
486+ # Performance schema variables are too long for files named
487+ # 'mysql-test/suite/sys_vars/t/' ...
488+@@ -59,7 +59,7 @@
489 where length(variable_name) > 50;
490
491 select variable_name as `There should be *no* variables listed below:` from t2
492@@ -1008,7 +1008,7 @@
493 drop table t2;
494 --- a/mysql-test/suite/sys_vars/r/all_vars.result
495 +++ b/mysql-test/suite/sys_vars/r/all_vars.result
496-@@ -1,8 +1,8 @@
497+@@ -1,14 +1,18 @@
498 create table t1 (test_name text);
499 create table t2 (variable_name text);
500 load data infile "MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t1;
501@@ -1016,10 +1016,8 @@
502 -insert into t2 select variable_name from information_schema.session_variables;
503 +insert into t2 select variable_name from information_schema.global_variables order by variable_name;
504 +insert into t2 select variable_name from information_schema.session_variables order by variable_name;
505- delete from t2 where variable_name='innodb_change_buffering_debug';
506- delete from t2 where variable_name='innodb_flush_checkpoint_debug';
507 update t2 set variable_name= replace(variable_name, "PERFORMANCE_SCHEMA_", "PFS_");
508-@@ -10,7 +10,11 @@
509+ select variable_name as `There should be *no* long test name listed below:` from t2
510 where length(variable_name) > 50;
511 There should be *no* long test name listed below:
512 select variable_name as `There should be *no* variables listed below:` from t2
513@@ -1040,7 +1038,7 @@
514 +SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
515 --- /dev/null
516 +++ b/mysql-test/r/percona_server_variables_debug.result
517-@@ -0,0 +1,383 @@
518+@@ -0,0 +1,385 @@
519 +SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
520 +Variable_name
521 +AUTOCOMMIT
522@@ -1205,6 +1203,7 @@
523 +INNODB_THREAD_CONCURRENCY
524 +INNODB_THREAD_CONCURRENCY_TIMER_BASED
525 +INNODB_THREAD_SLEEP_DELAY
526++INNODB_TRX_RSEG_N_SLOTS_DEBUG
527 +INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
528 +INNODB_USE_NATIVE_AIO
529 +INNODB_USE_SYS_MALLOC
530@@ -1393,6 +1392,7 @@
531 +SSL_CIPHER
532 +SSL_KEY
533 +STORAGE_ENGINE
534++STORED_PROGRAM_CACHE
535 +SYNC_BINLOG
536 +SYNC_FRM
537 +SYNC_MASTER_INFO
538@@ -1426,7 +1426,7 @@
539 +WARNING_COUNT
540 --- /dev/null
541 +++ b/mysql-test/r/percona_server_variables_release.result
542-@@ -0,0 +1,378 @@
543+@@ -0,0 +1,379 @@
544 +SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
545 +Variable_name
546 +AUTOCOMMIT
547@@ -1774,6 +1774,7 @@
548 +SSL_CIPHER
549 +SSL_KEY
550 +STORAGE_ENGINE
551++STORED_PROGRAM_CACHE
552 +SYNC_BINLOG
553 +SYNC_FRM
554 +SYNC_MASTER_INFO
555
556=== modified file 'patches/mysql_dump_ignore_ct.patch'
557--- patches/mysql_dump_ignore_ct.patch 2011-09-21 09:20:58 +0000
558+++ patches/mysql_dump_ignore_ct.patch 2012-03-15 17:05:34 +0000
559@@ -17,16 +17,16 @@
560 OPT_TZ_UTC, OPT_CREATE_SLAP_SCHEMA,
561 --- a/client/mysqldump.c
562 +++ b/client/mysqldump.c
563-@@ -105,7 +105,7 @@
564+@@ -106,7 +106,7 @@
565+ opt_complete_insert= 0, opt_drop_database= 0,
566+ opt_replace_into= 0,
567 opt_dump_triggers= 0, opt_routines=0, opt_tz_utc=1,
568- opt_slave_apply= 0,
569+- opt_slave_apply= 0,
570++ opt_slave_apply= 0, opt_ignore_show_create_table_error=0,
571 opt_include_master_host_port= 0,
572-- opt_events= 0,
573-+ opt_events= 0, opt_ignore_show_create_table_error=0,
574+ opt_events= 0, opt_comments_used= 0,
575 opt_alltspcs=0, opt_notspcs= 0;
576- static my_bool insert_pat_inited= 0, debug_info_flag= 0, debug_check_flag= 0;
577- static ulong opt_max_allowed_packet, opt_net_buffer_length;
578-@@ -354,6 +354,9 @@
579+@@ -357,6 +357,9 @@
580 {"insert-ignore", OPT_INSERT_IGNORE, "Insert rows with INSERT IGNORE.",
581 &opt_ignore, &opt_ignore, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
582 0, 0},
583@@ -36,7 +36,7 @@
584 {"lines-terminated-by", OPT_LTB,
585 "Lines in the output file are terminated by the given string.",
586 &lines_terminated, &lines_terminated, 0, GET_STR,
587-@@ -2312,13 +2315,21 @@
588+@@ -2505,13 +2508,21 @@
589 /* Make an sql-file, if path was given iow. option -T was given */
590 char buff[20+FN_REFLEN];
591 MYSQL_FIELD *field;
592
593=== modified file 'patches/utf8_general50_ci.patch'
594--- patches/utf8_general50_ci.patch 2011-08-09 20:52:20 +0000
595+++ patches/utf8_general50_ci.patch 2012-03-15 17:05:34 +0000
596@@ -38,28 +38,28 @@
597 #ifdef HAVE_UCA_COLLATIONS
598
599 #ifdef HAVE_CHARSET_ucs2
600-@@ -204,6 +207,7 @@
601- #ifdef HAVE_CHARSET_ucs2
602+@@ -205,6 +208,7 @@
603 add_compiled_collation(&my_charset_ucs2_general_ci);
604 add_compiled_collation(&my_charset_ucs2_bin);
605+ add_compiled_collation(&my_charset_ucs2_general_mysql500_ci);
606 + add_compiled_collation(&my_charset_ucs2_general50_ci);
607 #ifdef HAVE_UCA_COLLATIONS
608 add_compiled_collation(&my_charset_ucs2_unicode_ci);
609 add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
610-@@ -236,6 +240,7 @@
611- #ifdef HAVE_CHARSET_utf8
612+@@ -238,6 +242,7 @@
613 add_compiled_collation(&my_charset_utf8_general_ci);
614 add_compiled_collation(&my_charset_utf8_bin);
615+ add_compiled_collation(&my_charset_utf8_general_mysql500_ci);
616 + add_compiled_collation(&my_charset_utf8_general50_ci);
617 #ifdef HAVE_UTF8_GENERAL_CS
618 add_compiled_collation(&my_charset_utf8_general_cs);
619 #endif
620 --- a/strings/ctype-ucs2.c
621 +++ b/strings/ctype-ucs2.c
622-@@ -3154,6 +3154,42 @@
623- &my_collation_ucs2_general_ci_handler
624+@@ -3188,6 +3188,42 @@
625 };
626
627+
628 +
629 +extern MY_UNICASE_INFO *my_unicase_general50[256];
630 +
631@@ -101,10 +101,10 @@
632 90,0,0, /* number */
633 --- a/strings/ctype-utf8.c
634 +++ b/strings/ctype-utf8.c
635-@@ -193,6 +193,138 @@
636+@@ -192,6 +192,138 @@
637+ {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
638 };
639
640-
641 +static MY_UNICASE_INFO plane00_general50[]={
642 + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
643 + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
644@@ -238,9 +238,9 @@
645 +
646 +
647
648- static MY_UNICASE_INFO plane01[]={
649- {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
650-@@ -1542,6 +1674,48 @@
651+ /*
652+ Almost similar to plane00, but maps sorting order
653+@@ -1718,6 +1850,48 @@
654
655
656 /*
657@@ -289,7 +289,7 @@
658 Turkish lower/upper mapping:
659 1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
660 0x0131 LATIN SMALL LETTER DOTLESS I
661-@@ -2814,6 +2988,39 @@
662+@@ -3023,6 +3197,39 @@
663 };
664
665
666@@ -397,44 +397,4 @@
667 +ue
668
669 +drop table t1;
670---- /dev/null
671-+++ b/mysql-test/r/percona_ucs2_general50_ci.result
672-@@ -0,0 +1,38 @@
673-+SET NAMES latin1;
674-+SET collation_connection='ucs2_general50_ci';
675-+drop table if exists t1;
676-+create table t1 as select repeat(' ', 64) as s1;
677-+select collation(s1) from t1;
678-+collation(s1)
679-+ucs2_general50_ci
680-+delete from t1;
681-+insert into t1 values ('a'),('ae'),(_latin1 0xE4);
682-+insert into t1 values ('o'),('oe'),(_latin1 0xF6);
683-+insert into t1 values ('s'),('ss'),(_latin1 0xDF);
684-+insert into t1 values ('u'),('ue'),(_latin1 0xFC);
685-+select s1, hex(s1) from t1 order by s1, binary s1;
686-+s1 hex(s1)
687-+ 00
688-+ 00
689-+ 00
690-+ 00
691-+ 00
692-+ 00
693-+ 00
694-+ 00
695-+a 61
696-+o 6F
697-+s 73
698-+u 75
699-+select group_concat(s1 order by binary s1) from t1 group by s1;
700-+group_concat(s1 order by binary s1)
701-+a
702-+o
703-+
704-+u
705-+
706-+a
707-+o
708-+s
709-+u
710-+drop table t1;
711+Binary files /dev/null and b/mysql-test/r/percona_ucs2_general50_ci.result differ

Subscribers

People subscribed via source and target branches