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 1u3wyc-005SOZ-2Y for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Apr 2025 13:02:22 +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 1u3wyX-006kdw-Ba for pgsql-hackers@arkaria.postgresql.org; Sun, 13 Apr 2025 13:02:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u3wyW-006kdo-TQ for pgsql-hackers@lists.postgresql.org; Sun, 13 Apr 2025 13:02:17 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u3wyU-0007On-2u for pgsql-hackers@lists.postgresql.org; Sun, 13 Apr 2025 13:02:17 +0000 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-476b4c9faa2so43752171cf.3 for ; Sun, 13 Apr 2025 06:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744549333; x=1745154133; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=LWmb/UvYnDQMBbgXR0GO/wC0nuabfdKmNRdSIViHMig=; b=jumQzUbNGgbvweFCeuBEAHk/f+QZucDQWuKtIitEuru/D1+SNCZvOPH0xHC9xJzyRo NecjEo8YvCb8v2i5frAZHzxxs/p8JhqUWezylSTwFtVTQ3E2cGzSyLOUGtdt/AKxPgWZ g1UqGkzqvhg/e5sYCHjEIXeCFud1H6h6ivnxpavUM+H1de8fPbxkwyEN0EEiiuNBUIRX TnhY6ZjBlKzoKl0xgkVhZ/8MScd5hZV2qMm+oljky1off3yXG7ibAXka49k5dXJspG9Q 2MwjIJ5noetogQO47ZVpopG80XIOOzzXQMCG7aKI/RwaM1GZxjVUUcOvVFbndlRuGgQj fHaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744549333; x=1745154133; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=LWmb/UvYnDQMBbgXR0GO/wC0nuabfdKmNRdSIViHMig=; b=F4zInEnNAm1XDg714biNz8jybO8h97m83Go4f+8TOdPb/RTxU/Sk/MIRVx4RZnoVO1 YFz2cXggZ3rM7x7OG8Yz7ZWfOjB3hMWtTqbbPqP6lEKgfATOi07xhuOvS/O4xOuQ1q9K Yrl96r8yZW1n0EzsEI+f/M2H0cia4MES6o47Ai2kNpiY6T+D2o9aX6Ke4oHpybFvxhlb M2YymvnFxXyrdQVOliMHIXVD4uccICQOINM7iD90OGQ6Y/zQt3lFRu1ctbspB+mPqweX CQLgXg7T8HH/G4X/Hg3fLVZ2k0QfYDWNmmQQh1brUaEr0jTYCQ+YcEj4zbBnxYpqOUzq 98+g== X-Gm-Message-State: AOJu0Yy4R1Q1gp9/lYp6pY8Jda0Wyj2go6euzzmps/y5AFKtvtMNoDZO /h0iSgfCun3DQAdBLfsPS5c2fKkhdbn4GItUkoqQA5rTvywpHAXxnEzursztpMpOsnQjA3hZkWw NwCiX/SOsva5EJX8vqUp29r1jnOqDkD2V X-Gm-Gg: ASbGncsJmQEbjLtCIdhzwmCa4B6ckLPNN6f+Awd97pFBvZW7AQS+3BaQA2apxirg/gY w2dKQCYwPEaSnuy7LeQfvirxHHRpu6Xxkm3SOzfHJlzVsLFsdJ+tUxJ4/J745R9rrY7dsMybkV5 WxPSnMBztfy+rhldoqJLcZwmnrRv0JN2hb9scxfhcJY8lS2AZwq3RJG2AU X-Google-Smtp-Source: AGHT+IGDdmmKM6/PTGgyDOI+plexqG3wMkkUKEWTMc/DmbQ9vTfhyMKeKA3PyqfNW5XsY7QyMRlIU+htwDYitCodKK0= X-Received: by 2002:a05:622a:1306:b0:471:96af:c005 with SMTP id d75a77b69052e-479775cce8dmr137703741cf.33.1744549332838; Sun, 13 Apr 2025 06:02:12 -0700 (PDT) MIME-Version: 1.0 From: Mahendra Singh Thalor Date: Sun, 13 Apr 2025 18:32:01 +0530 X-Gm-Features: ATxdqUH_ZMtIK8aRY6iwn8C6JiCBz4XVQg8nm6C8oSMatLNjPKdZG37_s1CtUoM Message-ID: Subject: pg_restore --format= option(without any value) should report an error as pg_dump is reporting an error To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000004706730632a88b2a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004706730632a88b2a Content-Type: multipart/alternative; boundary="0000000000004706710632a88b28" --0000000000004706710632a88b28 Content-Type: text/plain; charset="UTF-8" Hi, With "pg_restore --format=", we are not giving any error because in code, we are checking length of arg but pg_dump is reporting an error for the same option. For the consistency purpose, pg_dump and pg_restore both should report an error for the test case below. *Ex: (output after this patch)but before this patch, below command is passing.* /pg_restore x1 -d postgres -j 10 -C --verbose --format= pg_restore: error: unrecognized archive format ""; please specify "c", "d", or "t" Here, I am attaching a patch which is fixing the same. I added 2 TAP tests also for invalid options. *Note:* We have 2 more options in pg_restore code which validate the option if arg has non zero length. I will prepare patches for both(--host and --port). We need to add some validate function also for both these options. -- Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com --0000000000004706710632a88b28 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
With "pg_restore --format=3D"= , we are not giving any error because=C2=A0in code, we are checking length = of arg but pg_dump is reporting an error for the same option.
For the consistency=C2=A0purpose, pg_dump and pg_restore both s= hould report an error for the test case below.

= Ex: (output after this patch)but before this patch, below command is passin= g.
/pg_restore =C2=A0x1 -d postgres -j 10 -C --verbose --form= at=3D
pg_restore: error: unrecognized archive format ""; pleas= e specify "c", "d", or "t"

