Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uvS0j-00DqKr-W6 for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Sep 2025 02:53:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uvS0j-001bFa-0e for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Sep 2025 02:53:41 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uvS0i-001bFS-FD for pgsql-hackers@lists.postgresql.org; Mon, 08 Sep 2025 02:53:41 +0000 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uvS0g-00158y-1k for pgsql-hackers@postgresql.org; Mon, 08 Sep 2025 02:53:39 +0000 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-89018eb083eso1811177241.0 for ; Sun, 07 Sep 2025 19:53:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757300017; x=1757904817; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=awlJCEIkdcvChgo5bhx0c5nPFVEwDVfcLdd+ELffSrk=; b=TB79gtUw3fuVnZurv9YJFFBvxEXWOP+379IS6pJqArg9NXcnO1Hm5rfXkbv7bedjM4 kqwnLpByXypZQ2UFOUaSzcOwL09SEuhnG8re7Xr3PxA+8wp2gvCzUL9+hpDHpavEV2ZY eSfNKPMZqDSi36aY1fMfeBQ8eusKvDM5LP6Uo8axOGXTnTjdmTLgBzZehIIkHE1OPUTJ fJZFpaR+RdLw3Z9bdsWfu5vi/hNjguVn5g+1TNZciBwcK3Dfx+PbM3tHiXMk7wwEnNrY A3EOD6k9d9tGiiw/zANV3lbN8NbIeWgeYnYh+skJjwnagu99PlKwunFzIftv7oRNkryR 8HGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757300017; x=1757904817; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=awlJCEIkdcvChgo5bhx0c5nPFVEwDVfcLdd+ELffSrk=; b=TfGyVT3BdzYtTXwGkQS86ioh63iL6nNOp9w0pVJkGSnXAgKEC74Bil9O+sxBS8KOjd XQg5IFyd4YNbPvkl3As1GrFI8TxYAx5hcrS7nsebRJO5tycvfs+cwHKPnY6luFKpUtMj AQs7/D0TkgkfzDCIShnPfrpC7SBf3+6qx1gORtv0CVvSMrhOSv08cMFlNZSiLBW0n82J 4oVnWWyjs1mxCj1akEchIC+Ja9wZ1x9bBKof5KoDl/79aeWYhWsze2noVjwdbNSf1tkH iEPSWX9XQcv9ukUjX2zulFujELtNtBUZaMyMDi7nTREzvMM3Xl5bHvvF6ZAvMiAECaUi Dp2A== X-Gm-Message-State: AOJu0Yy252ASb/sTlLGGKWFatIOfMPUW6ao8sesLgBKjYlWfYUIAJ5iq 4mz5bPGCabkXc3rz9ugQM6DKiqaMmbSYaFVOGx6Zq7i8ncLFJgqTdizIvl1Qa+97eGZfZhhx2u8 qjXxiCbAqEtspt119M8em+2552jkwarqN2pTLHkw+9g== X-Gm-Gg: ASbGncuiy8cTfENRZ+POX9XZ5qhfOsVr6zUZqaJ0gizX82N6uZqD29pu9iUm/cgxg9i soAViiG7mCZfrNvmtpy69ahOAS134kaU9FSsGwW+/VntqnKkUNriPTDDhzP3xzd+2Xs4qN4keIh tdvLKoMnkFrcOJB3CUBr02uQzF3jdVDeICR8KeAX1g/H6qwwfjmYbDbxsabJd5K3LRAfVxwU7dM gMhmpO+TeJF53w+LgjKio5DizLz8Bpa7EgubbjDya6EQqgD3DOkb+1Lj59A6ZpeMxPVokBza82Y s+6xNA== X-Google-Smtp-Source: AGHT+IFKxbkrtdOPXqg7XTOYREpmc4tpMsy2Kk8qiCys8iZgDsSGyUvmTR3oitFzuIGcyb8cU19FC0qwTeyxaSX8HpE= X-Received: by 2002:a05:6102:dcd:b0:523:e010:df0f with SMTP id ada2fe7eead31-53d0f9be80dmr2050865137.0.1757300017501; Sun, 07 Sep 2025 19:53:37 -0700 (PDT) MIME-Version: 1.0 From: jian he Date: Mon, 8 Sep 2025 10:53:00 +0800 X-Gm-Features: AS18NWDYt2V94OVqvEjlT_hayWRHGvr0pyq-OTzn50XmKbBqOVzP5nJsLCJHISg Message-ID: Subject: let ALTER TABLE DROP COLUMN drop whole-row referenced object To: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000004eba28063e414b6f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004eba28063e414b6f Content-Type: text/plain; charset="UTF-8" hi. CREATE TABLE ts (a int, c int, b int constraint cc check((ts = ROW(1,1,1))), constraint cc1 check((ts.a = 1))); CREATE INDEX tsi on ts (a) where a = 1; CREATE INDEX tsi2 on ts ((a is null)); CREATE INDEX tsi3 on ts ((ts is null)); CREATE INDEX tsi4 on ts (b) where ts is not null; in the master, ``ALTER TABLE ts DROP COLUMN a;`` will not drop constraint cc, index tsi3, tsi4; with the attached patch, ``ALTER TABLE ts DROP COLUMN a;`` will drop above all indexes on the table "ts" and also remove the constraints "cc" and "cc1". as per the documentation[1], quote: """ DROP COLUMN [ IF EXISTS ] This form drops a column from a table. Indexes and table constraints involving the column will be automatically dropped as well. """ so I think it's expected behavior to drop the entire whole-row referenced indexes and constraints. [1] https://www.postgresql.org/docs/devel/sql-altertable.html#SQL-ALTERTABLE-DESC-DROP-COLUMN --0000000000004eba28063e414b6f Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-let-ALTER-TABLE-DROP-COLUMN-drop-wholerow-referenced-object.patch" Content-Disposition: attachment; filename="v1-0001-let-ALTER-TABLE-DROP-COLUMN-drop-wholerow-referenced-object.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfaiyqun0 RnJvbSA4MmY3OTViMjZlOTQzODk5MDY4MGYwYzU2ZmY4Mjg1MzUwNGU4MGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOCBTZXAgMjAyNSAwMjowNjoxOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEg MS8xXSBsZXQgQUxURVIgVEFCTEUgRFJPUCBDT0xVTU4gZHJvcCB3aG9sZXJvdyByZWZlcmVuY2Vk CiBvYmplY3QKCkNSRUFURSBUQUJMRSB0cyAoYSBpbnQsIGMgaW50LCBiIGludAogICAgY29uc3Ry YWludCBjYyBjaGVjaygodHMgPSBST1coMSwxLDEpKSksCiAgICBjb25zdHJhaW50IGNjMSBjaGVj aygodHMuYSA9IDEpKSk7CgpDUkVBVEUgSU5ERVggdHNpIG9uIHRzIChhKSB3aGVyZSBhID0gMTsK Q1JFQVRFIElOREVYIHRzaTIgb24gdHMgKChhIGlzIG51bGwpKTsKQ1JFQVRFIElOREVYIHRzaTMg b24gdHMgKCh0cyBpcyBudWxsKSk7CkNSRUFURSBJTkRFWCB0c2k0IG9uIHRzIChiKSB3aGVyZSB0 cyBpcyBub3QgbnVsbDsKCkFMVEVSIFRBQkxFIHRzIERST1AgQ09MVU1OIGE7CndpbGwgZHJvcCBh Ym92ZSBhbGwgaW5kZXhlcyBvbiB0aGUgdGFibGUgdHMgYW5kIGFsc28gcmVtb3ZlIHRoZSBjb25z dHJhaW50cyBjYwphbmQgY2MxLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS8KLS0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8IDEyMiArKysrKysr KysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbnN0cmFpbnRzLm91 dCB8ICAxNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0ICAgIHwg IDI1ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb25zdHJhaW50cy5zcWwgICAgICB8ICAx MSArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsICAgICAgICAgfCAgIDkgKysK IDUgZmlsZXMgY2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDA4MmEzNTc1ZDYyLi45NDIyNGNlMmM4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTkyNTcsNiArOTI1Nyw5IEBAIEFURXhlY0Ryb3BDb2x1bW4oTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCUxpc3QJICAgKmNoaWxkcmVu OwogCU9iamVjdEFkZHJlc3Mgb2JqZWN0OwogCWJvb2wJCWlzX2V4cHI7CisJTm9kZQkgICAqZXhw cjsKKwlMaXN0CSAgICppbmRleGxpc3QgPSBOSUw7CisJVHVwbGVDb25zdHIgKmNvbnN0ciA9IFJl bGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyOwogCiAJLyogQXQgdG9wIGxldmVsLCBwZXJtaXNz aW9uIGNoZWNrIHdhcyBkb25lIGluIEFUUHJlcENtZCwgZWxzZSBkbyBpdCAqLwogCWlmIChyZWN1 cnNpbmcpCkBAIC05MzI5LDYgKzkzMzIsMTI1IEBAIEFURXhlY0Ryb3BDb2x1bW4oTGlzdCAqKndx dWV1ZSwgUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cGxlKTsKIAorCS8qIGFsc28gZHJvcCB0aGUgY2hlY2sgY29uc3RyYWludCB0aGF0IHJl ZmVyZW5jZXMgd2hvbGUtcm93ICovCisJaWYgKGNvbnN0ciAmJiBjb25zdHItPm51bV9jaGVjayA+ IDApCisJeworCQlDb25zdHJDaGVjayAqY2hlY2sgPSBjb25zdHItPmNoZWNrOworCisJCWZvciAo aW50IGkgPSAwOyBpIDwgY29uc3RyLT5udW1fY2hlY2s7IGkrKykKKwkJeworCQkJQml0bWFwc2V0 ICAqZXhwcl9hdHRycyA9IE5VTEw7CisJCQljaGFyCSAgICpjb25zdHJfbmFtZSA9IGNoZWNrW2ld LmNjbmFtZTsKKworCQkJZXhwciA9IHN0cmluZ1RvTm9kZShjaGVja1tpXS5jY2Jpbik7CisKKwkJ CS8qIEZpbmQgYWxsIGF0dHJpYnV0ZXMgcmVmZXJlbmNlZCAqLworCQkJcHVsbF92YXJhdHRub3Mo ZXhwciwgMSwgJmV4cHJfYXR0cnMpOworCisJCQlpZiAoYm1zX2lzX21lbWJlcigwIC0gRmlyc3RM b3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlciwgZXhwcl9hdHRycykpCisJCQl7CisJCQkJUmVs YXRpb24JY29uRGVzYzsKKwkJCQlTeXNTY2FuRGVzYyBjb25zY2FuOworCQkJCVNjYW5LZXlEYXRh IHNrZXlbM107CisJCQkJSGVhcFR1cGxlCWNvbnR1cGxlOworCisJCQkJLyogU2VhcmNoIGZvciBh IHBnX2NvbnN0cmFpbnQgZW50cnkgd2l0aCBzYW1lIG5hbWUgYW5kIHJlbGF0aW9uICovCisJCQkJ Y29uRGVzYyA9IHRhYmxlX29wZW4oQ29uc3RyYWludFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9j ayk7CisKKwkJCQlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQkJCQlBbnVtX3BnX2NvbnN0cmFp bnRfY29ucmVsaWQsCisJCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJ CQkJCU9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpKSk7CisJCQkJU2Nhbktl eUluaXQoJnNrZXlbMV0sCisJCQkJCQkJQW51bV9wZ19jb25zdHJhaW50X2NvbnR5cGlkLAorCQkJ CQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQkJCQlPYmplY3RJZEdldERh dHVtKEludmFsaWRPaWQpKTsKKwkJCQlTY2FuS2V5SW5pdCgmc2tleVsyXSwKKwkJCQkJCQlBbnVt X3BnX2NvbnN0cmFpbnRfY29ubmFtZSwKKwkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZf TkFNRUVRLAorCQkJCQkJCUNTdHJpbmdHZXREYXR1bShjb25zdHJfbmFtZSkpOworCisJCQkJY29u c2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nhbihjb25EZXNjLCBDb25zdHJhaW50UmVsaWRUeXBpZE5h bWVJbmRleElkLCB0cnVlLAorCQkJCQkJCQkJCQkgTlVMTCwgMywgc2tleSk7CisKKwkJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQoY29udHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KGNvbnNjYW4pKSkK KwkJCQkJZWxvZyhFUlJPUiwgImNvbnN0cmFpbnQgXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCIsCisJCQkJCQkgY29uc3RyX25hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCkpOworCisJCQkJLyogQWRkIG9iamVjdCB0byBkZWxldGUgKi8KKwkJCQlvYmplY3Qu Y2xhc3NJZCA9IENvbnN0cmFpbnRSZWxhdGlvbklkOworCQkJCW9iamVjdC5vYmplY3RJZCA9ICgo Rm9ybV9wZ19jb25zdHJhaW50KSBHRVRTVFJVQ1QoY29udHVwbGUpKS0+b2lkOworCQkJCW9iamVj dC5vYmplY3RTdWJJZCA9IDA7CisJCQkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZvYmplY3Qs IGFkZHJzKTsKKworCQkJCXN5c3RhYmxlX2VuZHNjYW4oY29uc2Nhbik7CisJCQkJdGFibGVfY2xv c2UoY29uRGVzYywgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIGFsc28g ZHJvcCB0aGUgaW5kZXhlcyB0aGF0IHJlZmVyZW5jZXMgd2hvbGUtcm93ICovCisJaW5kZXhsaXN0 ID0gUmVsYXRpb25HZXRJbmRleExpc3QocmVsKTsKKwlmb3JlYWNoX29pZChpbmRleG9pZCwgaW5k ZXhsaXN0KQorCXsKKwkJSGVhcFR1cGxlCWluZGV4VHVwbGU7CisJCUZvcm1fcGdfaW5kZXggaW5k ZXhTdHJ1Y3Q7CisJCU5vZGUJICAgKm5vZGU7CisKKwkJaW5kZXhUdXBsZSA9IFNlYXJjaFN5c0Nh Y2hlMShJTkRFWFJFTElELCBPYmplY3RJZEdldERhdHVtKGluZGV4b2lkKSk7CisJCWlmICghSGVh cFR1cGxlSXNWYWxpZChpbmRleFR1cGxlKSkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBpbmRleCAldSIsIGluZGV4b2lkKTsKKwkJaW5kZXhTdHJ1Y3QgPSAoRm9ybV9w Z19pbmRleCkgR0VUU1RSVUNUKGluZGV4VHVwbGUpOworCisJCWlmICghaGVhcF9hdHRpc251bGwo aW5kZXhUdXBsZSwgQW51bV9wZ19pbmRleF9pbmRwcmVkLCBOVUxMKSkKKwkJeworCQkJRGF0dW0J CXByZWREYXR1bTsKKwkJCWNoYXIJICAgKnByZWRTdHJpbmc7CisJCQlCaXRtYXBzZXQgICpleHBy X2F0dHJzID0gTlVMTDsKKworCQkJLyogQ29udmVydCB0ZXh0IHN0cmluZyB0byBub2RlIHRyZWUg Ki8KKwkJCXByZWREYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoSU5ERVhSRUxJRCwgaW5k ZXhUdXBsZSwKKwkJCQkJCQkJCQkJICAgQW51bV9wZ19pbmRleF9pbmRwcmVkKTsKKwkJCXByZWRT dHJpbmcgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHByZWREYXR1bSk7CisJCQlub2RlID0gKE5vZGUg Kikgc3RyaW5nVG9Ob2RlKHByZWRTdHJpbmcpOworCQkJcGZyZWUocHJlZFN0cmluZyk7CisKKwkJ CXB1bGxfdmFyYXR0bm9zKG5vZGUsIDEsICZleHByX2F0dHJzKTsKKwkJCWlmIChibXNfaXNfbWVt YmVyKDAgLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyLCBleHByX2F0dHJzKSkK KwkJCXsKKwkJCQlvYmplY3QuY2xhc3NJZCA9IFJlbGF0aW9uUmVsYXRpb25JZDsKKwkJCQlvYmpl Y3Qub2JqZWN0SWQgPSBpbmRleFN0cnVjdC0+aW5kZXhyZWxpZDsKKwkJCQlvYmplY3Qub2JqZWN0 U3ViSWQgPSAwOworCQkJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmb2JqZWN0LCBhZGRycyk7 CisJCQl9CisJCX0KKwkJZWxzZSBpZiAoIWhlYXBfYXR0aXNudWxsKGluZGV4VHVwbGUsIEFudW1f cGdfaW5kZXhfaW5kZXhwcnMsIE5VTEwpKQorCQl7CisJCQlEYXR1bQkJZXhwckRhdHVtOworCQkJ Y2hhcgkgICAqZXhwclN0cmluZzsKKwkJCUJpdG1hcHNldCAgKmV4cHJfYXR0cnMgPSBOVUxMOwor CisJCQkvKiBDb252ZXJ0IHRleHQgc3RyaW5nIHRvIG5vZGUgdHJlZSAqLworCQkJZXhwckRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChJTkRFWFJFTElELCBpbmRleFR1cGxlLAorCQkJCQkJ CQkJCQkgICBBbnVtX3BnX2luZGV4X2luZGV4cHJzKTsKKwkJCWV4cHJTdHJpbmcgPSBUZXh0RGF0 dW1HZXRDU3RyaW5nKGV4cHJEYXR1bSk7CisJCQlub2RlID0gKE5vZGUgKikgc3RyaW5nVG9Ob2Rl KGV4cHJTdHJpbmcpOworCQkJcGZyZWUoZXhwclN0cmluZyk7CisKKwkJCXB1bGxfdmFyYXR0bm9z KG5vZGUsIDEsICZleHByX2F0dHJzKTsKKworCQkJLyogQWRkIG9iamVjdCB0byBkZWxldGUgKi8K KwkJCWlmIChibXNfaXNfbWVtYmVyKDAgLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVt YmVyLCBleHByX2F0dHJzKSkKKwkJCXsKKwkJCQlvYmplY3QuY2xhc3NJZCA9IFJlbGF0aW9uUmVs YXRpb25JZDsKKwkJCQlvYmplY3Qub2JqZWN0SWQgPSBpbmRleFN0cnVjdC0+aW5kZXhyZWxpZDsK KwkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCQkJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVz cygmb2JqZWN0LCBhZGRycyk7CisJCQl9CisJCX0KKwkJUmVsZWFzZVN5c0NhY2hlKGluZGV4VHVw bGUpOworCX0KKwogCS8qCiAJICogUHJvcGFnYXRlIHRvIGNoaWxkcmVuIGFzIGFwcHJvcHJpYXRl LiAgVW5saWtlIG1vc3Qgb3RoZXIgQUxURVIKIAkgKiByb3V0aW5lcywgd2UgaGF2ZSB0byBkbyB0 aGlzIG9uZSBsZXZlbCBvZiByZWN1cnNpb24gYXQgYSB0aW1lOyB3ZSBjYW4ndApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb25zdHJhaW50cy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvbnN0cmFpbnRzLm91dAppbmRleCAzNTkwZDMyNzRmMC4uY2UyZmIw Mjk3MWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29uc3RyYWludHMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29uc3RyYWludHMub3V0CkBAIC0y NTQsNiArMjU0LDIzIEBAIEVSUk9SOiAgc3lzdGVtIGNvbHVtbiAiY3RpZCIgcmVmZXJlbmNlIGlu IGNoZWNrIGNvbnN0cmFpbnQgaXMgaW52YWxpZAogTElORSAzOiAgICAgICBDSEVDSyAoTk9UIChp c19jYXBpdGFsIEFORCBjdGlkOjp0ZXh0ID0gJ3N5c19jb2xfY2hlY2suLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0KKy0tIERyb3AgY29sdW1uIGFsc28g ZHJvcCB0aGUgYXNzb2NpYXRlZCBDaGVjayBjb25zdHJhaW50cyBhbmQgd2hvbGUtcm93IHJlZmVy ZW5jZWQgY2hlY2sgY29uc3RyYWludAorLS0KK0NSRUFURSBUQUJMRSBEUk9QX0NPTF9DSEVDS19U QkwgKAorICAgIGNpdHkgdGV4dCwgc3RhdGUgdGV4dCwgaXNfY2FwaXRhbCBib29sLCBhbHRpdHVk ZSBpbnQsCisgICAgQ09OU1RSQUlOVCBjYyBDSEVDSyAoY2l0eSBpcyBub3QgbnVsbCksCisgICAg Q09OU1RSQUlOVCBjYzEgQ0hFQ0sgKERST1BfQ09MX0NIRUNLX1RCTCBpcyBub3QgbnVsbCkpOwor QUxURVIgVEFCTEUgRFJPUF9DT0xfQ0hFQ0tfVEJMIERST1AgQ09MVU1OIGNpdHk7CitcZCBEUk9Q X0NPTF9DSEVDS19UQkwKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy5kcm9wX2NvbF9jaGVja190 YmwiCisgICBDb2x1bW4gICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgc3RhdGUgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGlz X2NhcGl0YWwgfCBib29sZWFuIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBhbHRpdHVkZSAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisKK0RST1AgVEFCTEUgRFJPUF9D T0xfQ0hFQ0tfVEJMOworLS0KIC0tIENoZWNrIGluaGVyaXRhbmNlIG9mIGRlZmF1bHRzIGFuZCBj b25zdHJhaW50cwogLS0KIENSRUFURSBUQUJMRSBJTlNFUlRfQ0hJTEQgKGN4IElOVCBkZWZhdWx0 IDQyLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dAppbmRleCA0ZDI5ZmI4NTI5 My4uZWMzMjU0M2MxZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5k ZXhpbmcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0CkBA IC02NTQsNiArNjU0LDMxIEBAIGFsdGVyIHRhYmxlIGlkeHBhcnQyIGRyb3AgY29sdW1uIGM7CiAg YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAKIGRyb3AgdGFibGUg aWR4cGFydCwgaWR4cGFydDI7CitjcmVhdGUgdGFibGUgaWR4cGFydCAoYSBpbnQsIGIgaW50LCBj IGludCk7CitjcmVhdGUgaW5kZXggb24gaWR4cGFydChjKTsKK2NyZWF0ZSBpbmRleCBvbiBpZHhw YXJ0KChpZHhwYXJ0IGlzIG5vdCBudWxsKSk7CitjcmVhdGUgaW5kZXggb24gaWR4cGFydChhKSB3 aGVyZSBpZHhwYXJ0IGlzIG5vdCBudWxsOworXGQgaWR4cGFydAorICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLmlkeHBhcnQiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAiaWR4cGFydF9h X2lkeCIgYnRyZWUgKGEpIFdIRVJFIGlkeHBhcnQuKiBJUyBOT1QgTlVMTAorICAgICJpZHhwYXJ0 X2NfaWR4IiBidHJlZSAoYykKKyAgICAiaWR4cGFydF9leHByX2lkeCIgYnRyZWUgKChpZHhwYXJ0 LiogSVMgTk9UIE5VTEwpKQorCithbHRlciB0YWJsZSBpZHhwYXJ0IGRyb3AgY29sdW1uIGM7Citc ZCBpZHhwYXJ0CisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuaWR4cGFydCIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisKK2Ryb3AgdGFibGUgaWR4cGFydDsKIC0tIFZlcmlmeSB0aGF0IGV4 cHJlc3Npb24gaW5kZXhlcyBpbmhlcml0IGNvcnJlY3RseQogY3JlYXRlIHRhYmxlIGlkeHBhcnQg KGEgaW50LCBiIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhKTsKIGNyZWF0ZSB0YWJsZSBpZHhw YXJ0MSAobGlrZSBpZHhwYXJ0KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bnN0cmFpbnRzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbnN0cmFpbnRzLnNxbAppbmRl eCAxZjZkYzhmZDY5Zi4uNTQ1ZjhmYTE3YTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvbnN0cmFpbnRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb25zdHJhaW50 cy5zcWwKQEAgLTE2NSw2ICsxNjUsMTcgQEAgQ1JFQVRFIFRBQkxFIFNZU19DT0xfQ0hFQ0tfVEJM IChjaXR5IHRleHQsIHN0YXRlIHRleHQsIGlzX2NhcGl0YWwgYm9vbCwKICAgICAgICAgICAgICAg ICAgIGFsdGl0dWRlIGludCwKIAkJCQkgIENIRUNLIChOT1QgKGlzX2NhcGl0YWwgQU5EIGN0aWQ6 OnRleHQgPSAnc3lzX2NvbF9jaGVja190YmwnKSkpOwogCistLQorLS0gRHJvcCBjb2x1bW4gYWxz byBkcm9wIHRoZSBhc3NvY2lhdGVkIENoZWNrIGNvbnN0cmFpbnRzIGFuZCB3aG9sZS1yb3cgcmVm ZXJlbmNlZCBjaGVjayBjb25zdHJhaW50CistLQorQ1JFQVRFIFRBQkxFIERST1BfQ09MX0NIRUNL X1RCTCAoCisgICAgY2l0eSB0ZXh0LCBzdGF0ZSB0ZXh0LCBpc19jYXBpdGFsIGJvb2wsIGFsdGl0 dWRlIGludCwKKyAgICBDT05TVFJBSU5UIGNjIENIRUNLIChjaXR5IGlzIG5vdCBudWxsKSwKKyAg ICBDT05TVFJBSU5UIGNjMSBDSEVDSyAoRFJPUF9DT0xfQ0hFQ0tfVEJMIGlzIG5vdCBudWxsKSk7 CitBTFRFUiBUQUJMRSBEUk9QX0NPTF9DSEVDS19UQkwgRFJPUCBDT0xVTU4gY2l0eTsKK1xkIERS T1BfQ09MX0NIRUNLX1RCTAorRFJPUCBUQUJMRSBEUk9QX0NPTF9DSEVDS19UQkw7CisKIC0tCiAt LSBDaGVjayBpbmhlcml0YW5jZSBvZiBkZWZhdWx0cyBhbmQgY29uc3RyYWludHMKIC0tCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9pbmRleGluZy5zcWwKaW5kZXggYjVjYjAxYzJkNzAuLjgyNTYyNWIwMWI2IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsCkBAIC0yOTUsNiArMjk1LDE1IEBAIGFsdGVyIHRhYmxl IGlkeHBhcnQyIGRyb3AgY29sdW1uIGM7CiBcZCBpZHhwYXJ0MgogZHJvcCB0YWJsZSBpZHhwYXJ0 LCBpZHhwYXJ0MjsKIAorY3JlYXRlIHRhYmxlIGlkeHBhcnQgKGEgaW50LCBiIGludCwgYyBpbnQp OworY3JlYXRlIGluZGV4IG9uIGlkeHBhcnQoYyk7CitjcmVhdGUgaW5kZXggb24gaWR4cGFydCgo aWR4cGFydCBpcyBub3QgbnVsbCkpOworY3JlYXRlIGluZGV4IG9uIGlkeHBhcnQoYSkgd2hlcmUg aWR4cGFydCBpcyBub3QgbnVsbDsKK1xkIGlkeHBhcnQKK2FsdGVyIHRhYmxlIGlkeHBhcnQgZHJv cCBjb2x1bW4gYzsKK1xkIGlkeHBhcnQKK2Ryb3AgdGFibGUgaWR4cGFydDsKKwogLS0gVmVyaWZ5 IHRoYXQgZXhwcmVzc2lvbiBpbmRleGVzIGluaGVyaXQgY29ycmVjdGx5CiBjcmVhdGUgdGFibGUg aWR4cGFydCAoYSBpbnQsIGIgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwogY3JlYXRlIHRh YmxlIGlkeHBhcnQxIChsaWtlIGlkeHBhcnQpOwotLSAKMi4zNC4xCgo= --0000000000004eba28063e414b6f--