On Sat, Jan 21, 2017 at 12:45 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Even more interesting, the warning appears as-expected in stripped down test cases, eg
$ perl -e 'use warnings; use Test::More; ok("Foo" ne "bar", "ok");' ok 1 - ok # Tests were run but no plan was declared and done_testing() was not seen.
$ perl -e 'use warnings; use Test::More; ok("Foo" != "bar", "ok");' Argument "bar" isn't numeric in numeric ne (!=) at -e line 1. Argument "Foo" isn't numeric in numeric ne (!=) at -e line 1. not ok 1 - ok # Failed test 'ok' # at -e line 1. # Tests were run but no plan was declared and done_testing() was not seen.
I really don't understand why this complains but the same perl version is happy with (the previous coding in) 004_restart.pl. Perl bug?
I think I understand why it's only affecting me and not others. I've PGDATESTYLE set to "Postgres, MDY" in my bashrc and that formats the commit timestamp as "Fri Jan 20 07:59:52.322811 2017 PST". If I unset that, the result comes in a format such as "2017-01-20 21:31:47.766371-08". Looks like perl doesn't throw an error if it can parse the leading part of the string as a numeric. It still throws a warning, but the test passes.