Here, I am attaching a patch which is fixing the same. I added 2 TAP= tests also for invalid options.

Note:=C2= =A0We have 2 more options in pg_restore code which validate the option if a= rg has non zero length. I will prepare patches for both(--host and --port).= We need to add some validate function also for both these options.

--
Thank= s and Regards
Mahendra Singh Thalor
EnterpriseDB: http://www.enterprisedb.com
--0000000000004706710632a88b28-- --0000000000004706730632a88b2a Content-Type: application/octet-stream; name="v01-pg_restore-format-option-should-validate-all-values.patch" Content-Disposition: attachment; filename="v01-pg_restore-format-option-should-validate-all-values.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9fnl3fz0 RnJvbSBiNTUzNDA1ZTUwYjI1ZmZjZjlkNDA4ZTIxZDFmOTI2YzY0NTI3NDhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYWhlbmRyYSBTaW5naCBUaGFsb3IgPG1haGk2cnVuQGdtYWls LmNvbT4KRGF0ZTogU3VuLCAxMyBBcHIgMjAyNSAxOToxNzo1NyArMDUzMApTdWJqZWN0OiBbUEFU Q0hdIHBnX3Jlc3RvcmUgLS1mb3JtYXQgb3B0aW9uIHNob3VsZCB2YWxpZGF0ZSBhbGwgdmFsdWVz CgpXaXRoICJwZ19yZXN0b3JlIC0tZm9ybWF0PSIsIHdlIGFyZSBub3QgZ2l2aW5nIGFueSBlcnJv ciBiZWNhdXNlIGluIGNvZGUsIHdlIGFyZSBjaGVja2luZwpsZW5ndGggb2YgYXJnIGJ1dCBwZ19k dW1wIGlzIHRyb3VnaGluZyBhbiBlcnJvciBmb3IgdGhlIHNhbWUgb3B0aW9uLgoKRXg6IChhZnRl ciB0aGlzIHBhdGNoKS0tIGJlZm9yZSB0aGlzIHBhdGNoLCBiZWxvdyBjb21tYW5kIGlzIHBhc3Np bmcuCi9wZ19yZXN0b3JlICB4MSAtZCBwb3N0Z3JlcyAtaiAxMCAtQyAtLXZlcmJvc2UgLS1mb3Jt YXQ9CnBnX3Jlc3RvcmU6IGVycm9yOiB1bnJlY29nbml6ZWQgYXJjaGl2ZSBmb3JtYXQgIiI7IHBs ZWFzZSBzcGVjaWZ5ICJjIiwgImQiLCBvciAidCIKLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jICAgfCAgMyArLS0KIHNyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbCB8IDEwICsr KysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jh c2ljLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZmY0YmIzMjBmYzkuLmM4NmQ1OTNkZjkyIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTIxNyw4ICsyMTcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJCQlvcHRzLT5maWxlbmFtZSA9IHBnX3N0cmR1cChvcHRhcmcpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSAnRic6Ci0JCQkJaWYgKHN0cmxlbihvcHRhcmcpICE9IDApCi0JCQkJCW9w dHMtPmZvcm1hdE5hbWUgPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQlvcHRzLT5mb3JtYXROYW1l ID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJYnJlYWs7CiAJCQljYXNlICdnJzoKIAkJCQkvKiBy ZXN0b3JlIG9ubHkgZ2xvYmFsLmRhdCBmaWxlIGZyb20gZGlyZWN0b3J5ICovCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDFfYmFzaWMucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDFf YmFzaWMucGwKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA4NGNhMjVlMTdk Ni4uNjdiOTdlYzViOTIKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsCisrKyBi L3NyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbApAQCAtMjAxLDYgKzIwMSwxNiBAQCBjb21t YW5kX2ZhaWxzX2xpa2UoCiAJcXIvXFFwZ19yZXN0b3JlOiBlcnJvcjogdW5yZWNvZ25pemVkIGFy Y2hpdmUgZm9ybWF0ICJnYXJiYWdlIjtcRS8sCiAJJ3BnX2R1bXA6IHVucmVjb2duaXplZCBhcmNo aXZlIGZvcm1hdCcpOwogCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfcmVzdG9yZScsICct ZiAtJywgJy0tZm9ybWF0PSddLAorCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IHVucmVjb2duaXpl ZCBhcmNoaXZlIGZvcm1hdCAiIjtcRS8sCisJJ3BnX2R1bXA6IHVucmVjb2duaXplZCBhcmNoaXZl IGZvcm1hdCBlbXB0eSBzdHJpbmcnKTsKKworY29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3BnX3Jl c3RvcmUnLCAnLWYgLScsICctRicsICdwJyBdLAorCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IGFy Y2hpdmUgZm9ybWF0ICJwIiBpcyBub3Qgc3VwcG9ydGVkOyBwbGVhc2UgdXNlIHBzcWxcRS8sCisJ J3BnX2R1bXA6IHVucmVjb2duaXplZCBhcmNoaXZlIGZvcm1hdCBwfHBsYWluJyk7CisKIGNvbW1h bmRfZmFpbHNfbGlrZSgKIAlbICdwZ19kdW1wJywgJy0tb24tY29uZmxpY3QtZG8tbm90aGluZycg XSwKIAlxci9wZ19kdW1wOiBlcnJvcjogb3B0aW9uIC0tb24tY29uZmxpY3QtZG8tbm90aGluZyBy ZXF1aXJlcyBvcHRpb24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4t aW5zZXJ0cy8sCi0tIAoyLjM5LjMKCg== --0000000000004706730632a88b2a--