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 1sxnCz-00CRXW-Lc for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Oct 2024 12:51:29 +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 1sxnCw-00Ad98-Jv for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Oct 2024 12:51:26 +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 1sxnCv-00Ad0r-WB for pgsql-hackers@lists.postgresql.org; Mon, 07 Oct 2024 12:51:26 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sxnCm-002xFr-Hh for pgsql-hackers@lists.postgresql.org; Mon, 07 Oct 2024 12:51:22 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 80F2F607AF; Mon, 7 Oct 2024 21:51:11 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_f17c61000d1d4eb41c9f21e3eda0621c" Content-Transfer-Encoding: 8bit Date: Mon, 07 Oct 2024 21:51:11 +0900 From: torikoshia To: Fujii Masao , jian.universality@gmail.com Cc: zhjwpku@gmail.com, pgsql-hackers@lists.postgresql.org Subject: Re: Add new COPY option REJECT_LIMIT In-Reply-To: <8830518a-28ac-43a2-8a11-1676d9a3cdf8@oss.nttdata.com> References: <63f99327aa6b404cc951217fa3e61fe4@oss.nttdata.com> <6e3dcdc6-8e18-4716-a23b-3bee316aeaa7@oss.nttdata.com> <979c6d306343f3d665d14eab2cd1b7bc@oss.nttdata.com> <920a29a36032befbeb355cbdfbbe0f63@oss.nttdata.com> <54bea7dd-94b1-41f1-a4e9-c5c53cc82ce7@oss.nttdata.com> <644a094c-2c0c-4b5f-b151-3677c7de4ee7@oss.nttdata.com> <5f807fcf3a36df7ba41464ab40b5c37d@oss.nttdata.com> <056a5728cf733685cff7d9b5a8fbb0ad@oss.nttdata.com> <8830518a-28ac-43a2-8a11-1676d9a3cdf8@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_f17c61000d1d4eb41c9f21e3eda0621c Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Thanks for your review! On Thu, Oct 3, 2024 at 4:27 PM jian he wrote: > mentioning maxerror is a > bigint type > or explicitly mentioning the maximum allowed value of "maxerror" would > be great. Added a description that it allows positive bigint. On Thu, Oct 3, 2024 at 11:43 PM Fujii Masao wrote: > + if (opts_out->reject_limit && !opts_out->on_error) > + ereport(ERROR, > + > (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > + /*- translator: first and second %s are the names of > COPY > + * option, e.g. ON_ERROR, third is the value of the > COPY option, > + * e.g. IGNORE */ > + errmsg("COPY %s requires %s to be set > to %s", > + "REJECT_LIMIT", > "ON_ERROR", "IGNORE"))); > > This check might be better moved to other place, for example at > the bottom of ProcessCopyOptions(). I noticed a comment in the code: > "Check for incompatible options (must do these two before inserting > defaults)." > You added your condition after this comment and before inserting the > defaults, > but it's not related to that process. So, moving this check to other > place > seems more appropriate. Agreed. Moved it to the bottom of ProcessCopyOptions(). > While reviewing, I also noticed that the check for > "opts_out->binary && opts_out->on_error != COPY_ON_ERROR_STOP" > is similarly placed before setting the defaults, which might not > be correct. This check should probably be moved as well. > Additionally, the comment mentioning "must do these two" should be > updated to "must do these three." These changes should be handled > in a separate patch. Agreed and attached 0002 patch. > + if (cstate->opts.reject_limit && > > Wouldn't it be clearer to use cstate->opts.reject_limit > 0 for better > readability? Agreed. > + cstate->num_errors > > cstate->opts.reject_limit) > + ereport(ERROR, > + > (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), > + errmsg("skipped more > than REJECT_LIMIT rows: \"%lld\",", > + (long > long) cstate->opts.reject_limit))); > > To make the error message clearer, similar to the NOTICE about > skipped rows, how about rewording it to: > "skipped more than REJECT_LIMIT (%lld) rows due to data type > incompatibility"? Agreed. Also considering when REJECT_LIMIT is specified to 1, attached patch uses errmsg_plural() instead of errmsg. -- Regards, -- Atsushi Torikoshi NTT DATA Group Corporation --=_f17c61000d1d4eb41c9f21e3eda0621c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v7-0001-Subject-Add-REJECT_LIMIT-option-to-COPY-command.patch Content-Disposition: attachment; filename=v7-0001-Subject-Add-REJECT_LIMIT-option-to-COPY-command.patch; size=8936 RnJvbSAzNjBlMTcwYjhhZWUzNzhjMGY0OThkODg5OWQ5ZjNiNWQ0MWQwMzEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IE1vbiwgNyBPY3QgMjAyNCAxOTo1Nzo1MSArMDkwMApTdWJqZWN0OiBb UEFUQ0ggdjcgMS8yXSBTdWJqZWN0OiBBZGQgUkVKRUNUX0xJTUlUIG9wdGlvbiB0byBDT1BZIGNv bW1hbmQuCgo5ZTJkODcwIGVuYWJsZWQgdGhlIENPUFkgRlJPTSBjb21tYW5kIHRvIHNraXAgc29m dCBlcnJvcnMsIGJ1dCB0aGVyZQp3YXMgbm8gbGltaXRhdGlvbiBhYm91dCB0aGUgbnVtYmVyIG9m IGVycm9ycyBhbmQgc2tpcHBlZCBhbGwgdGhlIHNvZnQKZXJyb3JzLgpJbiBzb21lIGNhc2VzIHRo ZXJlIHdvdWxkIGJlIGEgbGltaXRhdGlvbiBob3cgbWFueSBlcnJvcnMgYXJlCnRvbGVyYWJsZS4g VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFJFSkVDVF9MSU1JVCB0byBzcGVjaWZ5IGhvdyBtYW55CmVy cm9ycyBjYW4gYmUgc2tpcHBlZC4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbCAgICAg ICAgICB8IDE5ICsrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMg ICAgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9j b21tYW5kcy9jb3B5ZnJvbS5jICAgICB8ICA5ICsrKysrKysrCiBzcmMvaW5jbHVkZS9jb21tYW5k cy9jb3B5LmggICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIu b3V0IHwgMTAgKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgICAgICB8 IDIxICsrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NvcHkuc2dtbAppbmRleCBiOTQxM2Q0ODkyLi41OWExN2Q3NzkzIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dt bApAQCAtNDQsNiArNDQsNyBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAgICAgRk9SQ0VfTk9U X05VTEwgeyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLl0gKSB8ICogfQogICAgIEZPUkNFX05VTEwgeyAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSB8 ICogfQogICAgIE9OX0VSUk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lcnJvcl9h Y3Rpb248L3JlcGxhY2VhYmxlPgorICAgIFJFSkVDVF9MSU1JVCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bWF4ZXJyb3I8L3JlcGxhY2VhYmxlPgogICAgIEVOQ09ESU5HICc8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5jb2RpbmdfbmFtZTwvcmVwbGFjZWFibGU+JwogICAg IExPR19WRVJCT1NJVFkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZlcmJvc2l0eTwv cmVwbGFjZWFibGU+CiA8L3N5bm9wc2lzPgpAQCAtNDEzLDYgKzQxNCwyNCBAQCBDT1BZIHsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICgg PHJlcGxhY2VhYmxlCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFSkVDVF9MSU1JVDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNwZWNpZmllcyB0aGUg bWF4aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvbGVyYXRlZCB3aGlsZSBjb252ZXJ0aW5nIGEKKyAg ICAgIGNvbHVtbidzIGlucHV0IHZhbHVlIHRvIGl0cyBkYXRhIHR5cGUsIHdoZW4gPGxpdGVyYWw+ T05fRVJST1I8L2xpdGVyYWw+IGlzCisgICAgICBzZXQgdG8gPGxpdGVyYWw+aWdub3JlPC9saXRl cmFsPi4KKyAgICAgIElmIHRoZSBpbnB1dCBjYXVzZXMgbW9yZSBlcnJvcnMgdGhhbiB0aGUgc3Bl Y2lmaWVkIHZhbHVlLCB0aGUgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4KKyAgICAgIGNvbW1hbmQg ZmFpbHMsIGV2ZW4gd2l0aCA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gc2V0IHRvIDxsaXRl cmFsPmlnbm9yZTwvbGl0ZXJhbD4uCisgICAgICBUaGlzIGNsYXVzZSBtdXN0IGJlIHVzZWQgd2l0 aCA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD49PGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPgor ICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXhlcnJvcjwvcmVwbGFj ZWFibGU+IG11c3QgYmUgcG9zaXRpdmUgPHR5cGU+YmlnaW50PC90eXBlPi4KKyAgICAgIElmIG5v dCBzcGVjaWZpZWQsIDxsaXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPj08bGl0ZXJhbD5pZ25vcmU8 L2xpdGVyYWw+CisgICAgICBhbGxvd3MgYW4gdW5saW1pdGVkIG51bWJlciBvZiBlcnJvcnMsIG1l YW5pbmcgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4gd2lsbAorICAgICAgc2tpcCBhbGwgZXJyb25l b3VzIGRhdGEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+RU5DT0RJTkc8L2xp dGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCAwM2ViN2E0 ZWJhLi5iZWZhYjkyMDc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCkBAIC00MTgsNiArNDE4LDIzIEBAIGRl ZkdldENvcHlPbkVycm9yQ2hvaWNlKERlZkVsZW0gKmRlZiwgUGFyc2VTdGF0ZSAqcHN0YXRlLCBi b29sIGlzX2Zyb20pCiAJcmV0dXJuIENPUFlfT05fRVJST1JfU1RPUDsJLyoga2VlcCBjb21waWxl ciBxdWlldCAqLwogfQogCisvKgorICogRXh0cmFjdCBSRUpFQ1RfTElNSVQgdmFsdWUgZnJvbSBh IERlZkVsZW0uCisgKi8KK3N0YXRpYyBpbnQ2NAorZGVmR2V0Q29weVJlamVjdExpbWl0T3B0aW9u KERlZkVsZW0gKmRlZikKK3sKKwlpbnQ2NAkJcmVqZWN0X2xpbWl0ID0gZGVmR2V0SW50NjQoZGVm KTsKKworCWlmIChyZWplY3RfbGltaXQgPD0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJSRUpF Q1RfTElNSVQgKCVsbGQpIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8iLAorCQkJCQkJKGxvbmcg bG9uZykgcmVqZWN0X2xpbWl0KSkpOworCisJcmV0dXJuIHJlamVjdF9saW1pdDsKK30KKwogLyoK ICAqIEV4dHJhY3QgYSBDb3B5TG9nVmVyYm9zaXR5Q2hvaWNlIHZhbHVlIGZyb20gYSBEZWZFbGVt LgogICovCkBAIC00NzIsNiArNDg5LDcgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAlib29sCQloZWFkZXJfc3BlY2lmaWVkID0gZmFsc2U7CiAJYm9vbAkJb25fZXJy b3Jfc3BlY2lmaWVkID0gZmFsc2U7CiAJYm9vbAkJbG9nX3ZlcmJvc2l0eV9zcGVjaWZpZWQgPSBm YWxzZTsKKwlib29sCQlyZWplY3RfbGltaXRfc3BlY2lmaWVkID0gZmFsc2U7CiAJTGlzdENlbGwg ICAqb3B0aW9uOwogCiAJLyogU3VwcG9ydCBleHRlcm5hbCB1c2UgZm9yIG9wdGlvbiBzYW5pdHkg Y2hlY2tpbmcgKi8KQEAgLTYzOCw2ICs2NTYsMTMgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCWxvZ192ZXJib3NpdHlfc3BlY2lmaWVkID0gdHJ1ZTsKIAkJCW9w dHNfb3V0LT5sb2dfdmVyYm9zaXR5ID0gZGVmR2V0Q29weUxvZ1ZlcmJvc2l0eUNob2ljZShkZWZl bCwgcHN0YXRlKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyZWpl Y3RfbGltaXQiKSA9PSAwKQorCQl7CisJCQlpZiAocmVqZWN0X2xpbWl0X3NwZWNpZmllZCkKKwkJ CQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJCXJlamVjdF9saW1p dF9zcGVjaWZpZWQgPSB0cnVlOworCQkJb3B0c19vdXQtPnJlamVjdF9saW1pdCA9IGRlZkdldENv cHlSZWplY3RMaW1pdE9wdGlvbihkZWZlbCk7CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtODc0LDYgKzg5OSwx NCBAQCBQcm9jZXNzQ29weU9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coIk5VTEwgc3Bl Y2lmaWNhdGlvbiBhbmQgREVGQVVMVCBzcGVjaWZpY2F0aW9uIGNhbm5vdCBiZSB0aGUgc2FtZSIp KSk7CiAJfQorCS8qIENoZWNrIG9uX2Vycm9yICovCisJaWYgKG9wdHNfb3V0LT5yZWplY3RfbGlt aXQgJiYgIW9wdHNfb3V0LT5vbl9lcnJvcikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJLyotIHRyYW5zbGF0b3I6IGZp cnN0IGFuZCBzZWNvbmQgJXMgYXJlIHRoZSBuYW1lcyBvZiBDT1BZIG9wdGlvbiwgZS5nLgorCQkg KiBPTl9FUlJPUiwgdGhpcmQgaXMgdGhlIHZhbHVlIG9mIHRoZSBDT1BZIG9wdGlvbiwgZS5nLiBJ R05PUkUgKi8KKwkJCQkgZXJybXNnKCJDT1BZICVzIHJlcXVpcmVzICVzIHRvIGJlIHNldCB0byAl cyIsCisJCQkJCQkiUkVKRUNUX0xJTUlUIiwgIk9OX0VSUk9SIiwgIklHTk9SRSIpKSk7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29weWZyb20uYwppbmRleCA5MTM5YTQwNzg1Li5iMDRlNzcwY2ZhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTEwMTgsNiArMTAxOCwxNSBAQCBDb3B5RnJvbShD b3B5RnJvbVN0YXRlIGNzdGF0ZSkKIAkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJP R1JFU1NfQ09QWV9UVVBMRVNfU0tJUFBFRCwKIAkJCQkJCQkJCQkgY3N0YXRlLT5udW1fZXJyb3Jz KTsKIAorCQkJaWYgKGNzdGF0ZS0+b3B0cy5yZWplY3RfbGltaXQgPiAwICYmIFwKKwkJCQljc3Rh dGUtPm51bV9lcnJvcnMgPiBjc3RhdGUtPm9wdHMucmVqZWN0X2xpbWl0KQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElP TiksCisJCQkJCQkgZXJybXNnX3BsdXJhbCgic2tpcHBlZCBtb3JlIHRoYW4gUkVKRUNUX0xJTUlU ICglbGxkKSByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCQkJ ICAgInNraXBwZWQgbW9yZSB0aGFuIFJFSkVDVF9MSU1JVCAoJWxsZCkgcm93cyBkdWUgdG8gZGF0 YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCQkgICAobG9uZyBsb25nKSBjc3RhdGUt Pm9wdHMucmVqZWN0X2xpbWl0LAorCQkJCQkJCQkJICAgKGxvbmcgbG9uZykgY3N0YXRlLT5vcHRz LnJlamVjdF9saW1pdCkpKTsKKwogCQkJLyogUmVwZWF0IE5leHRDb3B5RnJvbSgpIHVudGlsIG5v IHNvZnQgZXJyb3Igb2NjdXJzICovCiAJCQljb250aW51ZTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvY29weS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCmlu ZGV4IDZmNjRkOTdmZGQuLjQwMDJhN2Y1MzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2NvcHkuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKQEAgLTg1LDYgKzg1 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29weUZvcm1hdE9wdGlvbnMKIAlib29sCQljb252ZXJ0X3Nl bGVjdGl2ZWx5OwkvKiBkbyBzZWxlY3RpdmUgYmluYXJ5IGNvbnZlcnNpb24/ICovCiAJQ29weU9u RXJyb3JDaG9pY2Ugb25fZXJyb3I7IC8qIHdoYXQgdG8gZG8gd2hlbiBlcnJvciBoYXBwZW5lZCAq LwogCUNvcHlMb2dWZXJib3NpdHlDaG9pY2UgbG9nX3ZlcmJvc2l0eTsJLyogdmVyYm9zaXR5IG9m IGxvZ2dlZCBtZXNzYWdlcyAqLworCWludDY0CQlyZWplY3RfbGltaXQ7CS8qIG1heGltdW0gdG9s ZXJhYmxlIG51bWJlciBvZiBlcnJvcnMgKi8KIAlMaXN0CSAgICpjb252ZXJ0X3NlbGVjdDsgLyog bGlzdCBvZiBjb2x1bW4gbmFtZXMgKGNhbiBiZSBOSUwpICovCiB9IENvcHlGb3JtYXRPcHRpb25z OwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDRlNzUyOTc3YjUuLmQ3ZDk3 NTUyMmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC0xMTYsNiArMTE2LDEw IEBAIENPUFkgeCB0byBzdGRvdXQgKGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQpOwogRVJST1I6 ICBDT1BZIExPR19WRVJCT1NJVFkgInVuc3VwcG9ydGVkIiBub3QgcmVjb2duaXplZAogTElORSAx OiBDT1BZIHggdG8gc3Rkb3V0IChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorQ09QWSB4IGZyb20gc3RkaW4gd2l0aCAocmVqZWN0X2xpbWl0 IDEpOworRVJST1I6ICBDT1BZIFJFSkVDVF9MSU1JVCByZXF1aXJlcyBPTl9FUlJPUiB0byBiZSBz ZXQgdG8gSUdOT1JFCitDT1BZIHggZnJvbSBzdGRpbiB3aXRoIChvbl9lcnJvciBpZ25vcmUsIHJl amVjdF9saW1pdCAwKTsKK0VSUk9SOiAgUkVKRUNUX0xJTUlUICgwKSBtdXN0IGJlIGdyZWF0ZXIg dGhhbiB6ZXJvCiAtLSB0b28gbWFueSBjb2x1bW5zIGluIGNvbHVtbiBsaXN0OiBzaG91bGQgZmFp bAogQ09QWSB4IChhLCBiLCBjLCBkLCBlLCBkLCBjKSBmcm9tIHN0ZGluOwogRVJST1I6ICBjb2x1 bW4gImQiIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZQpAQCAtNzkxLDYgKzc5NSwxMiBAQCBDT05U RVhUOiAgQ09QWSBjaGVja19pZ25fZXJyLCBsaW5lIDE6ICIxCXsxfSIKIENPUFkgY2hlY2tfaWdu X2VyciBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJPUjogIGV4dHJhIGRh dGEgYWZ0ZXIgbGFzdCBleHBlY3RlZCBjb2x1bW4KIENPTlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9l cnIsIGxpbmUgMTogIjEJezF9CTMJYWJjIgorLS0gdGVzdHMgZm9yIHJlamVjdF9saW1pdCBvcHRp b24KK0NPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSwg cmVqZWN0X2xpbWl0IDMpOworRVJST1I6ICBza2lwcGVkIG1vcmUgdGhhbiBSRUpFQ1RfTElNSVQg KDMpIHJvd3MgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKK0NPTlRFWFQ6ICBDT1BZ IGNoZWNrX2lnbl9lcnIsIGxpbmUgNSwgY29sdW1uIG46ICIiCitDT1BZIGNoZWNrX2lnbl9lcnIg RlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUsIHJlamVjdF9saW1pdCA0KTsKK05PVElD RTogIDQgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkK IC0tIGNsZWFuIHVwCiBEUk9QIFRBQkxFIGZvcmNldGVzdDsKIERST1AgVEFCTEUgdmlzdGVzdDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NvcHkyLnNxbAppbmRleCBmYTZhYTE3MzQ0Li4xYWEwZTQxYjY4IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY29weTIuc3FsCkBAIC04Miw2ICs4Miw4IEBAIENPUFkgeCB0byBzdGRvdXQgKGZvcm1h dCBURVhULCBmb3JjZV9udWxsKGEpKTsKIENPUFkgeCB0byBzdGRpbiAoZm9ybWF0IENTViwgZm9y Y2VfbnVsbChhKSk7CiBDT1BZIHggdG8gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVu c3VwcG9ydGVkKTsKIENPUFkgeCB0byBzdGRvdXQgKGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQp OworQ09QWSB4IGZyb20gc3RkaW4gd2l0aCAocmVqZWN0X2xpbWl0IDEpOworQ09QWSB4IGZyb20g c3RkaW4gd2l0aCAob25fZXJyb3IgaWdub3JlLCByZWplY3RfbGltaXQgMCk7CiAKIC0tIHRvbyBt YW55IGNvbHVtbnMgaW4gY29sdW1uIGxpc3Q6IHNob3VsZCBmYWlsCiBDT1BZIHggKGEsIGIsIGMs IGQsIGUsIGQsIGMpIGZyb20gc3RkaW47CkBAIC01NjEsNiArNTYzLDI1IEBAIENPUFkgY2hlY2tf aWduX2VyciBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSk7CiAxCXsxfQkzCWFiYwog XC4KIAorLS0gdGVzdHMgZm9yIHJlamVjdF9saW1pdCBvcHRpb24KK0NPUFkgY2hlY2tfaWduX2Vy ciBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSwgcmVqZWN0X2xpbWl0IDMpOworNgl7 Nn0JNgorYQl7N30JNworOAl7OH0JODg4ODg4ODg4OAorOQl7YSwgOX0JOQorCisxMAl7MTB9CTEw CitcLgorCitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25v cmUsIHJlamVjdF9saW1pdCA0KTsKKzYJezZ9CTYKK2EJezd9CTcKKzgJezh9CTg4ODg4ODg4ODgK KzkJe2EsIDl9CTkKKworMTAJezEwfQkxMAorXC4KKwogLS0gY2xlYW4gdXAKIERST1AgVEFCTEUg Zm9yY2V0ZXN0OwogRFJPUCBUQUJMRSB2aXN0ZXN0OwotLSAKMi4zOS4yCgo= --=_f17c61000d1d4eb41c9f21e3eda0621c Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v7-0002-Modify-the-place-and-comments-of-ProcessCopyOptio.patch Content-Disposition: attachment; filename=v7-0002-Modify-the-place-and-comments-of-ProcessCopyOptio.patch; size=2139 RnJvbSBjZjBjZTZkMmU5MzYyZDNjMzY3NTVhMzA2YjkxM2M5Y2M4OWIwMDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IE1vbiwgNyBPY3QgMjAyNCAyMDoxMDoyMiArMDkwMApTdWJqZWN0OiBb UEFUQ0ggdjcgMi8yXSBNb3ZlIGNoZWNrIGZvciBiaW5hcnkgbW9kZSBhbmQgb25fZXJyb3Igb3B0 aW9uIHRvIGFwcHJvcHJpYXRlIGxvY2F0aW9uCgpUaGUgY3VycmVudCBsb2NhdGlvbiBmb3IgY2hl Y2tpbmcgZm9yIGJpbmFyeSBtb2RlIGFuZCBvbl9lcnJvciBvcHRpb24KaXMgbm90IGFwcHJvcHJp YXRlLCBhcyB0aGlzIGlzIHdoZXJlIGNoZWNrcyBzaG91bGQgYmUgcGVyZm9ybWVkIGJlZm9yZQpp bnNlcnRpbmcgZGVmYXVsdCB2YWx1ZXMuCkFkZGl0aW9uYWxseSwgdGhlIGNvbW1lbnQgbWVudGlv bnMgdHdvIGNoZWNrcywgYnV0IHRoZXJlIGFyZSBub3cgdGhyZWUuCgpUaGlzIHBhdGNoIG1vdmVz IHRoZSBjaGVjayBmb3IgaW5jb21wYXRpYmxlIG9wdGlvbnMgdG8gdGhlIGVuZCBvZgpQcm9jZXNz Q29weU9wdGlvbnMoKSBhbmQgdXBkYXRlcyB0aGUgY29tbWVudCBhY2NvcmRpbmdseS4KCi0tLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jIHwgMTIgKysrKysrLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRl eCBiZWZhYjkyMDc0Li4wYjA5M2RiYjJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCkBAIC02NzIsNyArNjcy LDcgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl9CiAKIAkvKgot CSAqIENoZWNrIGZvciBpbmNvbXBhdGlibGUgb3B0aW9ucyAobXVzdCBkbyB0aGVzZSB0d28gYmVm b3JlIGluc2VydGluZworCSAqIENoZWNrIGZvciBpbmNvbXBhdGlibGUgb3B0aW9ucyAobXVzdCBk byB0aGVzZSB0aHJlZSBiZWZvcmUgaW5zZXJ0aW5nCiAJICogZGVmYXVsdHMpCiAJICovCiAJaWYg KG9wdHNfb3V0LT5iaW5hcnkgJiYgb3B0c19vdXQtPmRlbGltKQpAQCAtNjkxLDExICs2OTEsNiBA QCBQcm9jZXNzQ29weU9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qgc3BlY2lmeSAlcyBpbiBC SU5BUlkgbW9kZSIsICJERUZBVUxUIikpKTsKIAotCWlmIChvcHRzX291dC0+YmluYXJ5ICYmIG9w dHNfb3V0LT5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9SX1NUT1ApCi0JCWVyZXBvcnQoRVJST1Is Ci0JCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAotCQkJCSBlcnJtc2coIm9ubHkg T05fRVJST1IgU1RPUCBpcyBhbGxvd2VkIGluIEJJTkFSWSBtb2RlIikpKTsKLQogCS8qIFNldCBk ZWZhdWx0cyBmb3Igb21pdHRlZCBvcHRpb25zICovCiAJaWYgKCFvcHRzX291dC0+ZGVsaW0pCiAJ CW9wdHNfb3V0LT5kZWxpbSA9IG9wdHNfb3V0LT5jc3ZfbW9kZSA/ICIsIiA6ICJcdCI7CkBAIC05 MDAsNiArODk1LDExIEBAIFByb2Nlc3NDb3B5T3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCSBlcnJtc2coIk5VTEwgc3BlY2lmaWNhdGlvbiBhbmQgREVGQVVMVCBzcGVjaWZpY2F0aW9u IGNhbm5vdCBiZSB0aGUgc2FtZSIpKSk7CiAJfQogCS8qIENoZWNrIG9uX2Vycm9yICovCisJaWYg KG9wdHNfb3V0LT5iaW5hcnkgJiYgb3B0c19vdXQtPm9uX2Vycm9yICE9IENPUFlfT05fRVJST1Jf U1RPUCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJIGVycm1zZygib25seSBPTl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZ IG1vZGUiKSkpOworCiAJaWYgKG9wdHNfb3V0LT5yZWplY3RfbGltaXQgJiYgIW9wdHNfb3V0LT5v bl9lcnJvcikKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKLS0gCjIuMzkuMgoK --=_f17c61000d1d4eb41c9f21e3eda0621c--