Bonjour Daniel,
Good catch! Thanks for the quick fix! As usual, what is not tested does not:-(Attached a tap test to check for the expected behavior with multiple command \g.
-- Fabien.
diff --git a/src/bin/psql/t/001_basic.pl b/src/bin/psql/t/001_basic.pl index f447845717..c81feadd4e 100644 --- a/src/bin/psql/t/001_basic.pl +++ b/src/bin/psql/t/001_basic.pl @@ -325,4 +325,22 @@ is($row_count, '10', 'client-side error commits transaction, no ON_ERROR_STOP and multiple -c switches' ); +# test \g +psql_like($node, "SELECT 'un' \\g g_file_1.out", qr//, "one command \\g"); +my $c1 = slurp_file("g_file_1.out"); +like($c1, qr/un/); +unlink "g_file_1.out" or die $!; + +psql_like($node, "SELECT 'deux' \\; SELECT 'trois' \\g g_file_2.out", qr//, "two commands \\g"); +my $c2 = slurp_file("g_file_2.out"); +like($c2, qr/deux.*trois/s); +unlink "g_file_2.out" or die $!; + +psql_like($node, "\\set SHOW_ALL_RESULTS 0\nSELECT 'quatre' \\; SELECT 'cinq' \\g g_file_3.out", qr//, + "two commands \\g with only last result"); +my $c3 = slurp_file("g_file_3.out"); +like($c3, qr/cinq/); +unlike($c3, qr/quatre/); +unlink "g_file_3.out" or die $!; + done_testing();