Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lQoLo-0000wC-UI for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Mar 2021 09:38:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lQoLn-0004qz-Sf for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Mar 2021 09:38:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lQoLn-0004qX-6J for pgsql-hackers@lists.postgresql.org; Mon, 29 Mar 2021 09:38:23 +0000 Received: from mxout1.routing.net ([2a03:2900:1:a::a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lQoLi-0007ry-Kv for pgsql-hackers@lists.postgresql.org; Mon, 29 Mar 2021 09:38:22 +0000 Received: from mxbox2.masterlogin.de (unknown [192.168.10.89]) by mxout1.routing.net (Postfix) with ESMTP id 2872A40551; Mon, 29 Mar 2021 09:38:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1617010694; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=TASmNLUP/3a2Qy0mnh6CN0E2eTWC5XdRbLTHTCGUeCw=; b=u3vGyy/x5kV8KK46/E7pDUEPng1sUMKSpLugZyr8J4xl5oiCWRE518p//ZdnG7qIIJvKqs HT+d8AcYo73hHDKQkysIY15r+2+73BE7DgBZO7S2ee1HUVKaRcAlTkcGI4ibkdJ+pMdCXl dwiYvyr/yyurUtpmwWS+54LSPrt70p8= Received: from remote.index.de (business-90-187-114-221.pool2.vodafone-ip.de [90.187.114.221]) by mxbox2.masterlogin.de (Postfix) with ESMTPSA id 8FA941004E2; Mon, 29 Mar 2021 09:38:13 +0000 (UTC) Received: from acedia.index-gruppe.local (192.168.3.121) by acedia.index-gruppe.local (192.168.3.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 29 Mar 2021 11:38:12 +0200 Received: from acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56]) by acedia.index-gruppe.local ([fe80::ecd1:5d0a:a834:dd56%5]) with mapi id 15.01.2176.009; Mon, 29 Mar 2021 11:38:12 +0200 From: Arne Roland To: David Steele , Alvaro Herrera CC: Pg Hackers Subject: Re: Rename of triggers for partitioned tables Thread-Topic: Rename of triggers for partitioned tables Thread-Index: AQHWxEk1+rora/wutkWbcRQhC03q0KnbGQ2sgAAECBOATmSTgIBhAeKAgBDG6bOAACCNTw== Date: Mon, 29 Mar 2021 09:38:12 +0000 Message-ID: References: <20210115222641.GA26284@alvherre.pgsql>,<0e245ca1-bb16-2416-a9cb-7255907227d7@pgmasters.net>,<63c8be480eda4ef28d17a019e79841e2@index.de> In-Reply-To: <63c8be480eda4ef28d17a019e79841e2@index.de> Accept-Language: en-US, de-DE Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.255.1.33] Content-Type: multipart/mixed; boundary="_004_e93f8494c6314b58ad52b553b0e50779indexde_" MIME-Version: 1.0 X-Mail-ID: ac576b0f-798e-4ba6-b189-ae96a7b680cc List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_e93f8494c6314b58ad52b553b0e50779indexde_ Content-Type: multipart/alternative; boundary="_000_e93f8494c6314b58ad52b553b0e50779indexde_" --_000_e93f8494c6314b58ad52b553b0e50779indexde_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Attached a rebased patch with the suggested "ONLY ON" change. Regards Arne ________________________________ From: Arne Roland Sent: Monday, March 29, 2021 9:37:53 AM To: David Steele; Alvaro Herrera Cc: Pg Hackers Subject: Re: Rename of triggers for partitioned tables David Steele wrote: > Arne, thoughts on =C1lvaro's comments? > > Marking this patch as Waiting for Author. Thank you for the reminder. I was to absorbed by other tasks. I should be m= ore present in the upcoming weeks. > I think you did not register the patch in commitfest, so I did that for > you: https://commitfest.postgresql.org/32/2943/ Thank you! I should have done that. > As you say, triggers on children don't necessarily have to have the same > name as on parent; this already happens when the trigger is renamed in > the child table but not on parent. In that situation the search on the > child will fail, which will cause the whole thing to fail I think. > > We now have the column pg_trigger.tgparentid, and I think it would be > better (more reliable) to search for the trigger in the child by the > tgparentid column instead, rather than by name. The last patch already checks tgparentid and errors out if either of those = do not match. The reasoning behind that was, that I don't see a clear reasonable way to h= andle this scenario. If the user choose to rename the child trigger, I am at a loss what to do. I thought to pass it back to the user to solve the situation instead of sim= ply ignoring the users earlier rename. Silently renaming sounded a bit presumptuous to me, even though I don't car= e that much either way. Do you think silently renaming is better than yielding an error? > Also, I think it would be good to have > ALTER TRIGGER .. ON ONLY parent RENAME TO .. > to avoid recursing to children. This seems mostly pointless, but since > we've allowed changing the name of the trigger in children thus far, > then we've implicitly made it supported to have triggers that are named > differently. (And it's not entirely academic, since the trigger name > determines firing order.) If it would be entirely academic, I wouldn't have noticed the whole thing i= n the first place. The on only variant sounds like a good idea to me. Even though hardly worth= any efford, it seems simple enough. I will work on that. > Alternatively to this last point, we could decide to disallow renaming > of triggers on children (i.e. if trigger has tgparentid set, then > renaming is disallowed). I don't have a problem with that, but it would > have to be an explicit decision to take. I rejected that idea, because I was unsure what to do with migrations. If w= e would be discussing this a few years back, this would have been likely my= vote, but I don't see it happening now. Regards Arne --_000_e93f8494c6314b58ad52b553b0e50779indexde_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Attached a rebased patch with the suggested "ONLY ON" change.<= /p>


Regards

Arne


From: Arne Roland <A.Rol= and@index.de>
Sent: Monday, March 29, 2021 9:37:53 AM
To: David Steele; Alvaro Herrera
Cc: Pg Hackers
Subject: Re: Rename of triggers for partitioned tables
 
David Steele wrote:
> Arne, thoughts on =C1lvaro's comments?
>
> Marking this patch as Waiting for Author.

Thank you for the reminder. I was to absorbed by other tasks. I should be m= ore present in the upcoming weeks.

> I think you did not register the patch in commitfest, so I did that fo= r
> you: https://commitfest.postgresql.org/32/2943/

Thank you! I should have done that.

> As you say, triggers on children don't necessarily have to have the sa= me
> name as on parent; this already happens when the trigger is renamed in=
> the child table but not on parent.  In that situation the search = on the
> child will fail, which will cause the whole thing to fail I think.
>
> We now have the column pg_trigger.tgparentid, and I think it would be<= br> > better (more reliable) to search for the trigger in the child by the > tgparentid column instead, rather than by name.

The last patch already checks tgparentid and errors out if either of those = do not match.
The reasoning behind that was, that I don't see a clear reasonable way to h= andle this scenario.
If the user choose to rename the child trigger, I am at a loss what to do.<= br> I thought to pass it back to the user to solve the situation instead of sim= ply ignoring the users earlier rename.
Silently renaming sounded a bit presumptuous to me, even though I don't car= e that much either way.

Do you think silently renaming is better than yielding an error?

> Also, I think it would be good to have
>   ALTER TRIGGER .. ON ONLY parent RENAME TO ..
> to avoid recursing to children.  This seems mostly pointless, but= since
> we've allowed changing the name of the trigger in children thus far, > then we've implicitly made it supported to have triggers that are name= d
> differently.  (And it's not entirely academic, since the trigger = name
> determines firing order.)

If it would be entirely academic, I wouldn't have noticed the whole thing i= n the first place.

The on only variant sounds like a good idea to me. Even though hardly worth= any efford, it seems simple enough. I will work on that.

> Alternatively to this last point, we could decide to disallow renaming=
> of triggers on children (i.e. if trigger has tgparentid set, then
> renaming is disallowed).  I don't have a problem with that, but i= t would
> have to be an explicit decision to take.

I rejected that idea, because I was unsure what to do with migrations. If w= e would be discussing this a few years back, this would have been likely my= vote, but I don't see it happening now.

Regards
Arne

--_000_e93f8494c6314b58ad52b553b0e50779indexde_-- --_004_e93f8494c6314b58ad52b553b0e50779indexde_ Content-Type: text/x-patch; name="recursive_tgrename.4.patch" Content-Description: recursive_tgrename.4.patch Content-Disposition: attachment; filename="recursive_tgrename.4.patch"; size=7596; creation-date="Mon, 29 Mar 2021 09:05:03 GMT"; modification-date="Mon, 29 Mar 2021 09:05:03 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCA3MzgzZDU5OTRlLi4xNGUzZWRjYzVjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jCkBAIC0xMzQ4LDEyICsxMzQ4LDcgQEAgZ2V0X3RyaWdnZXJfb2lkKE9p ZCByZWxpZCwgY29uc3QgY2hhciAqdHJpZ25hbWUsIGJvb2wgbWlzc2luZ19vaykKIAlyZXR1cm4g b2lkOwogfQogCi0vKgotICogUGVyZm9ybSBwZXJtaXNzaW9ucyBhbmQgaW50ZWdyaXR5IGNoZWNr cyBiZWZvcmUgYWNxdWlyaW5nIGEgcmVsYXRpb24gbG9jay4KLSAqLwotc3RhdGljIHZvaWQKLVJh bmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJl bGlkLCBPaWQgb2xkcmVsaWQsCi0JCQkJCQkJCSB2b2lkICphcmcpCitzdGF0aWMgdm9pZCBjYWxs YmFja0ZvclJlbmFtZVRyaWdnZXIoY2hhciogcmVsbmFtZSwgT2lkIHJlbGlkKQogewogCUhlYXBU dXBsZQl0dXBsZTsKIAlGb3JtX3BnX2NsYXNzIGZvcm07CkBAIC0xMzcwLDI1ICsxMzY1LDM2IEBA IFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRh YmxlLCB2aWV3LCBvciBmb3JlaWduIHRhYmxlIiwKLQkJCQkJCXJ2LT5yZWxuYW1lKSkpOworCQkJ CQkJcmVsbmFtZSkpKTsKIAogCS8qIHlvdSBtdXN0IG93biB0aGUgdGFibGUgdG8gcmVuYW1lIG9u ZSBvZiBpdHMgdHJpZ2dlcnMgKi8KIAlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2socmVsaWQsIEdl dFVzZXJJZCgpKSkKLQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVs a2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CisJCWFj bGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRf cmVsX3JlbGtpbmQocmVsaWQpKSwgcmVsbmFtZSk7CiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9k cyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCSBlcnJtc2coInBl cm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBzeXN0ZW0gY2F0YWxvZyIsCi0JCQkJCQlydi0+ cmVsbmFtZSkpKTsKKwkJCQkJCXJlbG5hbWUpKSk7CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUp OwogfQogCiAvKgotICoJCXJlbmFtZXRyaWcJCS0gY2hhbmdlcyB0aGUgbmFtZSBvZiBhIHRyaWdn ZXIgb24gYSByZWxhdGlvbgorICogUGVyZm9ybSBwZXJtaXNzaW9ucyBhbmQgaW50ZWdyaXR5IGNo ZWNrcyBiZWZvcmUgYWNxdWlyaW5nIGEgcmVsYXRpb24gbG9jay4KKyAqLworc3RhdGljIHZvaWQK K1JhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVUcmlnZ2VyKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCisJCQkJCQkJCSB2b2lkICphcmcpCit7CisJCWNhbGxiYWNr Rm9yUmVuYW1lVHJpZ2dlcihydi0+cmVsbmFtZSwgcmVsaWQpOworfQorCisvKgorICoJCXJlbmFt ZW9ubHl0cmlnCQktIGNoYW5nZXMgdGhlIG5hbWUgb2YgYSB0cmlnZ2VyIG9uIGEgcmVsYXRpb24K ICAqCiAgKgkJdHJpZ2dlciBuYW1lIGlzIGNoYW5nZWQgaW4gdHJpZ2dlciBjYXRhbG9nLgogICoJ CU5vIHJlY29yZCBvZiB0aGUgcHJldmlvdXMgbmFtZSBpcyBrZXB0LgorICoJCVRoaXMgZnVuY3Rp b24gYXNzdW1lcyB0aGF0IHRoZSByb3cgaXMgYWxyZWFkeSBsb2NrZWQKICAqCiAgKgkJZ2V0IHBy b3BlciByZWxyZWxhdGlvbiBmcm9tIHJlbGF0aW9uIGNhdGFsb2cgKGlmIG5vdCBhcmcpCiAgKgkJ c2NhbiB0cmlnZ2VyIGNhdGFsb2cKQEAgLTEzOTgsNDEgKzE0MDQsMjYgQEAgUmFuZ2VWYXJDYWxs YmFja0ZvclJlbmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBv bGRyZWxpZCwKICAqCQl1cGRhdGUgcm93IGluIGNhdGFsb2cKICAqLwogT2JqZWN0QWRkcmVzcwot cmVuYW1ldHJpZyhSZW5hbWVTdG10ICpzdG10KQorcmVuYW1lb25seXRyaWcoUmVuYW1lU3RtdCAq c3RtdCwgUmVsYXRpb24gdGdyZWwsIE9pZCByZWxpZCwgT2lkIHRncGFyZW50KQogewogCU9pZAkJ CXRnb2lkOwogCVJlbGF0aW9uCXRhcmdldHJlbDsKLQlSZWxhdGlvbgl0Z3JlbDsKIAlIZWFwVHVw bGUJdHVwbGU7CiAJU3lzU2NhbkRlc2MgdGdzY2FuOwogCVNjYW5LZXlEYXRhIGtleVsyXTsKLQlP aWQJCQlyZWxpZDsKIAlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKLQkvKgotCSAqIExvb2sgdXAg bmFtZSwgY2hlY2sgcGVybWlzc2lvbnMsIGFuZCBhY3F1aXJlIGxvY2sgKHdoaWNoIHdlIHdpbGwg Tk9UCi0JICogcmVsZWFzZSB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24pLgotCSAqLwotCXJlbGlk ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNp dmVMb2NrLAotCQkJCQkJCQkJIDAsCi0JCQkJCQkJCQkgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFt ZVRyaWdnZXIsCi0JCQkJCQkJCQkgTlVMTCk7CiAKIAkvKiBIYXZlIGxvY2sgYWxyZWFkeSwgc28g anVzdCBuZWVkIHRvIGJ1aWxkIHJlbGNhY2hlIGVudHJ5LiAqLwogCXRhcmdldHJlbCA9IHJlbGF0 aW9uX29wZW4ocmVsaWQsIE5vTG9jayk7CiAKKwogCS8qCiAJICogU2NhbiBwZ190cmlnZ2VyIHR3 aWNlIGZvciBleGlzdGluZyB0cmlnZ2VycyBvbiByZWxhdGlvbi4gIFdlIGRvIHRoaXMgaW4KIAkg KiBvcmRlciB0byBlbnN1cmUgYSB0cmlnZ2VyIGRvZXMgbm90IGV4aXN0IHdpdGggbmV3bmFtZSAo VGhlIHVuaXF1ZSBpbmRleAogCSAqIG9uIHRncmVsaWQvdGduYW1lIHdvdWxkIGNvbXBsYWluIGFu eXdheSkgYW5kIHRvIGVuc3VyZSBhIHRyaWdnZXIgZG9lcwogCSAqIGV4aXN0IHdpdGggb2xkbmFt ZS4KIAkgKgotCSAqIE5PVEUgdGhhdCB0aGlzIGlzIGNvb2wgb25seSBiZWNhdXNlIHdlIGhhdmUg QWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUKLQkgKiByZWxhdGlvbiwgc28gdGhlIHRyaWdnZXIg c2V0IHdvbid0IGJlIGNoYW5naW5nIHVuZGVybmVhdGggdXMuCi0JICovCi0JdGdyZWwgPSB0YWJs ZV9vcGVuKFRyaWdnZXJSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKLQotCS8qCiAJICog Rmlyc3QgcGFzcyAtLSBsb29rIGZvciBuYW1lIGNvbmZsaWN0CiAJICovCiAJU2NhbktleUluaXQo JmtleVswXSwKQEAgLTE0NjMsNiArMTQ1NCw3IEBAIHJlbmFtZXRyaWcoUmVuYW1lU3RtdCAqc3Rt dCkKIAkJCQlBbnVtX3BnX3RyaWdnZXJfdGduYW1lLAogCQkJCUJURXF1YWxTdHJhdGVneU51bWJl ciwgRl9OQU1FRVEsCiAJCQkJUG9pbnRlckdldERhdHVtKHN0bXQtPnN1Ym5hbWUpKTsKKwogCXRn c2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nhbih0Z3JlbCwgVHJpZ2dlclJlbGlkTmFtZUluZGV4SWQs IHRydWUsCiAJCQkJCQkJCU5VTEwsIDIsIGtleSk7CiAJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVw bGUgPSBzeXN0YWJsZV9nZXRuZXh0KHRnc2NhbikpKQpAQCAtMTQ3NSw3ICsxNDY3LDEyIEBAIHJl bmFtZXRyaWcoUmVuYW1lU3RtdCAqc3RtdCkKIAkJdHVwbGUgPSBoZWFwX2NvcHl0dXBsZSh0dXBs ZSk7CS8qIG5lZWQgYSBtb2RpZmlhYmxlIGNvcHkgKi8KIAkJdHJpZ2Zvcm0gPSAoRm9ybV9wZ190 cmlnZ2VyKSBHRVRTVFJVQ1QodHVwbGUpOwogCQl0Z29pZCA9IHRyaWdmb3JtLT5vaWQ7Ci0KKwkJ aWYgKHRncGFyZW50ICE9IDAgJiYgdGdwYXJlbnQgIT0gdHJpZ2Zvcm0tPnRncGFyZW50aWQpIHsK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJCSBlcnJtc2coInRyaWdnZXIgXCIlc1wiIGZvciB0YWJsZSBcIiVzXCIgaXMgbm90 IGRlcGVuZGVudCBvbiB0aGUgdHJpZ2dlciBvbiBcIiVzXCIiLAorCQkJCQkJCXN0bXQtPnN1Ym5h bWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHN0bXQtPnJlbGF0aW9uLT5y ZWxuYW1lKSkpOworCQl9CiAJCW5hbWVzdHJjcHkoJnRyaWdmb3JtLT50Z25hbWUsCiAJCQkJICAg c3RtdC0+bmV3bmFtZSk7CiAKQEAgLTE1MTMsNiArMTUxMCw3NCBAQCByZW5hbWV0cmlnKFJlbmFt ZVN0bXQgKnN0bXQpCiAJcmV0dXJuIGFkZHJlc3M7CiB9CiAKKy8qCisgKgkJcmVuYW1ldHJpZwkJ LSBjaGFuZ2VzIHRoZSBuYW1lIG9mIGEgdHJpZ2dlciBvbiBhIHBvc3NpYmx5IHBhcnRpdGlvbmVk IHJlbGF0aW9uIHJlY3VyaXN2ZWx5CisgKgorICoJCSAgYWx0ZXIgbmFtZSBvZiBwYXJlbnQgdHJp Z2dlciB1c2luZyByZW5hbWVvbmx5dHJpZworICoJCSAgcmVjdXJzaXZlIG92ZXIgY2hpbGRyZW4g YW5kIGNoYW5nZSB0aGVpciBuYW1lcyBpbiB0aGUgc2FtZSBtYW5uZXIKKyAqCisgKi8KK09iamVj dEFkZHJlc3MKK3JlbmFtZXRyaWdIZWxwZXIgKFJlbmFtZVN0bXQgKnN0bXQsIE9pZCB0Z29pZCwg T2lkIHJlbGlkKQoreworCisJUmVsYXRpb24JdGdyZWw7CisJT2lkCQkgbmV3dGdvaWQ7CisJT2Jq ZWN0QWRkcmVzcyAgIHRnYWRkcmVzczsKKwkvKgorCSAqIE5PVEUgdGhhdCB0aGlzIGlzIGNvb2wg b25seSBiZWNhdXNlIHdlIGhhdmUgQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUKKwkgKiByZWxh dGlvbiwgc28gdGhlIHRyaWdnZXIgc2V0IHdvbid0IGJlIGNoYW5naW5nIHVuZGVybmVhdGggdXMu CisJICovCisJdGdyZWwgPSB0YWJsZV9vcGVuKFRyaWdnZXJSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qCisJICogVGhlIGxhc3QgY2FsbCBvZiByZW5hbWV0cmlnIG9yIHJlbmFt ZXRyaWdIZWxwZXIgYWxyZWFkeSBsb2NrZWQgdGhpcyByZWxhdGlvbi4KKwkgKi8KKwl0Z2FkZHJl c3MgPSByZW5hbWVvbmx5dHJpZyhzdG10LCB0Z3JlbCwgcmVsaWQsIHRnb2lkKTsKKwluZXd0Z29p ZCA9IHRnYWRkcmVzcy5vYmplY3RJZDsKKworCSAvKgorCSAqICBJbiBjYXNlIHdlIGhhdmUgYSBw YXJ0aW9uZWQgdGFibGUsIHdlIHRyYXZlcnNlIHRoZW0gYW5kIHJlbmFtZSBldmVyeSBkZXBlbmRl bmQKKwkgKiAgdHJpZ2dlciBvZiB0aGUgc2FtZSBuYW1lIG9yIGVycm9yIG91dCwgaWYgaXQgZG9l c24ndCBleGlzdC4KKwkgKi8KKwkgaWYgKHN0bXQtPnJlbGF0aW9uLT5pbmggJiYgaGFzX3N1YmNs YXNzKHJlbGlkKSkKKwkgeworCQkgTGlzdENlbGwgICAqY2hpbGQ7CisJCSBMaXN0CSAgICpjaGls ZHJlbjsKKworCQkgLyogTWFrZSBzdXJlIGl0IHN0YXlzIGEgY2hpbGQuICovCisJCSBjaGlsZHJl biA9IGZpbmRfaW5oZXJpdGFuY2VfY2hpbGRyZW4ocmVsaWQsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ss IGZhbHNlKTsKKworCQkgLyoKKwkJICAqIGZpbmRfaW5oZXJpdGFuY2VfY2hpbGRyZW4gZG9lc24n dCB3b3JrIHJlY3Vyc2l2ZWx5LgorCQkgICogd2UgY2hlY2sgZXZlcnkgbGF5ZXIgaW5kaXZpZHVh bGx5IHRvIGVuc3VyZSB0aGF0IHRoZSB0cmlnZ2VyCisJCSAgKiBvZiB0aGUgY2hpbGQgaXMgbWF0 Y2hpbmcgaW4gY2FzZSBpdCdzIGEgcGFydGl0aW9uZWQgdGFibGUgaXRzZWxmLgorCQkgICovCisJ CSBmb3JlYWNoKGNoaWxkLCBjaGlsZHJlbikKKwkJIHsKKwkJCSBPaWQJCSBjaGlsZHJlbGlkID0g bGZpcnN0X29pZChjaGlsZCk7CisKKwkJCSBpZiAoY2hpbGRyZWxpZCA9PSByZWxpZCkKKwkJCQkg Y29udGludWU7CisJCQkgcmVuYW1ldHJpZ0hlbHBlcihzdG10LCBuZXd0Z29pZCwgY2hpbGRyZWxp ZCk7CisJCSB9CisJIH0KKwkgcmV0dXJuIHRnYWRkcmVzczsKK30KKworT2JqZWN0QWRkcmVzcwor cmVuYW1ldHJpZyhSZW5hbWVTdG10ICpzdG10KQoreworCS8qCisJICogTG9vayB1cCBuYW1lLCBj aGVjayBwZXJtaXNzaW9ucywgYW5kIGFjcXVpcmUgbG9jayAod2hpY2ggd2Ugd2lsbCBOT1QKKwkg KiByZWxlYXNlIHVudGlsIGVuZCBvZiB0cmFuc2FjdGlvbikuCisJICovCisJcmV0dXJuIHJlbmFt ZXRyaWdIZWxwZXIoc3RtdCwgMCwKKwkJCQlSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+ cmVsYXRpb24sIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkJCSAwLAorCQkJCQkJCQkJ CQkgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIsCisJCQkJCQkJCQkJCSBOVUxMKSk7 Cit9CiAKIC8qCiAgKiBFbmFibGVEaXNhYmxlVHJpZ2dlcigpCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3ZmYz NmJjODQyLi44NGUxNzQ3NDAyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTg4NTEsNyArODg1MSw3IEBAIFJl bmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUg VE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKilu OwogCQkJCX0KLQkJCXwgQUxURVIgVFJJR0dFUiBuYW1lIE9OIHF1YWxpZmllZF9uYW1lIFJFTkFN RSBUTyBuYW1lCisJCQl8IEFMVEVSIFRSSUdHRVIgbmFtZSBPTiByZWxhdGlvbl9leHByIFJFTkFN RSBUTyBuYW1lCiAJCQkJewogCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3Rt dCk7CiAJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVFJJR0dFUjsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdn ZXIuaAppbmRleCA5ZTU1N2NmYmNlLi44ZGFjMjNkOTgwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy90cmlnZ2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5o CkBAIC0xNTgsNiArMTU4LDEwIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVRyaWdnZXIo Q3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nCiBleHRlcm4gdm9p ZCBSZW1vdmVUcmlnZ2VyQnlJZChPaWQgdHJpZ09pZCk7CiBleHRlcm4gT2lkCWdldF90cmlnZ2Vy X29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiAKK2V4 dGVybiBPYmplY3RBZGRyZXNzIHJlbmFtZW9ubHl0cmlnKFJlbmFtZVN0bXQgKnN0bXQsIFJlbGF0 aW9uIHRncmVsLCBPaWQgcmVsaWQsIE9pZCB0Z3BhcmVudCk7CisKK2V4dGVybiBPYmplY3RBZGRy ZXNzIHJlbmFtZXRyaWdIZWxwZXIoUmVuYW1lU3RtdCAqc3RtdCwgT2lkIHRnb2lkLCBPaWQgcmVs aWQpOworCiBleHRlcm4gT2JqZWN0QWRkcmVzcyByZW5hbWV0cmlnKFJlbmFtZVN0bXQgKnN0bXQp OwogCiBleHRlcm4gdm9pZCBFbmFibGVEaXNhYmxlVHJpZ2dlcihSZWxhdGlvbiByZWwsIGNvbnN0 IGNoYXIgKnRnbmFtZSwK --_004_e93f8494c6314b58ad52b553b0e50779indexde_--