v4-0001-Replace-non-negative-with-greater-than-or-equal-t.patch

application/octet-stream

Filename: v4-0001-Replace-non-negative-with-greater-than-or-equal-t.patch
Type: application/octet-stream
Part: 0
Message: Re: file_fdw: Support multi-line HEADER option.

Patch

Format: format-patch
Series: patch v4-0001
Subject: Replace "non-negative" with "greater than or equal to zero" in copy.c.
File+
src/backend/commands/copy.c 7 6
src/test/regress/expected/copy2.out 1 1
src/test/regress/expected/copy.out 1 1
From 39250680c168eac3d5d2f32ddfee8f1d0806c49b Mon Sep 17 00:00:00 2001
From: Shinya Kato <shinya11.kato@gmail.com>
Date: Tue, 20 Jan 2026 11:02:49 +0900
Subject: [PATCH v4 1/2] Replace "non-negative" with "greater than or equal to
 zero" in copy.c.

Per the Error Message Style Guide, "non-negative" should be avoided
because it's ambiguous about whether zero is accepted. Replace it with
"greater than or equal to zero".

Author: Shinya Kato <shinya11.kato@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CAHGQGwE86PcuPZbP=aurmW7Oo=eycF10gxjErWq4NmY-5TTX4Q@mail.gmail.com
---
 src/backend/commands/copy.c         | 13 +++++++------
 src/test/regress/expected/copy.out  |  2 +-
 src/test/regress/expected/copy2.out |  2 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 9c51384ab92..65fea4d6536 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -367,8 +367,9 @@ DoCopy(ParseState *pstate, const CopyStmt *stmt,
 /*
  * Extract the CopyFormatOptions.header_line value from a DefElem.
  *
- * Parses the HEADER option for COPY, which can be a boolean, a non-negative
- * integer (number of lines to skip), or the special value "match".
+ * Parses the HEADER option for COPY, which can be a boolean, an integer greater
+ * than or equal to zero (number of lines to skip), or the special value
+ * "match".
  */
 static int
 defGetCopyHeaderOption(DefElem *def, bool is_from)
@@ -380,8 +381,8 @@ defGetCopyHeaderOption(DefElem *def, bool is_from)
 		return COPY_HEADER_TRUE;
 
 	/*
-	 * Allow 0, 1, "true", "false", "on", "off", a non-negative integer, or
-	 * "match".
+	 * Allow 0, 1, "true", "false", "on", "off", an integer greater than or
+	 * equal to zero, or "match".
 	 */
 	switch (nodeTag(def->arg))
 	{
@@ -433,8 +434,8 @@ defGetCopyHeaderOption(DefElem *def, bool is_from)
 	}
 	ereport(ERROR,
 			(errcode(ERRCODE_SYNTAX_ERROR),
-			 errmsg("%s requires a Boolean value, a non-negative integer, "
-					"or the string \"match\"",
+			 errmsg("%s requires a Boolean value, an integer greater than or "
+					"equal to zero, or the string \"match\"",
 					def->defname)));
 	return COPY_HEADER_FALSE;	/* keep compiler quiet */
 }
diff --git a/src/test/regress/expected/copy.out b/src/test/regress/expected/copy.out
index 24e0f472f14..06e58d79960 100644
--- a/src/test/regress/expected/copy.out
+++ b/src/test/regress/expected/copy.out
@@ -247,7 +247,7 @@ alter table header_copytest add column c text;
 copy header_copytest to stdout with (header match);
 ERROR:  cannot use "match" with HEADER in COPY TO
 copy header_copytest from stdin with (header wrong_choice);
-ERROR:  header requires a Boolean value, a non-negative integer, or the string "match"
+ERROR:  header requires a Boolean value, an integer greater than or equal to zero, or the string "match"
 -- works
 copy header_copytest from stdin with (header match);
 copy header_copytest (c, a, b) from stdin with (header match);
diff --git a/src/test/regress/expected/copy2.out b/src/test/regress/expected/copy2.out
index f3fdce23459..4d6e9f37f2f 100644
--- a/src/test/regress/expected/copy2.out
+++ b/src/test/regress/expected/copy2.out
@@ -135,7 +135,7 @@ ERROR:  REJECT_LIMIT (0) must be greater than zero
 COPY x from stdin with (header -1);
 ERROR:  a negative integer value cannot be specified for header
 COPY x from stdin with (header 2.5);
-ERROR:  header requires a Boolean value, a non-negative integer, or the string "match"
+ERROR:  header requires a Boolean value, an integer greater than or equal to zero, or the string "match"
 COPY x to stdout with (header 2);
 ERROR:  cannot use multi-line header in COPY TO
 -- too many columns in column list: should fail
-- 
2.47.3