From: Alexander Barkov Date: March 3 2011 3:40pm Subject: bzr push into mysql-5.1 branch (alexander.barkov:3608 to 3609) List-Archive: http://lists.mysql.com/commits/132386 Message-Id: <201103031540.p23FeYrA028919@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM2MDkgQWxleGFuZGVyIEJhcmtvdgkyMDExLTAzLTAzCiAgICAgIEJ1ZyAxMTc2NjUxOSAtIDU5 NjQ4OiBNWV9TVFJUT0xMMTBfTUIyOiBBU1NFUlRJT04gYCgqRU5EUFRSIC0gUykgJSAyID09IDAn IEZBSUxFRC4gCiAgICAgIAogICAgICBQYXJ0IDIuIEZ1bmN0aW9uIFFVT1RFKCkgd2FzIG5vdCBt dWx0aS1ieXRlIHNhZmUuCiAgICAgIAogICAgICAgIEAgbXlzcWwtdGVzdC9yL2N0eXBlX3Vjcy5y ZXN1bHQKICAgICAgICBAIG15c3FsLXRlc3QvdC9jdHlwZV91Y3MudGVzdAogICAgICAgIEFkZGlu ZyB0ZXN0cwogICAgICAKICAgICAgICBAIHNxbC9pdGVtX3N0cmZ1bmMuY2MKICAgICAgICBGaXhp bmcgSXRlbV9mdW5jX3F1b3RlOjp2YWxfc3RyIHRvIGJlIG11bHRpLWJ5dGUgc2FmZS4KICAgICAg CiAgICAgICAgQCBzcWwvaXRlbV9zdHJmdW5jLmgKICAgICAgICBNdWx0aXBsZSBzaXplIG5lZWRl ZCBmb3IgcXVvdGUgY2hhcmFjdGVycyB0byBtYm1heGxlbgoKICAgIG1vZGlmaWVkOgogICAgICBt eXNxbC10ZXN0L3IvY3R5cGVfc2ppcy5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL2N0eXBlX3Vj cy5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC90L2N0eXBlX3NqaXMudGVzdAogICAgICBteXNxbC10 ZXN0L3QvY3R5cGVfdWNzLnRlc3QKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5jYwogICAgICBzcWwv aXRlbV9zdHJmdW5jLmgKIDM2MDggQWxleGFuZGVyIEJhcmtvdgkyMDExLTAzLTAzCiAgICAgIEJV RyMxMTc2NjUxOSAoYnVnIzU5NjQ4KTogTVlfU1RSVE9MTDEwX01CMjogQVNTRVJUSU9OIGAoKkVO RFBUUiAtIFMpICUgMiA9PSAwJyBGQUlMRUQKICAgICAgICAgICAgCiAgICAgIFByb2JsZW06IHdy b25nIGNoYXJhY3RlciBzZXQgcG9pbnRlciB3YXMgcGFzc2VkIHRvIG15X3N0cnRvbGwxMF9tYjIs CiAgICAgIHdoaWNoIGxlZCB0byBEQlVHX0FTU0VSVCBmYWlsdXJlIGluIHNvbWUgY2FzZXMuCiAg ICAgIAogICAgICAgIEAgbXlzcWwtdGVzdC9yL2Z1bmNfZW5jcnlwdF91Y3MyLnJlc3VsdAogICAg ICAgIEAgbXlzcWwtdGVzdC90L2Z1bmNfZW5jcnlwdF91Y3MyLnRlc3QKICAgICAgICBAIG15c3Fs LXRlc3Qvci9jdHlwZV91Y3MucmVzdWx0CiAgICAgICAgQCBteXNxbC10ZXN0L3QvY3R5cGVfdWNz LnRlc3QKICAgICAgICBBZGRpbmcgdGVzdHMKICAgICAgCiAgICAgICAgQCBzcWwvaXRlbV9mdW5j LmNjCiAgICAgICAgImNzIiBpbml0aWFsaXphdGlvbiB3YXMgd3JvbmcgKHJlcyBkb2VzIG5vdCBu ZWNlc3NhcmlseSBwb2ludCB0byAmc3RyX3ZhbHVlKQogICAgICAKICAgICAgICBAIHNxbC9pdGVt X3N0cmZ1bmMuY2MKICAgICAgICBJdGVtX2Z1bmNfZGVjX2VuY3J5cHQ6OnZhbF9zdHIoKSBhbmQg SXRlbV9mdW5jX2Rlc19kZXNjcnlwdDo6dmFsX3N0cigpCiAgICAgICAgZGlkIG5vdCBzZXQgY2hh cmFjdGVyIHNldCBmb3IgdG1wX3ZhbHVlICh0aGUgcmV0dXJuZWQgdmFsdWUpLAogICAgICAgIHNv IHRoZSBvbGQgdmFsdWUsIHdoaWNoIHdhcyBwcmV2aW91c2x5IGNvcGllZCBmcm9tIGFyZ3NbMV0t PnZhbF9zdHIoKSwKICAgICAgICB3YXMgaW5jb3JyZWN0bHkgcmV0dXJuZWQgd2l0aCB0bXBfdmFs dWUuCgogICAgYWRkZWQ6CiAgICAgIG15c3FsLXRlc3Qvci9mdW5jX2VuY3J5cHRfdWNzMi5yZXN1 bHQKICAgICAgbXlzcWwtdGVzdC90L2Z1bmNfZW5jcnlwdF91Y3MyLnRlc3QKICAgIG1vZGlmaWVk OgogICAgICBteXNxbC10ZXN0L3IvY3R5cGVfdWNzLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Qv Y3R5cGVfdWNzLnRlc3QKICAgICAgc3FsL2l0ZW1fZnVuYy5jYwogICAgICBzcWwvaXRlbV9zdHJm dW5jLmNjCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvY3R5cGVfc2ppcy5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdAkyMDA5LTA1LTA1IDA2OjU1OjIy ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdAkyMDExLTAzLTAzIDE1 OjM5OjI2ICswMDAwCkBAIC0yMTgsNCArMjE4LDEwIEBAIGhleChhKQloZXgobG93ZXIoYSkpCWhl eCh1cHBlcihhKSkKIDgzNTI4MzVFCTgzNTI4MzVFCTgzNTI4MzVFCiA4MzcyODM1RQk4MzcyODM1 RQk4MzcyODM1RQogRFJPUCBUQUJMRSB0MTsKKyMKKyMgQnVnIzExNzY2NTE5IC0gQnVnIzU5NjQ4 OiBNWV9TVFJUT0xMMTBfTUIyOiBBU1NFUlRJT04gYCgqRU5EUFRSIC0gUykgJSAyID09IDAnIEZB SUxFRC4KKyMKK1NFTEVDVCBRVU9URSgn77+9XCcpOworUVVPVEUoJ++/vVwnKQorJ++/vVwnCiAj IEVuZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvY3R5cGVf dWNzLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2N0eXBlX3Vjcy5yZXN1bHQJMjAxMS0wMy0w MyAxMjowNDowNCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvY3R5cGVfdWNzLnJlc3VsdAkyMDEx LTAzLTAzIDE1OjM5OjI2ICswMDAwCkBAIC05OTAsOCArOTkwLDggQEAgb2xkX3Bhc3N3b3JkKG5h bWUpCiA/Pz8/Pz8/Pwogc2VsZWN0IHF1b3RlKG5hbWUpIGZyb20gYnVnMjA1MzY7CiBxdW90ZShu YW1lKQotPz8/Pz8/Pz8KLT8/Pz8/Pz8/Pz8/Pz8/Pz8KKyd0ZXN0MScKKydcJ3Rlc3RcXF8yXCcn CiBkcm9wIHRhYmxlIGJ1ZzIwNTM2Owogc2V0IG5hbWVzIHVjczI7CiBFUlJPUiA0MjAwMDogVmFy aWFibGUgJ2NoYXJhY3Rlcl9zZXRfY2xpZW50JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9m ICd1Y3MyJwpAQCAtMTI0NCw0ICsxMjQ0LDkgQEAgRFJPUCBUQUJMRSB0MTsKIFNFTEVDVCBIRVgo Q0hBUihDT0FMRVNDRShOVUxMLCBDSEFSKENPVU5UKCclcycpIFVTSU5HIHVjczIpLCAxLCBAQGds b2JhbC5saWNlbnNlLCBOVUxMKSBVU0lORyBjcDg1MCkpOwogSEVYKENIQVIoQ09BTEVTQ0UoTlVM TCwgQ0hBUihDT1VOVCgnJXMnKSBVU0lORyB1Y3MyKSwgMSwgQEBnbG9iYWwubGljZW5zZSwgTlVM TCkgVVNJTkcgY3A4NTApKQogMDAKK1NFTEVDVCBDT05WRVJUKFFVT1RFKENIQVIoMHhmNSB1c2lu ZyB1Y3MyKSksIFNJR05FRCk7CitDT05WRVJUKFFVT1RFKENIQVIoMHhmNSB1c2luZyB1Y3MyKSks IFNJR05FRCkKKzAKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3Qg SU5URUdFUiB2YWx1ZTogJycKIEVuZCBvZiA1LjAgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L3QvY3R5cGVfc2ppcy50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvY3R5cGVfc2pp cy50ZXN0CTIwMDktMDUtMDUgMDY6NTU6MjIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2N0eXBl X3NqaXMudGVzdAkyMDExLTAzLTAzIDE1OjM5OjI2ICswMDAwCkBAIC05Miw0ICs5MiwxMiBAQCBJ TlNFUlQgSU5UTyB0MSBWQUxVRVMgKDB4ODM3MjgzNUUpLCgweDgzCiBTRUxFQ1QgaGV4KGEpLCBo ZXgobG93ZXIoYSkpLCBoZXgodXBwZXIoYSkpIEZST00gdDEgT1JERVIgQlkgYmluYXJ5KGEpOwog RFJPUCBUQUJMRSB0MTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMTc2NjUxOSAtIEJ1ZyM1 OTY0ODogTVlfU1RSVE9MTDEwX01CMjogQVNTRVJUSU9OIGAoKkVORFBUUiAtIFMpICUgMiA9PSAw JyBGQUlMRUQuCistLWVjaG8gIworIyBJbiB0aGUgYmVsb3cgc3RyaW5nIGJhY2tzbGFzaCAoMHg1 QykgaXMgYSBwYXJ0IG9mIGEgbXVsdGktYnl0ZQorIyBjaGFyYWN0ZXIsIHNvIGl0IHNob3VsZCBu b3QgYmUgcXVvdGVkLgorU0VMRUNUIFFVT1RFKCfvv71cJyk7CisKKwogLS1lY2hvICMgRW5kIG9m IDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9jdHlwZV91Y3MudGVz dCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0eXBlX3Vjcy50ZXN0CTIwMTEtMDMtMDMgMTI6MDQ6MDQg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2N0eXBlX3Vjcy50ZXN0CTIwMTEtMDMtMDMgMTU6Mzk6 MjYgKzAwMDAKQEAgLTc0NSw1ICs3NDUsNiBAQCBEUk9QIFRBQkxFIHQxOwogLS1lY2hvICMgQnVn IzU5NjQ4IG15X3N0cnRvbGwxMF9tYjI6IEFzc2VydGlvbiBgKCplbmRwdHIgLSBzKSAlIDIgPT0g MCcgZmFpbGVkLgogLS1lY2hvICMKIFNFTEVDVCBIRVgoQ0hBUihDT0FMRVNDRShOVUxMLCBDSEFS KENPVU5UKCclcycpIFVTSU5HIHVjczIpLCAxLCBAQGdsb2JhbC5saWNlbnNlLCBOVUxMKSBVU0lO RyBjcDg1MCkpOworU0VMRUNUIENPTlZFUlQoUVVPVEUoQ0hBUigweGY1IHVzaW5nIHVjczIpKSwg U0lHTkVEKTsKIAogLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdz cWwvaXRlbV9zdHJmdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9zdHJmdW5jLmNjCTIwMTEtMDMtMDMg MTI6MDQ6MDQgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDExLTAzLTAzIDE1OjM5 OjI2ICswMDAwCkBAIC0zMjE0LDE0ICszMjE0LDY4IEBAIFN0cmluZyAqSXRlbV9mdW5jX3F1b3Rl Ojp2YWxfc3RyKFN0cmluZyAKICAgfQogCiAgIGFyZ19sZW5ndGg9IGFyZy0+bGVuZ3RoKCk7Ci0g IG5ld19sZW5ndGg9IGFyZ19sZW5ndGgrMjsgLyogZm9yIGJlZ2lubmluZyBhbmQgZW5kaW5nICcg c2lnbnMgKi8KIAotICBmb3IgKGZyb209IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBmcm9tICsg YXJnX2xlbmd0aDsgZnJvbSA8IGVuZDsgZnJvbSsrKQotICAgIG5ld19sZW5ndGgrPSBnZXRfZXNj X2JpdChlc2NtYXNrLCAodWNoYXIpICpmcm9tKTsKKyAgaWYgKGNvbGxhdGlvbi5jb2xsYXRpb24t Pm1ibWF4bGVuID09IDEpCisgIHsKKyAgICBuZXdfbGVuZ3RoPSBhcmdfbGVuZ3RoICsgMjsgLyog Zm9yIGJlZ2lubmluZyBhbmQgZW5kaW5nICcgc2lnbnMgKi8KKyAgICBmb3IgKGZyb209IChjaGFy KikgYXJnLT5wdHIoKSwgZW5kPSBmcm9tICsgYXJnX2xlbmd0aDsgZnJvbSA8IGVuZDsgZnJvbSsr KQorICAgICAgbmV3X2xlbmd0aCs9IGdldF9lc2NfYml0KGVzY21hc2ssICh1Y2hhcikgKmZyb20p OworICB9CisgIGVsc2UKKyAgeworICAgIG5ld19sZW5ndGg9IChhcmdfbGVuZ3RoICogMikgKyAg LyogRm9yIHN0cmluZyBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgKDIgKiBjb2xsYXRp b24uY29sbGF0aW9uLT5tYm1heGxlbik7IC8qIEZvciBxdW90ZXMgKi8KKyAgfQogCiAgIGlmICh0 bXBfdmFsdWUuYWxsb2MobmV3X2xlbmd0aCkpCiAgICAgZ290byBudWxsOwogCisgIGlmIChjb2xs YXRpb24uY29sbGF0aW9uLT5tYm1heGxlbiA+IDEpCisgIHsKKyAgICBDSEFSU0VUX0lORk8gKmNz PSBjb2xsYXRpb24uY29sbGF0aW9uOworICAgIGludCBtYmxlbjsKKyAgICB1Y2hhciAqdG9fZW5k OworICAgIHRvPSAoY2hhciopIHRtcF92YWx1ZS5wdHIoKTsKKyAgICB0b19lbmQ9ICh1Y2hhciop IHRvICsgbmV3X2xlbmd0aDsKKworICAgIC8qIFB1dCBsZWFkaW5nIHF1b3RlICovCisgICAgaWYg KChtYmxlbj0gY3MtPmNzZXQtPndjX21iKGNzLCAnXCcnLCAodWNoYXIgKikgdG8sIHRvX2VuZCkp IDw9IDApCisgICAgICBnb3RvIG51bGw7CisgICAgdG8rPSBtYmxlbjsKKworICAgIGZvciAoc3Rh cnQ9IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBzdGFydCArIGFyZ19sZW5ndGg7IHN0YXJ0IDwg ZW5kOyApCisgICAgeworICAgICAgbXlfd2NfdCB3YzsKKyAgICAgIGJvb2wgZXNjYXBlOworICAg ICAgaWYgKChtYmxlbj0gY3MtPmNzZXQtPm1iX3djKGNzLCAmd2MsICh1Y2hhciopIHN0YXJ0LCAo dWNoYXIqKSBlbmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICBzdGFydCs9IG1i bGVuOworICAgICAgc3dpdGNoICh3YykgeworICAgICAgICBjYXNlIDA6ICAgICAgZXNjYXBlPSAx OyB3Yz0gJzAnOyBicmVhazsKKyAgICAgICAgY2FzZSAnXDAzMic6IGVzY2FwZT0gMTsgd2M9ICda JzsgYnJlYWs7CisgICAgICAgIGNhc2UgJ1wnJzogICBlc2NhcGU9IDE7IGJyZWFrOworICAgICAg ICBjYXNlICdcXCc6ICAgZXNjYXBlPSAxOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDogICAgIGVz Y2FwZT0gMDsgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoZXNjYXBlKQorICAgICAgeworICAg ICAgICBpZiAoKG1ibGVuPSBjcy0+Y3NldC0+d2NfbWIoY3MsICdcXCcsICh1Y2hhciopIHRvLCB0 b19lbmQpKSA8PSAwKQorICAgICAgICAgIGdvdG8gbnVsbDsKKyAgICAgICAgdG8rPSBtYmxlbjsK KyAgICAgIH0KKyAgICAgIGlmICgobWJsZW49IGNzLT5jc2V0LT53Y19tYihjcywgd2MsICh1Y2hh ciopIHRvLCB0b19lbmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICB0bys9IG1i bGVuOworICAgIH0KKworICAgIC8qIFB1dCB0cmFpbGluZyBxdW90ZSAqLworICAgIGlmICgobWJs ZW49IGNzLT5jc2V0LT53Y19tYihjcywgJ1wnJywgKHVjaGFyICopIHRvLCB0b19lbmQpKSA8PSAw KQorICAgICAgZ290byBudWxsOworICAgIHRvKz0gbWJsZW47CisgICAgbmV3X2xlbmd0aD0gdG8g LSB0bXBfdmFsdWUucHRyKCk7CisgICAgZ290byByZXQ7CisgIH0KKwogICAvKgogICAgIFdlIHJl cGxhY2UgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgdG8gdGhlIGJlZ2lubmluZwogICAqLwpAQCAt MzI1Myw2ICszMzA3LDggQEAgU3RyaW5nICpJdGVtX2Z1bmNfcXVvdGU6OnZhbF9zdHIoU3RyaW5n IAogICAgIH0KICAgfQogICAqdG89ICdcJyc7CisKK3JldDoKICAgdG1wX3ZhbHVlLmxlbmd0aChu ZXdfbGVuZ3RoKTsKICAgdG1wX3ZhbHVlLnNldF9jaGFyc2V0KGNvbGxhdGlvbi5jb2xsYXRpb24p OwogICBudWxsX3ZhbHVlPSAwOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX3N0cmZ1bmMu aCcKLS0tIGEvc3FsL2l0ZW1fc3RyZnVuYy5oCTIwMTEtMDEtMTcgMTI6MTE6MzMgKzAwMDAKKysr IGIvc3FsL2l0ZW1fc3RyZnVuYy5oCTIwMTEtMDMtMDMgMTU6Mzk6MjYgKzAwMDAKQEAgLTcwNCw5 ICs3MDQsMTAgQEAgcHVibGljOgogICBTdHJpbmcgKnZhbF9zdHIoU3RyaW5nICopOwogICB2b2lk IGZpeF9sZW5ndGhfYW5kX2RlYygpCiAgIHsKLSAgICB1bG9uZ2xvbmcgbWF4X3Jlc3VsdF9sZW5n dGg9ICh1bG9uZ2xvbmcpIGFyZ3NbMF0tPm1heF9sZW5ndGggKiAyICsgMjsKLSAgICBtYXhfbGVu Z3RoPSAodWludDMyKSBtaW4obWF4X3Jlc3VsdF9sZW5ndGgsIE1BWF9CTE9CX1dJRFRIKTsKICAg ICBjb2xsYXRpb24uc2V0KGFyZ3NbMF0tPmNvbGxhdGlvbik7CisgICAgdWxvbmdsb25nIG1heF9y ZXN1bHRfbGVuZ3RoPSAodWxvbmdsb25nKSBhcmdzWzBdLT5tYXhfbGVuZ3RoICogMiArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIGNvbGxhdGlvbi5jb2xsYXRpb24tPm1i bWF4bGVuOworICAgIG1heF9sZW5ndGg9ICh1aW50MzIpIG1pbihtYXhfcmVzdWx0X2xlbmd0aCwg TUFYX0JMT0JfV0lEVEgpOwogICB9CiB9OwogCgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBm b3IgcHVzaCBlbWFpbHMpLg==