Hi Yugo,

Thanks for the patch. After reviewing it, I got a few small comments:

> On Sep 25, 2025, at 15:22, Yugo Nagata <nag...@sraoss.co.jp> wrote:
> 
> -- 
> Yugo Nagata <nag...@sraoss.co.jp <mailto:nag...@sraoss.co.jp>>
> <v13-0003-Improve-error-messages-for-errors-that-cause-cli.patch><v13-0002-Add-continue-on-error-option.patch><v13-0001-Fix-assertion-failure-and-verbose-messages-in-pi.patch>


1 - 0001
```
@@ -3265,6 +3271,7 @@ readCommandResponse(CState *st, MetaCommand meta, char 
*varprefix)
        PGresult   *res;
        PGresult   *next_res;
        int                     qrynum = 0;
+       char       *errmsg;
```

I think we should initialize errmsg to NULL. Compiler won’t auto initialize a 
local variable. If it happens to not enter the while loop, then errmsg will 
hold a random value, then pg_free(errmsg) will have trouble.

2 - 0002
```
+       <para>
+        Allows clients to continue their run even if an SQL statement fails 
due to
+        errors other than serialization or deadlock. Unlike serialization and 
deadlock
+        failures, clients do not retry the same transactions but start new 
transaction.
+        This option is useful when your custom script may raise errors due to 
some
+        reason like unique constraints violation. Without this option, the 
client is
+        aborted after such errors.
+       </para>
```

A few nit suggestions:

* “continue their run” => “continue running”
* “clients to not retry the same transactions but start new transaction” => 
“clients do not retry the same transaction but start a new transaction instead"
* “due to some reason like” => “for reasons such as"

3 - 0002
```
+        * Without --continue-on-error:
         * failed (the number of failed transactions) =
```

Maybe add an empty line after “without” line.

4 - 0002
```
+        * When --continue-on-error is specified:
+        *
+        * failed (number of failed transactions) =
```

Maybe change to “With ---continue-on-error”, which sounds consistent with the 
previous “without”.

5 - 0002
```
+       int64           other_sql_failures; /* number of failed transactions for
+                                                                        * 
reasons other than
+                                                                        * 
serialization/deadlock failure, which
+                                                                        * is 
counted if --continue-on-error is
+                                                                        * 
specified */
```

How about rename this variable to “sql_errors”, which reflects to the new 
option name.

6 - 0002
```
@@ -4571,6 +4594,8 @@ getResultString(bool skipped, EStatus estatus)
                                return "serialization";
                        case ESTATUS_DEADLOCK_ERROR:
                                return "deadlock";
+                       case ESTATUS_OTHER_SQL_ERROR:
+                               return "other”;
```

I think this can just return “error”. I checked where this function is called, 
there will not be other words such as “error” appended.

7 - 0002
```
        /* it can be non-zero only if max_tries is not equal to one */
@@ -6569,6 +6602,10 @@ printResults(StatsData *total,
                                                           
sstats->deadlock_failures,
                                                           (100.0 * 
sstats->deadlock_failures /
                                                                
script_total_cnt));
+                                               printf(" - number of other 
failures: " INT64_FORMAT " (%.3f%%)\n",
+                                                          
sstats->other_sql_failures,
+                                                          (100.0 * 
sstats->other_sql_failures /
+                                                               
script_total_cnt));
```

Do we only want to print this number when “—continue-on-error” is given?

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




Reply via email to