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 1p5AcV-0001k9-Q1 for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Dec 2022 19:07:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p5AcT-0002XJ-Rk for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Dec 2022 19:07:13 +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 1p5AcT-0002X8-82 for pgsql-hackers@lists.postgresql.org; Tue, 13 Dec 2022 19:07:13 +0000 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p5AcQ-0003ql-Ee for pgsql-hackers@lists.postgresql.org; Tue, 13 Dec 2022 19:07:12 +0000 Received: by mail-ej1-x62f.google.com with SMTP id m18so38924086eji.5 for ; Tue, 13 Dec 2022 11:07:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=PMSL/6s1v5895CZMWi75nwehZY703fG1J1I3y1sklU8=; b=Wf0CYFQLUUImehK1AcHBKXYIKOdmqSexS6rBldEpeEbDO/zyxAmSXK+YD7ZaPq+/7/ ucp3eSr2Zd4SL/DTZiSm/EyaKa/naZF7mgfLsS32qAvcD2TnZtiKCkcLtnCLb0hIZbfu eGF0G5O76cEc6V9ckNjyKP3mNUJNmpNLbbCyz4lQV5TKCJCUOWYEsYMIvVHoBUkCWjUC QWpNu9tzM4dkY7Ga420WbVsEbfMno7Ldit66JUd2F15EwKbS9YHtd67XflgB6eonPPDj caF/M+T4Hkj7ID4Dju3pBGOcRvaxH95TQn+6dyTL4yf8Xv3j/Sb0ryLPfnvhy93yeyGC d+UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PMSL/6s1v5895CZMWi75nwehZY703fG1J1I3y1sklU8=; b=ekbtveYDJaPjK+3zYGLNnbt+0dEiy9SPyjEvqMx91OZ6L0oL8v85H9z5y/YCKHn+1O Paqhske+CvqBVieSJH9ioEHD7YzlkWYKGROyySugBO5e4jwiTK0GqVd5lMXt5svFCPml 5ncpQxnkV3aojceMiWrcE09c0tHmIWO0sbL3a/3iIejfI8EGIlj2zhrYadcJWBaU2pCT MBKG0ec9LX8689ZhRtf8j6NK45TKKswKqN0qgm+CcRWyxijKQLkXcutgD9p6KCY7Mq+9 vG7eBqsCd4JlmOU/0NXHv4OqZ/YfMH9wNwRkaPeU8zR80Ik+5uTNSlJ0Rw/jwATEU/hR jD2g== X-Gm-Message-State: ANoB5pkbt4T9/uFDboDBzCk3JHMvmV7ewNPcEqWTpYx8jltuY0gimpFh c6XhQO/mge3/eVrHgfmLM34= X-Google-Smtp-Source: AA0mqf4RPyhVaKz4RUaN/LaLTQamzHXB2hIxusE3wiWqbU8OLeFozxU8xIRJ223I6BV/WQTZtRwp9Q== X-Received: by 2002:a17:906:c054:b0:7ae:b637:633f with SMTP id bm20-20020a170906c05400b007aeb637633fmr24686549ejb.4.1670958428537; Tue, 13 Dec 2022 11:07:08 -0800 (PST) Received: from qoops-lap.home ([46.70.15.17]) by smtp.gmail.com with ESMTPSA id 17-20020a170906309100b007aed2057eaesm4879037ejv.161.2022.12.13.11.07.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Dec 2022 11:07:08 -0800 (PST) Message-ID: <039564d234fc3d014c555a7ee98be69a9e724836.camel@gmail.com> Subject: Re: Progress report of CREATE INDEX for nested partitioned tables From: Ilya Gladyshev To: Justin Pryzby Cc: pgsql-hackers@lists.postgresql.org Date: Tue, 13 Dec 2022 23:07:06 +0400 In-Reply-To: <20221213044331.GJ27893@telsasoft.com> References: <20221211063334.GB27893@telsasoft.com> <20221213044331.GJ27893@telsasoft.com> Content-Type: multipart/mixed; boundary="=-yfEp3q+zn00Wt5YmUY7Q" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-yfEp3q+zn00Wt5YmUY7Q Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit On Mon, 2022-12-12 at 22:43 -0600, Justin Pryzby wrote: > On Mon, Dec 12, 2022 at 11:39:23PM +0400, Ilya Gladyshev wrote: > > > > > Could you check what I've written as a counter-proposal ? > > > > I think that this might be a good solution to start with, it gives > > us the opportunity to improve the granularity later without any > > surprising changes for the end user. We could use this patch for > > previous versions and make more granular output in the latest. What > > do you think? > > Somehow, it hadn't occured to me that my patch "lost granularity" by > incrementing the progress bar by more than one...  Shoot. > > > I actually think that the progress view would be better off without > > the total number of partitions, > > Just curious - why ? We don't really know how many indexes we are going to create, unless we have some kind of preliminary "planning" stage where we acumulate all the relations that will need to have indexes created (rather than attached). And if someone wants the total, it can be calculated manually without this view, it's less user-friendly, but if we can't do it well, I would leave it up to the user. > > > With this in mind, I think your proposal to exclude catalog-only > > indexes sounds reasonable to me, but I feel like the docs are off > > in this case, because the attached indexes are not created, but we > > pretend like they are in this metric, so we should fix one or the > > other. > > I agree that the docs should indicate whether we're counting "all > partitions", "direct partitions", and whether or not that includes > partitioned partitions, or just leaf partitions. Agree. I think that docs should also be explicit about the attached indexes, if we decide to count them in as "created". > I have another proposal: since the original patch 3.5 years ago > didn't > consider or account for sub-partitions, let's not start counting them > now.  It was never defined whether they were included or not (and I > guess that they're not common) so we can take this opportunity to > clarify the definition. I have had this thought initially, but then I thought that it's not what I would want, if I was to track progress of multi-level partitioned tables (but yeah, I guess it's pretty uncommon). In this respect, I like your initial counter-proposal more, because it leaves us room to improve this in the future. Otherwise, if we commit to reporting only top-level partitions now, I'm not sure we will have the opportunity to change this. > Alternately, if it's okay to add nparts_done to the IndexStmt, then > that's easy. Yeah, or we could add another argument to DefineIndex. I don't know if it's ok, or which option is better here in terms of compatibility and interface-wise, so I have tried both of them, see the attached patches. --=-yfEp3q+zn00Wt5YmUY7Q Content-Disposition: attachment; filename="0001-parts_done-via-DefineIndex-args.patch.txt" Content-Type: text/plain; name="0001-parts_done-via-DefineIndex-args.patch.txt"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0ZjU1NTI2ZjhhNTM0ZDZiMmYyN2I2YjE3Y2FkYWVlMDM3MGU0Y2JjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbHlhIEdsYWR5c2hldiA8aWx5YS52LmdsYWR5c2hldkBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgMTMgRGVjIDIwMjIgMTk6NDI6NTMgKzA0MDAKU3ViamVjdDogW1BB VENIXSBwYXJ0c19kb25lIHZpYSBEZWZpbmVJbmRleCBhcmdzCgotLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIHwgIDcgKysrLS0KIHNyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJl bS5oICAgIHwgIDMgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMTIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCBiNWI4NjBjM2FiLi45ZmE5 MTA5YjllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMTI5LDYgKzEyOSwyOSBAQCB0 eXBlZGVmIHN0cnVjdCBSZWluZGV4RXJyb3JJbmZvCiAJY2hhcgkJcmVsa2luZDsKIH0gUmVpbmRl eEVycm9ySW5mbzsKIAorCisvKgorICogQ291bnQgdGhlIG51bWJlciBvZiBkaXJlY3QgYW5kIGlu ZGlyZWN0IGxlYWYgcGFydGl0aW9ucywgZXhjbHVkaW5nIGZvcmVpZ24KKyAqIHRhYmxlcy4KKyAq Lworc3RhdGljIGludAorbnVtX2xlYWZfcGFydGl0aW9ucyhPaWQgcmVsaWQpCit7CisJaW50CQlu bGVhdmVzID0gMDsKKwlMaXN0CSpjaGlsZHMgPSBmaW5kX2FsbF9pbmhlcml0b3JzKHJlbGlkLCBO b0xvY2ssIE5VTEwpOworCUxpc3RDZWxsICpsYzsKKworCWZvcmVhY2gobGMsIGNoaWxkcykKKwl7 CisJCU9pZAlwYXJ0cmVsaWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJaWYgKFJFTEtJTkRfSEFTX1NU T1JBR0UoZ2V0X3JlbF9yZWxraW5kKHBhcnRyZWxpZCkpKQorCQkJbmxlYXZlcysrOworCX0KKwor CWxpc3RfZnJlZShjaGlsZHMpOworCXJldHVybiBubGVhdmVzOworfQorCiAvKgogICogQ2hlY2tJ bmRleENvbXBhdGlibGUKICAqCQlEZXRlcm1pbmUgd2hldGhlciBhbiBleGlzdGluZyBpbmRleCBk ZWZpbml0aW9uIGlzIGNvbXBhdGlibGUgd2l0aCBhCkBAIC01MzAsNyArNTUzLDggQEAgRGVmaW5l SW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJCQlib29sIGNoZWNrX3JpZ2h0cywKIAkJCWJvb2wgY2hl Y2tfbm90X2luX3VzZSwKIAkJCWJvb2wgc2tpcF9idWlsZCwKLQkJCWJvb2wgcXVpZXQpCisJCQli b29sIHF1aWV0LAorCQkJaW50ICpwYXJ0c19kb25lKQogewogCWJvb2wJCWNvbmN1cnJlbnQ7CiAJ Y2hhcgkgICAqaW5kZXhSZWxhdGlvbk5hbWU7CkBAIC01NjgsNiArNTkyLDcgQEAgRGVmaW5lSW5k ZXgoT2lkIHJlbGF0aW9uSWQsCiAJT2lkCQkJcm9vdF9zYXZlX3VzZXJpZDsKIAlpbnQJCQlyb290 X3NhdmVfc2VjX2NvbnRleHQ7CiAJaW50CQkJcm9vdF9zYXZlX25lc3RsZXZlbDsKKwlpbnQgcm9v dF9wYXJ0c19kb25lOwogCiAJcm9vdF9zYXZlX25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZlbCgp OwogCkBAIC0xMjE4LDggKzEyNDMsMTcgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJ CQlSZWxhdGlvbglwYXJlbnRJbmRleDsKIAkJCVR1cGxlRGVzYwlwYXJlbnREZXNjOwogCi0JCQlw Z3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05T X1RPVEFMLAotCQkJCQkJCQkJCSBucGFydHMpOworCQkJaWYgKCFPaWRJc1ZhbGlkKHBhcmVudElu ZGV4SWQpKQorCQkJeworCQkJCWludCB0b3RhbF9wYXJ0czsKKworCQkJCS8qIEluaXQgY291bnRl ciBvZiBkb25lIHBhcnRpdGlvbnMgd2hlbiBwcm9jZXNzaW5nIHJvb3QgaW5kZXggKi8KKwkJCQly b290X3BhcnRzX2RvbmUgPSAwOworCQkJCXBhcnRzX2RvbmUgPSAmcm9vdF9wYXJ0c19kb25lOwor CQkJCXRvdGFsX3BhcnRzID0gbnVtX2xlYWZfcGFydGl0aW9ucyhyZWxhdGlvbklkKTsKKwkJCQlw Z3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05T X1RPVEFMLAorCQkJCQkJCQkJCQkgdG90YWxfcGFydHMpOworCQkJfQogCiAJCQkvKiBNYWtlIGEg bG9jYWwgY29weSBvZiBwYXJ0ZGVzYy0+b2lkc1tdLCBqdXN0IGZvciBzYWZldHkgKi8KIAkJCW1l bWNweShwYXJ0X29pZHMsIHBhcnRkZXNjLT5vaWRzLCBzaXplb2YoT2lkKSAqIG5wYXJ0cyk7CkBA IC0xNDI2LDEzICsxNDYwLDExIEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJCQkJ CQlpbmRleFJlbGF0aW9uSWQsCS8qIHRoaXMgaXMgb3VyIGNoaWxkICovCiAJCQkJCQkJCWNyZWF0 ZWRDb25zdHJhaW50SWQsCiAJCQkJCQkJCWlzX2FsdGVyX3RhYmxlLCBjaGVja19yaWdodHMsIGNo ZWNrX25vdF9pbl91c2UsCi0JCQkJCQkJCXNraXBfYnVpbGQsIHF1aWV0KTsKKwkJCQkJCQkJc2tp cF9idWlsZCwgcXVpZXQsIHBhcnRzX2RvbmUpOwogCQkJCQlTZXRVc2VySWRBbmRTZWNDb250ZXh0 KGNoaWxkX3NhdmVfdXNlcmlkLAogCQkJCQkJCQkJCSAgIGNoaWxkX3NhdmVfc2VjX2NvbnRleHQp OwogCQkJCX0KIAotCQkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ1JF QVRFSURYX1BBUlRJVElPTlNfRE9ORSwKLQkJCQkJCQkJCQkJIGkgKyAxKTsKIAkJCQlmcmVlX2F0 dHJtYXAoYXR0bWFwKTsKIAkJCX0KIApAQCAtMTQ4Myw5ICsxNTE1LDE1IEBAIERlZmluZUluZGV4 KE9pZCByZWxhdGlvbklkLAogCQkvKiBDbG9zZSB0aGUgaGVhcCBhbmQgd2UncmUgZG9uZSwgaW4g dGhlIG5vbi1jb25jdXJyZW50IGNhc2UgKi8KIAkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwog Ci0JCS8qIElmIHRoaXMgaXMgdGhlIHRvcC1sZXZlbCBpbmRleCwgd2UncmUgZG9uZS4gKi8KKwkJ LyoKKwkJICogSWYgdGhpcyBpcyB0aGUgdG9wLWxldmVsIGluZGV4LCB3ZSdyZSBkb25lLCBvdGhl cndpc2UsIGluY3JlbWVudAorCQkgKiBkb25lIHBhcnRpdGlvbiBjb3VudGVyLgorCQkgKi8KIAkJ aWYgKCFPaWRJc1ZhbGlkKHBhcmVudEluZGV4SWQpKQogCQkJcGdzdGF0X3Byb2dyZXNzX2VuZF9j b21tYW5kKCk7CisJCWVsc2UgaWYgKHBhcnRzX2RvbmUgIT0gTlVMTCkKKwkJCXBnc3RhdF9wcm9n cmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX1BBUlRJVElPTlNfRE9ORSwKKwkJ CQkJCQkJCQkgKysoKnBhcnRzX2RvbmUpKTsKIAogCQlyZXR1cm4gYWRkcmVzczsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDBiMzUyYTVmZmYuLmRkZTU3ZmFmNDQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBEZWZpbmVSZWxhdGlvbihD cmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJCQkJSW52YWxp ZE9pZCwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsaWQoaWR4UmVsKSwKIAkJCQkJCWNvbnN0cmFpbnRP aWQsCi0JCQkJCQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworCQkJCQkJZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBOVUxMKTsKIAogCQkJaW5kZXhfY2xvc2Uo aWR4UmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCQl9CkBAIC04NTc3LDcgKzg1NzcsOCBAQCBBVEV4 ZWNBZGRJbmRleChBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCSAg Y2hlY2tfcmlnaHRzLAogCQkJCQkJICBmYWxzZSwJLyogY2hlY2tfbm90X2luX3VzZSAtIHdlIGRp ZCBpdCBhbHJlYWR5ICovCiAJCQkJCQkgIHNraXBfYnVpbGQsCi0JCQkJCQkgIHF1aWV0KTsKKwkJ CQkJCSAgcXVpZXQsCisJCQkJCQkgIE5VTEwpOwogCiAJLyoKIAkgKiBJZiBUcnlSZXVzZUluZGV4 KCkgc3Rhc2hlZCBhIHJlbGZpbGVudW1iZXIgZm9yIHVzLCB3ZSB1c2VkIGl0IGZvciB0aGUKQEAg LTE4MDc2LDcgKzE4MDc3LDcgQEAgQXR0YWNoUGFydGl0aW9uRW5zdXJlSW5kZXhlcyhSZWxhdGlv biByZWwsIFJlbGF0aW9uIGF0dGFjaHJlbCkKIAkJCURlZmluZUluZGV4KFJlbGF0aW9uR2V0UmVs aWQoYXR0YWNocmVsKSwgc3RtdCwgSW52YWxpZE9pZCwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsaWQo aWR4UmVsKSwKIAkJCQkJCWNvbk9pZCwKLQkJCQkJCXRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlKTsKKwkJCQkJCXRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBOVUxMKTsK IAkJfQogCiAJCWluZGV4X2Nsb3NlKGlkeFJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKaW5kZXggMjQ3ZDA4MTZhZC4uZGFlZmQ3MjZjYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTE1NDks NyArMTU0OSw4IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJCQl0cnVlLAkvKiBjaGVja19yaWdodHMgKi8KIAkJCQkJCQkJCXRydWUsCS8qIGNoZWNrX25v dF9pbl91c2UgKi8KIAkJCQkJCQkJCWZhbHNlLAkvKiBza2lwX2J1aWxkICovCi0JCQkJCQkJCQlm YWxzZSk7IC8qIHF1aWV0ICovCisJCQkJCQkJCQlmYWxzZSwgLyogcXVpZXQgKi8KKwkJCQkJCQkJ CU5VTEwpOwogCiAJCQkJCS8qCiAJCQkJCSAqIEFkZCB0aGUgQ1JFQVRFIElOREVYIG5vZGUgaXRz ZWxmIHRvIHN0YXNoIHJpZ2h0IGF3YXk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9kZWZyZW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCmluZGV4IDFkM2NlMjQ2 YzkuLmI2ZWI4NTY0YzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCkBAIC0zMyw3ICszMyw4IEBAIGV4 dGVybiBPYmplY3RBZGRyZXNzIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJCQkJCQkg Ym9vbCBjaGVja19yaWdodHMsCiAJCQkJCQkJCSBib29sIGNoZWNrX25vdF9pbl91c2UsCiAJCQkJ CQkJCSBib29sIHNraXBfYnVpbGQsCi0JCQkJCQkJCSBib29sIHF1aWV0KTsKKwkJCQkJCQkJIGJv b2wgcXVpZXQsCisJCQkJCQkJCSBpbnQgKnBhcnRzX2RvbmUpOwogZXh0ZXJuIHZvaWQgRXhlY1Jl aW5kZXgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWluZGV4U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExl dmVsKTsKIGV4dGVybiBjaGFyICptYWtlT2JqZWN0TmFtZShjb25zdCBjaGFyICpuYW1lMSwgY29u c3QgY2hhciAqbmFtZTIsCiAJCQkJCQkJY29uc3QgY2hhciAqbGFiZWwpOwotLSAKMi4zMC4yCgo= --=-yfEp3q+zn00Wt5YmUY7Q Content-Disposition: attachment; filename="0001-parts_done-via-IndexStmt.patch" Content-Type: text/x-patch; name="0001-parts_done-via-IndexStmt.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4ZDA3OThlY2U0MDZhYzg4ZWEwYjFkZmRmYTkxYWEyMzRkOTljNTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbHlhIEdsYWR5c2hldiA8aWx5YS52LmdsYWR5c2hldkBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgMTMgRGVjIDIwMjIgMjI6MDQ6NDUgKzA0MDAKU3ViamVjdDogW1BB VENIXSBwYXJ0c19kb25lIHZpYSBJbmRleFN0bXQKCi0tLQogc3JjL2JhY2tlbmQvYm9vdHN0cmFw L2Jvb3RwYXJzZS55ICB8ICAyICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAg IHwgNDggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jIHwgIDIgKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgfCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RwYXJzZS55IGIvc3Jj L2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RwYXJzZS55CmluZGV4IGU2ZDYyZDgxYzEuLjZiZTNjYzJk Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290cGFyc2UueQorKysgYi9z cmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHBhcnNlLnkKQEAgLTI5Niw2ICsyOTYsNyBAQCBCb290 X0RlY2xhcmVJbmRleFN0bXQ6CiAJCQkJCXN0bXQtPmNvbmN1cnJlbnQgPSBmYWxzZTsKIAkJCQkJ c3RtdC0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQlzdG10LT5yZXNldF9kZWZhdWx0X3Ri bHNwYyA9IGZhbHNlOworCQkJCQlzdG10LT5wYXJ0c19kb25lID0gLTE7CiAKIAkJCQkJLyogbG9j a3MgYW5kIHJhY2VzIG5lZWQgbm90IGNvbmNlcm4gdXMgaW4gYm9vdHN0cmFwIG1vZGUgKi8KIAkJ CQkJcmVsYXRpb25JZCA9IFJhbmdlVmFyR2V0UmVsaWQoc3RtdC0+cmVsYXRpb24sIE5vTG9jaywK QEAgLTM0OCw2ICszNDksNyBAQCBCb290X0RlY2xhcmVVbmlxdWVJbmRleFN0bXQ6CiAJCQkJCXN0 bXQtPmNvbmN1cnJlbnQgPSBmYWxzZTsKIAkJCQkJc3RtdC0+aWZfbm90X2V4aXN0cyA9IGZhbHNl OwogCQkJCQlzdG10LT5yZXNldF9kZWZhdWx0X3RibHNwYyA9IGZhbHNlOworCQkJCQlzdG10LT5w YXJ0c19kb25lID0gLTE7CiAKIAkJCQkJLyogbG9ja3MgYW5kIHJhY2VzIG5lZWQgbm90IGNvbmNl cm4gdXMgaW4gYm9vdHN0cmFwIG1vZGUgKi8KIAkJCQkJcmVsYXRpb25JZCA9IFJhbmdlVmFyR2V0 UmVsaWQoc3RtdC0+cmVsYXRpb24sIE5vTG9jaywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5k ZXggYjViODYwYzNhYi4uMTkwNGEzZGRkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAg LTEyOSw2ICsxMjksMjkgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVpbmRleEVycm9ySW5mbwogCWNoYXIJ CXJlbGtpbmQ7CiB9IFJlaW5kZXhFcnJvckluZm87CiAKKworLyoKKyAqIENvdW50IHRoZSBudW1i ZXIgb2YgZGlyZWN0IGFuZCBpbmRpcmVjdCBsZWFmIHBhcnRpdGlvbnMsIGV4Y2x1ZGluZyBmb3Jl aWduCisgKiB0YWJsZXMuCisgKi8KK3N0YXRpYyBpbnQKK251bV9sZWFmX3BhcnRpdGlvbnMoT2lk IHJlbGlkKQoreworCWludAkJbmxlYXZlcyA9IDA7CisJTGlzdAkqY2hpbGRzID0gZmluZF9hbGxf aW5oZXJpdG9ycyhyZWxpZCwgTm9Mb2NrLCBOVUxMKTsKKwlMaXN0Q2VsbCAqbGM7CisKKwlmb3Jl YWNoKGxjLCBjaGlsZHMpCisJeworCQlPaWQJcGFydHJlbGlkID0gbGZpcnN0X29pZChsYyk7CisJ CWlmIChSRUxLSU5EX0hBU19TVE9SQUdFKGdldF9yZWxfcmVsa2luZChwYXJ0cmVsaWQpKSkKKwkJ CW5sZWF2ZXMrKzsKKwl9CisKKwlsaXN0X2ZyZWUoY2hpbGRzKTsKKwlyZXR1cm4gbmxlYXZlczsK K30KKwogLyoKICAqIENoZWNrSW5kZXhDb21wYXRpYmxlCiAgKgkJRGV0ZXJtaW5lIHdoZXRoZXIg YW4gZXhpc3RpbmcgaW5kZXggZGVmaW5pdGlvbiBpcyBjb21wYXRpYmxlIHdpdGggYQpAQCAtMTIx OCw4ICsxMjQxLDE2IEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJUmVsYXRpb24J cGFyZW50SW5kZXg7CiAJCQlUdXBsZURlc2MJcGFyZW50RGVzYzsKIAotCQkJcGdzdGF0X3Byb2dy ZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfUEFSVElUSU9OU19UT1RBTCwKLQkJ CQkJCQkJCQkgbnBhcnRzKTsKKwkJCWlmICghT2lkSXNWYWxpZChwYXJlbnRJbmRleElkKSkKKwkJ CXsKKwkJCQlpbnQgdG90YWxfcGFydHM7CisKKwkJCQkvKiBJbml0IGNvdW50ZXIgb2YgZG9uZSBw YXJ0aXRpb25zIHdoZW4gcHJvY2Vzc2luZyByb290IGluZGV4ICovCisJCQkJc3RtdC0+cGFydHNf ZG9uZSA9IDA7CisJCQkJdG90YWxfcGFydHMgPSBudW1fbGVhZl9wYXJ0aXRpb25zKHJlbGF0aW9u SWQpOworCQkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURY X1BBUlRJVElPTlNfVE9UQUwsCisJCQkJCQkJCQkJCSB0b3RhbF9wYXJ0cyk7CisJCQl9CiAKIAkJ CS8qIE1ha2UgYSBsb2NhbCBjb3B5IG9mIHBhcnRkZXNjLT5vaWRzW10sIGp1c3QgZm9yIHNhZmV0 eSAqLwogCQkJbWVtY3B5KHBhcnRfb2lkcywgcGFydGRlc2MtPm9pZHMsIHNpemVvZihPaWQpICog bnBhcnRzKTsKQEAgLTE0MjksMTAgKzE0NjAsMTEgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9u SWQsCiAJCQkJCQkJCXNraXBfYnVpbGQsIHF1aWV0KTsKIAkJCQkJU2V0VXNlcklkQW5kU2VjQ29u dGV4dChjaGlsZF9zYXZlX3VzZXJpZCwKIAkJCQkJCQkJCQkgICBjaGlsZF9zYXZlX3NlY19jb250 ZXh0KTsKKwkJCQkJLyogY2hpbGRTdG10IGhhcyBtb3JlIHJlY2VudCBkYXRhIG9uIGRvbmUgcGFy dHMsIHVwZGF0ZSB0aGUgcGFyZW50ICovCisJCQkJCXN0bXQtPnBhcnRzX2RvbmUgPSBjaGlsZFN0 bXQtPnBhcnRzX2RvbmU7CiAJCQkJfQorCQkJCS8qIFRPRE86IFNob3VsZCB3ZSBhZGQgbnVtX2xl YWZfcGFydGl0aW9ucygpIGZvciBhdHRhY2hlZCBpZHhzPyAqLwogCi0JCQkJcGdzdGF0X3Byb2dy ZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfUEFSVElUSU9OU19ET05FLAotCQkJ CQkJCQkJCQkgaSArIDEpOwogCQkJCWZyZWVfYXR0cm1hcChhdHRtYXApOwogCQkJfQogCkBAIC0x NDgzLDkgKzE1MTUsMTUgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJCS8qIENsb3Nl IHRoZSBoZWFwIGFuZCB3ZSdyZSBkb25lLCBpbiB0aGUgbm9uLWNvbmN1cnJlbnQgY2FzZSAqLwog CQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CiAKLQkJLyogSWYgdGhpcyBpcyB0aGUgdG9wLWxl dmVsIGluZGV4LCB3ZSdyZSBkb25lLiAqLworCQkvKgorCQkgKiBJZiB0aGlzIGlzIHRoZSB0b3At bGV2ZWwgaW5kZXgsIHdlJ3JlIGRvbmUsIG90aGVyd2lzZSwgaW5jcmVtZW50CisJCSAqIGRvbmUg cGFydGl0aW9uIGNvdW50ZXIuCisJCSAqLwogCQlpZiAoIU9pZElzVmFsaWQocGFyZW50SW5kZXhJ ZCkpCiAJCQlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2NvbW1hbmQoKTsKKwkJZWxzZSBpZiAoc3RtdC0+ cGFydHNfZG9uZSA+PSAwKQorCQkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVT U19DUkVBVEVJRFhfUEFSVElUSU9OU19ET05FLAorCQkJCQkJCQkJCSArK3N0bXQtPnBhcnRzX2Rv bmUpOwogCiAJCXJldHVybiBhZGRyZXNzOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5j CmluZGV4IGY3NDNjZDU0OGMuLjI3MzM1YjBhYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwpAQCAtMTU5OSw2ICsxNTk5LDcgQEAgZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFuZ2VW YXIgKmhlYXBSZWwsIFJlbGF0aW9uIHNvdXJjZV9pZHgsCiAJaW5kZXgtPmNvbmN1cnJlbnQgPSBm YWxzZTsKIAlpbmRleC0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCWluZGV4LT5yZXNldF9kZWZh dWx0X3RibHNwYyA9IGZhbHNlOworCWluZGV4LT5wYXJ0c19kb25lID0gLTE7CiAKIAkvKgogCSAq IFdlIGRvbid0IHRyeSB0byBwcmVzZXJ2ZSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIGluZGV4OyBp bnN0ZWFkLCBqdXN0CkBAIC0yMjE3LDYgKzIyMTgsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFp bnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAlpbmRl eC0+Y29uY3VycmVudCA9IGZhbHNlOwogCWluZGV4LT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJ aW5kZXgtPnJlc2V0X2RlZmF1bHRfdGJsc3BjID0gY29uc3RyYWludC0+cmVzZXRfZGVmYXVsdF90 YmxzcGM7CisJaW5kZXgtPnBhcnRzX2RvbmUgPSAtMTsKIAogCS8qCiAJICogSWYgaXQncyBBTFRF UiBUQUJMRSBBREQgQ09OU1RSQUlOVCBVU0lORyBJTkRFWCwgbG9vayB1cCB0aGUgaW5kZXggYW5k CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYmViYjk2MjBiMi4uYThiNjljMzg3YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMzAxNSw2ICszMDE1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5k ZXhTdG10CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyoganVzdCBkbyBub3RoaW5nIGlmIGluZGV4 IGFscmVhZHkgZXhpc3RzPyAqLwogCWJvb2wJCXJlc2V0X2RlZmF1bHRfdGJsc3BjOwkvKiByZXNl dCBkZWZhdWx0X3RhYmxlc3BhY2UgcHJpb3IgdG8KIAkJCQkJCQkJCQkgKiBleGVjdXRpbmcgKi8K KwlpbnQgcGFydHNfZG9uZTsKIH0gSW5kZXhTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0tIAoyLjMwLjIKCg== --=-yfEp3q+zn00Wt5YmUY7Q--