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 1tDNX8-000IAK-5E for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Nov 2024 12:40:42 +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 1tDNX5-00CtKD-Lf for pgsql-hackers@arkaria.postgresql.org; Tue, 19 Nov 2024 12:40:40 +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 1tDNX5-00CtK5-2w for pgsql-hackers@lists.postgresql.org; Tue, 19 Nov 2024 12:40:39 +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 1tDNX1-002ggE-Ju for pgsql-hackers@postgresql.org; Tue, 19 Nov 2024 12:40:38 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id D7F5261BCB; Tue, 19 Nov 2024 21:40:30 +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="=_12f30d762e90d0439a7a68ade264ad7e" Content-Transfer-Encoding: 7bit Date: Tue, 19 Nov 2024 21:40:30 +0900 From: torikoshia To: Yugo NAGATA Cc: Fujii Masao , Pgsql Hackers Subject: Re: Add reject_limit option to file_fdw In-Reply-To: <20241113231706.09e5b5ea9640289312835be8@sraoss.co.jp> References: <54747389a562688eab7077b144daff6a@oss.nttdata.com> <2b3ad6d4-e05f-4188-8cfe-1fd9d949a9c9@oss.nttdata.com> <192ede1e4c2b34b853e5ac46f8dee50b@oss.nttdata.com> <20241112145114.ba288defc684699bf8646942@sraoss.co.jp> <2f03bf95556c4c41d6b1659e74b346c7@oss.nttdata.com> <20241113231706.09e5b5ea9640289312835be8@sraoss.co.jp> 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 --=_12f30d762e90d0439a7a68ade264ad7e Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2024-11-13 23:17, Yugo NAGATA wrote: > On Wed, 13 Nov 2024 21:48:10 +0900 > torikoshia wrote: > >> On 2024-11-12 14:51, Yugo Nagata wrote: >> >> Thanks for your review! >> >> > On Tue, 12 Nov 2024 10:16:50 +0900 >> > torikoshia wrote: >> > >> >> On 2024-11-12 01:49, Fujii Masao wrote: >> >> > On 2024/11/11 21:45, torikoshia wrote: >> >> >>> Thanks for adding the comment. It clearly states that REJECT_LIMIT >> >> >>> can be >> >> >>> a single-quoted string. However, it might also be helpful to mention >> >> >>> that >> >> >>> it can be provided as an int64 in the COPY command option. How about >> >> >>> updating it like this? >> >> >>> >> >> >>> ------------------------------------ >> >> >>> REJECT_LIMIT can be specified in two ways: as an int64 for the COPY >> >> >>> command >> >> >>> option or as a single-quoted string for the foreign table option >> >> >>> using >> >> >>> file_fdw. Therefore this function needs to handle both formats. >> >> >>> ------------------------------------ >> >> >> >> >> >> Thanks! it seems better. >> >> >> >> >> >> >> >> >> Attached v3 patch. >> >> > >> >> > Thanks for updating the patch! It looks like you forgot to attach it, >> >> > though. >> >> >> >> Oops, thanks for pointing it out. >> >> Here it is. >> > >> > I have one minor comment. >> > >> > + ereport(ERROR, >> > + (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), >> > + errmsg("skipped more than REJECT_LIMIT (%lld) rows due to data >> > type incompatibility", >> > + (long long) cstate->opts.reject_limit))); >> > >> > Do we have to keep this message consistent with ones of COPY command? >> > With foreign data wrappers, it seems common that the option name is >> > passed in >> > lowercase, so is it better to use "skipped more than reject_limit ..." >> > rather >> > than using uppercase? >> >> Agreed. >> Attached v4 patch. > > > Thank you for updating the patch. > > However, I noticed that file_fdw could output the following error > using uppercase > when an invalid value is set to the reject_limit option, > > ALTER FOREIGN TABLE agg_bad OPTIONS (ADD reject_limit '-1'); > ERROR: REJECT_LIMIT (-1) must be greater than zero > > as well as if reject_limit is set when on_error != 'ignore'. > > ALTER FOREIGN TABLE agg_bad OPTIONS (ADD reject_limit '1'); -- ERROR > ERROR: COPY REJECT_LIMIT requires ON_ERROR to be set to IGNORE > > Also, in the regression tests, I found similar behaviours on existing > options, > for example; > > CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (format > 'xml'); -- ERROR > ERROR: COPY format "xml" not recognized > CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (format > 'text', quote ':'); -- ERROR > ERROR: COPY QUOTE requires CSV mode > CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (format > 'text', escape ':'); -- ERROR > ... > > These messages may be unexpected for some users because the > documentation of > fild_fdw does not explicitly describe that file_fdw uses COPY > internally. > (I can find several wordings like "as COPY", though.) > However, since the current file_fdw already has such messages, I came > to think > making the messages on "reject_limit" consistent with COPY is > reasonable. > I mean, the previous version of the message seems fine. Agreed. Thanks for your investigation. > As another comment, do we need to add validator test for on_error and > reject_limit as similar to other options? That might be better. Added some queries which had wrong options to cause errors. I was unsure whether to add it to "validator test" section or "on_error, log_verbosity and reject_limit tests" section, but I chose "validator test" as I believe it makes things clearer. Added 0002 patch since some of the tests are not related to reject_limit but just on_error. -- Regards, -- Atsushi Torikoshi Seconded from NTT DATA GROUP CORPORATION to SRA OSS K.K. --=_12f30d762e90d0439a7a68ade264ad7e Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0001-file_fdw-Add-reject_limit-option-to-file_fdw.patch Content-Disposition: attachment; filename=v5-0001-file_fdw-Add-reject_limit-option-to-file_fdw.patch; size=7317 RnJvbSA2NjE5Mzc4NjlkNjk2YmM2NDBmZjU0Yzk3NjMxYzI3NjcxNTAyZTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMjE6MDY6MzcgKzA5MDAKU3ViamVjdDog W1BBVENIIHY1IDEvMl0gZmlsZV9mZHc6IEFkZCByZWplY3RfbGltaXQgb3B0aW9uIHRvIGZpbGVf ZmR3CgpDb21taXQgNGFjMmE5YmVjZSBpbnRyb2R1Y2VkIFJFSkVDVF9MSU1JVCBvcHRpb24gZm9y IENPUFkuIFRoaXMgcGF0Y2gKZXh0ZW5kcyBzdXBwb3J0IGZvciB0aGlzIG9wdGlvbiB0byBmaWxl X2Zkdy4KCkFzIHdlbGwgYXMgUkVKRUNUX0xJTUlUIG9wdGlvbiBmb3IgQ09QWSwgdGhpcyBvcHRp b24gbGltaXRzIHRoZQptYXhpbXVtIG51bWJlciBvZiBlcnJvbmVvdXMgcm93cyB0aGF0IGNhbiBi ZSBza2lwcGVkLgpJZiBtb3JlIHJvd3MgZW5jb3VudGVyIGRhdGEgdHlwZSBjb252ZXJzaW9uIGVy cm9ycyB0aGFuIGFsbG93ZWQgYnkKcmVqZWN0X2xpbWl0LCB0aGUgYWNjZXNzIHRvIHRoZSBmaWxl X2ZkdyBmb3JlaWduIHRhYmxlIHdpbGwgZmFpbAp3aXRoIGFuIGVycm9yLCBldmVuIHdoZW4gb25f ZXJyb3IgPSAnaWdub3JlJy4KCkJhc2VkIG9uIHRoZSBzeW5vcHNpcyBvZiB0aGUgQ1JFQVRFL0FM VEVSIEZPUkVJR04gVEFCTEUgY29tbWFuZHMsIHRoZQp2YWx1ZSBmb3IgdGhlIGZvcmVpZ24gdGFi bGUncyBvcHRpb24gbXVzdCBiZSBzaW5nbGUtcXVvdGVkLgpUbyBhY2NvbW1vZGF0ZSB0aGlzLCB0 aGUgcGF0Y2ggbW9kaWZpZXMgZGVmR2V0Q29weVJlamVjdExpbWl0T3B0aW9uCnRvIGFjY2VwdCBu b3Qgb25seSBpbnQ2NCBidXQgYWxzbyBzdHJpbmdzLgotLS0KIGNvbnRyaWIvZmlsZV9mZHcvZGF0 YS9hZ2cuYmFkICAgICAgICAgIHwgIDEgKwogY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxl X2Zkdy5vdXQgfCAxOCArKysrKysrKysrKysrKysrLS0KIGNvbnRyaWIvZmlsZV9mZHcvZmlsZV9m ZHcuYyAgICAgICAgICAgIHwgIDggKysrKysrKysKIGNvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVf ZmR3LnNxbCAgICAgIHwgIDcgKysrKysrLQogZG9jL3NyYy9zZ21sL2ZpbGUtZmR3LnNnbWwgICAg ICAgICAgICAgfCAxMiArKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyAg ICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKysrLQogNiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZmlsZV9mZHcv ZGF0YS9hZ2cuYmFkIGIvY29udHJpYi9maWxlX2Zkdy9kYXRhL2FnZy5iYWQKaW5kZXggMzQxNWIx NTAwNy4uMDQyNzljZTU1YiAxMDA2NDQKLS0tIGEvY29udHJpYi9maWxlX2Zkdy9kYXRhL2FnZy5i YWQKKysrIGIvY29udHJpYi9maWxlX2Zkdy9kYXRhL2FnZy5iYWQKQEAgLTIsMyArMiw0IEBACiAx MDA7QDk5LjA5N0AKIDA7QGFhYUAKIDQyO0AzMjQuNzhACisxO0BiYmJACmRpZmYgLS1naXQgYS9j b250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dCBiL2NvbnRyaWIvZmlsZV9mZHcv ZXhwZWN0ZWQvZmlsZV9mZHcub3V0CmluZGV4IDU5M2ZkYzc4MmUuLjRmNjNjMDQ3ZWMgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CisrKyBiL2NvbnRy aWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CkBAIC05MCw2ICs5MCw4IEBAIEVSUk9S OiAgQ09QWSBkZWxpbWl0ZXIgY2Fubm90IGJlIG5ld2xpbmUgb3IgY2FycmlhZ2UgcmV0dXJuCiBD UkVBVEUgRk9SRUlHTiBUQUJMRSB0YmwgKCkgU0VSVkVSIGZpbGVfc2VydmVyIE9QVElPTlMgKGZv cm1hdCAnY3N2JywgbnVsbCAnCiAnKTsgICAgICAgLS0gRVJST1IKIEVSUk9SOiAgQ09QWSBudWxs IHJlcHJlc2VudGF0aW9uIGNhbm5vdCB1c2UgbmV3bGluZSBvciBjYXJyaWFnZSByZXR1cm4KK0NS RUFURSBGT1JFSUdOIFRBQkxFIHRibCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXIgT1BUSU9OUyAocmVq ZWN0X2xpbWl0ICcxJyk7ICAgICAgIC0tIEVSUk9SCitFUlJPUjogIENPUFkgUkVKRUNUX0xJTUlU IHJlcXVpcmVzIE9OX0VSUk9SIHRvIGJlIHNldCB0byBJR05PUkUKIENSRUFURSBGT1JFSUdOIFRB QkxFIHRibCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXI7ICAtLSBFUlJPUgogRVJST1I6ICBlaXRoZXIg ZmlsZW5hbWUgb3IgcHJvZ3JhbSBpcyByZXF1aXJlZCBmb3IgZmlsZV9mZHcgZm9yZWlnbiB0YWJs ZXMKIFxzZXQgZmlsZW5hbWUgOmFic19zcmNkaXIgJy9kYXRhL2FnZy5kYXRhJwpAQCAtMjA2LDEw ICsyMDgsMTAgQEAgU0VMRUNUICogRlJPTSBhZ2dfY3N2IGMgSk9JTiBhZ2dfdGV4dCB0IE9OICh0 LmEgPSBjLmEpIE9SREVSIEJZIGMuYTsKIFNFTEVDVCAqIEZST00gYWdnX2JhZDsgICAgICAgICAg ICAgICAtLSBFUlJPUgogRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSByZWFs OiAiYWFhIgogQ09OVEVYVDogIENPUFkgYWdnX2JhZCwgbGluZSAzLCBjb2x1bW4gYjogImFhYSIK LS0tIG9uX2Vycm9yIGFuZCBsb2dfdmVyYm9zaXR5IHRlc3RzCistLSBvbl9lcnJvciwgbG9nX3Zl cmJvc2l0eSBhbmQgcmVqZWN0X2xpbWl0IHRlc3RzCiBBTFRFUiBGT1JFSUdOIFRBQkxFIGFnZ19i YWQgT1BUSU9OUyAoQUREIG9uX2Vycm9yICdpZ25vcmUnKTsKIFNFTEVDVCAqIEZST00gYWdnX2Jh ZDsKLU5PVElDRTogIDEgcm93IHdhcyBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRp YmlsaXR5CitOT1RJQ0U6ICAyIHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5j b21wYXRpYmlsaXR5CiAgIGEgIHwgICBiICAgIAogLS0tLS0rLS0tLS0tLS0KICAxMDAgfCA5OS4w OTcKQEAgLTIyNCw2ICsyMjYsMTggQEAgU0VMRUNUICogRlJPTSBhZ2dfYmFkOwogICA0MiB8IDMy NC43OAogKDIgcm93cykKIAorQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKEFE RCByZWplY3RfbGltaXQgJzEnKTsgLS0gRVJST1IKK1NFTEVDVCAqIEZST00gYWdnX2JhZDsKK0VS Uk9SOiAgc2tpcHBlZCBtb3JlIHRoYW4gUkVKRUNUX0xJTUlUICgxKSByb3dzIGR1ZSB0byBkYXRh IHR5cGUgaW5jb21wYXRpYmlsaXR5CitDT05URVhUOiAgQ09QWSBhZ2dfYmFkLCBsaW5lIDUsIGNv bHVtbiBiOiAiYmJiIgorQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKFNFVCBy ZWplY3RfbGltaXQgJzInKTsKK1NFTEVDVCAqIEZST00gYWdnX2JhZDsKKyAgYSAgfCAgIGIgICAg CistLS0tLSstLS0tLS0tLQorIDEwMCB8IDk5LjA5NworICA0MiB8IDMyNC43OAorKDIgcm93cykK KwogQU5BTFlaRSBhZ2dfYmFkOwogLS0gbWlzYyBxdWVyeSB0ZXN0cwogXHQgb24KZGlmZiAtLWdp dCBhL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyBiL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9m ZHcuYwppbmRleCAwNDMyMDRjM2U3Li45ZTI4OTZmMzJhIDEwMDY0NAotLS0gYS9jb250cmliL2Zp bGVfZmR3L2ZpbGVfZmR3LmMKKysrIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCkBAIC03 Nyw2ICs3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgRmlsZUZkd09wdGlvbiB2YWxpZF9vcHRp b25zW10gPSB7CiAJeyJlbmNvZGluZyIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWR9LAogCXsib25f ZXJyb3IiLCBGb3JlaWduVGFibGVSZWxhdGlvbklkfSwKIAl7ImxvZ192ZXJib3NpdHkiLCBGb3Jl aWduVGFibGVSZWxhdGlvbklkfSwKKwl7InJlamVjdF9saW1pdCIsIEZvcmVpZ25UYWJsZVJlbGF0 aW9uSWR9LAogCXsiZm9yY2Vfbm90X251bGwiLCBBdHRyaWJ1dGVSZWxhdGlvbklkfSwKIAl7ImZv cmNlX251bGwiLCBBdHRyaWJ1dGVSZWxhdGlvbklkfSwKIApAQCAtNzg4LDYgKzc4OSwxMyBAQCBy ZXRyeToKIAkJCSAqLwogCQkJUmVzZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSk7CiAKKwkJ CWlmIChjc3RhdGUtPm9wdHMucmVqZWN0X2xpbWl0ID4gMCAmJgorCQkJCWNzdGF0ZS0+bnVtX2Vy cm9ycyA+IGNzdGF0ZS0+b3B0cy5yZWplY3RfbGltaXQpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJ CSBlcnJtc2coInNraXBwZWQgbW9yZSB0aGFuIFJFSkVDVF9MSU1JVCAoJWxsZCkgcm93cyBkdWUg dG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCShsb25nIGxvbmcpIGNzdGF0 ZS0+b3B0cy5yZWplY3RfbGltaXQpKSk7CisKIAkJCS8qIFJlcGVhdCBOZXh0Q29weUZyb20oKSB1 bnRpbCBubyBzb2Z0IGVycm9yIG9jY3VycyAqLwogCQkJZ290byByZXRyeTsKIAkJfQpkaWZmIC0t Z2l0IGEvY29udHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcuc3FsIGIvY29udHJpYi9maWxlX2Zk dy9zcWwvZmlsZV9mZHcuc3FsCmluZGV4IGVkZDc3YzVjZDIuLjQ4MDVjYThjMDQgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbAorKysgYi9jb250cmliL2ZpbGVf ZmR3L3NxbC9maWxlX2Zkdy5zcWwKQEAgLTc3LDYgKzc3LDcgQEAgQ1JFQVRFIEZPUkVJR04gVEFC TEUgdGJsICgpIFNFUlZFUiBmaWxlX3NlcnZlciBPUFRJT05TIChmb3JtYXQgJ2NzdicsIGRlbGlt aXRlcgogJyk7ICAgICAgIC0tIEVSUk9SCiBDUkVBVEUgRk9SRUlHTiBUQUJMRSB0YmwgKCkgU0VS VkVSIGZpbGVfc2VydmVyIE9QVElPTlMgKGZvcm1hdCAnY3N2JywgbnVsbCAnCiAnKTsgICAgICAg LS0gRVJST1IKK0NSRUFURSBGT1JFSUdOIFRBQkxFIHRibCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXIg T1BUSU9OUyAocmVqZWN0X2xpbWl0ICcxJyk7ICAgICAgIC0tIEVSUk9SCiBDUkVBVEUgRk9SRUlH TiBUQUJMRSB0YmwgKCkgU0VSVkVSIGZpbGVfc2VydmVyOyAgLS0gRVJST1IKIAogXHNldCBmaWxl bmFtZSA6YWJzX3NyY2RpciAnL2RhdGEvYWdnLmRhdGEnCkBAIC0xNTAsMTEgKzE1MSwxNSBAQCBT RUxFQ1QgKiBGUk9NIGFnZ19jc3YgYyBKT0lOIGFnZ190ZXh0IHQgT04gKHQuYSA9IGMuYSkgT1JE RVIgQlkgYy5hOwogLS0gZXJyb3IgY29udGV4dCByZXBvcnQgdGVzdHMKIFNFTEVDVCAqIEZST00g YWdnX2JhZDsgICAgICAgICAgICAgICAtLSBFUlJPUgogCi0tLSBvbl9lcnJvciBhbmQgbG9nX3Zl cmJvc2l0eSB0ZXN0cworLS0gb25fZXJyb3IsIGxvZ192ZXJib3NpdHkgYW5kIHJlamVjdF9saW1p dCB0ZXN0cwogQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKEFERCBvbl9lcnJv ciAnaWdub3JlJyk7CiBTRUxFQ1QgKiBGUk9NIGFnZ19iYWQ7CiBBTFRFUiBGT1JFSUdOIFRBQkxF IGFnZ19iYWQgT1BUSU9OUyAoQUREIGxvZ192ZXJib3NpdHkgJ3NpbGVudCcpOwogU0VMRUNUICog RlJPTSBhZ2dfYmFkOworQUxURVIgRk9SRUlHTiBUQUJMRSBhZ2dfYmFkIE9QVElPTlMgKEFERCBy ZWplY3RfbGltaXQgJzEnKTsgLS0gRVJST1IKK1NFTEVDVCAqIEZST00gYWdnX2JhZDsKK0FMVEVS IEZPUkVJR04gVEFCTEUgYWdnX2JhZCBPUFRJT05TIChTRVQgcmVqZWN0X2xpbWl0ICcyJyk7CitT RUxFQ1QgKiBGUk9NIGFnZ19iYWQ7CiBBTkFMWVpFIGFnZ19iYWQ7CiAKIC0tIG1pc2MgcXVlcnkg dGVzdHMKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9maWxlLWZkdy5zZ21sIGIvZG9jL3NyYy9z Z21sL2ZpbGUtZmR3LnNnbWwKaW5kZXggYmIzNTc5YjA3Ny4uODgyZDlhNzZkMiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2ZpbGUtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2ZpbGUtZmR3 LnNnbWwKQEAgLTEzOCw2ICsxMzgsMTggQEAKICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVu dHJ5PgogCisgIDx2YXJsaXN0ZW50cnk+CisgICA8dGVybT48bGl0ZXJhbD5yZWplY3RfbGltaXQ8 L2xpdGVyYWw+PC90ZXJtPgorCisgICA8bGlzdGl0ZW0+CisgICAgPHBhcmE+CisgICAgIFNwZWNp ZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZXJyb3JzIHRvbGVyYXRlZCB3aGlsZSBjb252ZXJ0 aW5nIGEgY29sdW1uJ3MKKyAgICAgaW5wdXQgdmFsdWUgdG8gaXRzIGRhdGEgdHlwZSwgdGhlIHNh bWUgYXMgPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4ncworICAgIDxsaXRlcmFsPlJFSkVDVF9MSU1J VDwvbGl0ZXJhbD4gb3B0aW9uLgorICAgIDwvcGFyYT4KKyAgIDwvbGlzdGl0ZW0+CisgIDwvdmFy bGlzdGVudHJ5PgorCiAgIDx2YXJsaXN0ZW50cnk+CiAgICA8dGVybT48bGl0ZXJhbD5sb2dfdmVy Ym9zaXR5PC9saXRlcmFsPjwvdGVybT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IDM0ODViYTg2NjMu LjJkOThlY2YzZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKQEAgLTQyMCwxMSArNDIwLDI1IEBAIGRlZkdl dENvcHlPbkVycm9yQ2hvaWNlKERlZkVsZW0gKmRlZiwgUGFyc2VTdGF0ZSAqcHN0YXRlLCBib29s IGlzX2Zyb20pCiAKIC8qCiAgKiBFeHRyYWN0IFJFSkVDVF9MSU1JVCB2YWx1ZSBmcm9tIGEgRGVm RWxlbS4KKyAqCisgKiBSRUpFQ1RfTElNSVQgY2FuIGJlIHNwZWNpZmllZCBpbiB0d28gd2F5czog YXMgYW4gaW50NjQgZm9yIHRoZSBDT1BZIGNvbW1hbmQKKyAqIG9wdGlvbiBvciBhcyBhIHNpbmds ZS1xdW90ZWQgc3RyaW5nIGZvciB0aGUgZm9yZWlnbiB0YWJsZSBvcHRpb24gdXNpbmcKKyAqIGZp bGVfZmR3LiBUaGVyZWZvcmUgdGhpcyBmdW5jdGlvbiBuZWVkcyB0byBoYW5kbGUgYm90aCBmb3Jt YXRzLgogICovCiBzdGF0aWMgaW50NjQKIGRlZkdldENvcHlSZWplY3RMaW1pdE9wdGlvbihEZWZF bGVtICpkZWYpCiB7Ci0JaW50NjQJCXJlamVjdF9saW1pdCA9IGRlZkdldEludDY0KGRlZik7CisJ aW50NjQJCXJlamVjdF9saW1pdDsKKworCWlmIChkZWYtPmFyZyA9PSBOVUxMKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNn KCIlcyByZXF1aXJlcyBhIG51bWVyaWMgdmFsdWUiLAorCQkJCQkJZGVmLT5kZWZuYW1lKSkpOwor CWVsc2UgaWYgKG5vZGVUYWcoZGVmLT5hcmcpID09IFRfU3RyaW5nKQorCQlyZWplY3RfbGltaXQg PSBwZ19zdHJ0b2ludDY0KHN0clZhbChkZWYtPmFyZykpOworCWVsc2UKKwkJcmVqZWN0X2xpbWl0 ID0gZGVmR2V0SW50NjQoZGVmKTsKIAogCWlmIChyZWplY3RfbGltaXQgPD0gMCkKIAkJZXJlcG9y dChFUlJPUiwKLS0gCjIuMzkuMgoK --=_12f30d762e90d0439a7a68ade264ad7e Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v5-0002-Add-validator-tests-for-on_error-options.patch Content-Disposition: attachment; filename=v5-0002-Add-validator-tests-for-on_error-options.patch; size=2119 RnJvbSBhYjNjMzg1NzE3NjE1MDdhOWUxYjMwNzNmZmE5YzJmZGJjNTBjN2RlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMjE6MTI6NTIgKzA5MDAKU3ViamVjdDog W1BBVENIIHY1IDIvMl0gQWRkIHZhbGlkYXRvciB0ZXN0cyBmb3Igb25fZXJyb3Igb3B0aW9ucwoK LS0tCiBjb250cmliL2ZpbGVfZmR3L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dCB8IDQgKysrKwogY29u dHJpYi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcuc3FsICAgICAgfCAyICsrCiAyIGZpbGVzIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZmlsZV9mZHcvZXhwZWN0 ZWQvZmlsZV9mZHcub3V0IGIvY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5vdXQK aW5kZXggNGY2M2MwNDdlYy4uZjM4M2FlYzZkOCAxMDA2NDQKLS0tIGEvY29udHJpYi9maWxlX2Zk dy9leHBlY3RlZC9maWxlX2Zkdy5vdXQKKysrIGIvY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9m aWxlX2Zkdy5vdXQKQEAgLTkwLDYgKzkwLDEwIEBAIEVSUk9SOiAgQ09QWSBkZWxpbWl0ZXIgY2Fu bm90IGJlIG5ld2xpbmUgb3IgY2FycmlhZ2UgcmV0dXJuCiBDUkVBVEUgRk9SRUlHTiBUQUJMRSB0 YmwgKCkgU0VSVkVSIGZpbGVfc2VydmVyIE9QVElPTlMgKGZvcm1hdCAnY3N2JywgbnVsbCAnCiAn KTsgICAgICAgLS0gRVJST1IKIEVSUk9SOiAgQ09QWSBudWxsIHJlcHJlc2VudGF0aW9uIGNhbm5v dCB1c2UgbmV3bGluZSBvciBjYXJyaWFnZSByZXR1cm4KK0NSRUFURSBGT1JFSUdOIFRBQkxFIHRi bCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXIgT1BUSU9OUyAob25fZXJyb3IgJ2FhYScpOyAgICAgICAt LSBFUlJPUgorRVJST1I6ICBDT1BZIE9OX0VSUk9SICJhYWEiIG5vdCByZWNvZ25pemVkCitDUkVB VEUgRk9SRUlHTiBUQUJMRSB0YmwgKCkgU0VSVkVSIGZpbGVfc2VydmVyIE9QVElPTlMgKGZvcm1h dCAnYmluYXJ5Jywgb25fZXJyb3IgJ2lnbm9yZScpOyAgICAgICAtLSBFUlJPUgorRVJST1I6ICBv bmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dlZCBpbiBCSU5BUlkgbW9kZQogQ1JFQVRFIEZPUkVJ R04gVEFCTEUgdGJsICgpIFNFUlZFUiBmaWxlX3NlcnZlciBPUFRJT05TIChyZWplY3RfbGltaXQg JzEnKTsgICAgICAgLS0gRVJST1IKIEVSUk9SOiAgQ09QWSBSRUpFQ1RfTElNSVQgcmVxdWlyZXMg T05fRVJST1IgdG8gYmUgc2V0IHRvIElHTk9SRQogQ1JFQVRFIEZPUkVJR04gVEFCTEUgdGJsICgp IFNFUlZFUiBmaWxlX3NlcnZlcjsgIC0tIEVSUk9SCmRpZmYgLS1naXQgYS9jb250cmliL2ZpbGVf ZmR3L3NxbC9maWxlX2Zkdy5zcWwgYi9jb250cmliL2ZpbGVfZmR3L3NxbC9maWxlX2Zkdy5zcWwK aW5kZXggNDgwNWNhOGMwNC4uMWE3NmFlYmRlNiAxMDA2NDQKLS0tIGEvY29udHJpYi9maWxlX2Zk dy9zcWwvZmlsZV9mZHcuc3FsCisrKyBiL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNx bApAQCAtNzcsNiArNzcsOCBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSB0YmwgKCkgU0VSVkVSIGZp bGVfc2VydmVyIE9QVElPTlMgKGZvcm1hdCAnY3N2JywgZGVsaW1pdGVyCiAnKTsgICAgICAgLS0g RVJST1IKIENSRUFURSBGT1JFSUdOIFRBQkxFIHRibCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXIgT1BU SU9OUyAoZm9ybWF0ICdjc3YnLCBudWxsICcKICcpOyAgICAgICAtLSBFUlJPUgorQ1JFQVRFIEZP UkVJR04gVEFCTEUgdGJsICgpIFNFUlZFUiBmaWxlX3NlcnZlciBPUFRJT05TIChvbl9lcnJvciAn YWFhJyk7ICAgICAgIC0tIEVSUk9SCitDUkVBVEUgRk9SRUlHTiBUQUJMRSB0YmwgKCkgU0VSVkVS IGZpbGVfc2VydmVyIE9QVElPTlMgKGZvcm1hdCAnYmluYXJ5Jywgb25fZXJyb3IgJ2lnbm9yZScp OyAgICAgICAtLSBFUlJPUgogQ1JFQVRFIEZPUkVJR04gVEFCTEUgdGJsICgpIFNFUlZFUiBmaWxl X3NlcnZlciBPUFRJT05TIChyZWplY3RfbGltaXQgJzEnKTsgICAgICAgLS0gRVJST1IKIENSRUFU RSBGT1JFSUdOIFRBQkxFIHRibCAoKSBTRVJWRVIgZmlsZV9zZXJ2ZXI7ICAtLSBFUlJPUgogCi0t IAoyLjM5LjIKCg== --=_12f30d762e90d0439a7a68ade264ad7e--