On Tue, Mar 28, 2017 at 1:57 PM, Vaishnavi Prabakaran <vaishnaviprabaka...@gmail.com> wrote: > Thanks Craig and Michael for confirming that "PQsetSingleRowMode" should be > called right after "PQbatchQueueProcess". > > Michael Paquier wrote: > >> It seems to me that >>this should also be effective only during the fetching of one single >>result set. When the client moves on to the next item in the queue we >>should make necessary again a call to PQsetSingleRowMode(). > > Yes, the current behavior(with V6 code patch) is exactly the same as you > described above. PQsetSingleRowMode() should be called each time after > "PQbatchQueueProcess" to set result processing to single-row mode.
Okay, that's fine for me then. > Attached the latest patch and here is the RT run result: > ok 1 - testlibpqbatch disallowed_in_batch > ok 2 - testlibpqbatch simple_batch > ok 3 - testlibpqbatch multi_batch > ok 4 - testlibpqbatch batch_abort > ok 5 - testlibpqbatch timings > ok 6 - testlibpqbatch copyfailure > ok 7 - testlibpqbatch test_singlerowmode > ok > All tests successful. > Files=1, Tests=7, 5 wallclock secs ( 0.01 usr 0.00 sys + 1.79 cusr 0.35 > csys = 2.15 CPU) > Result: PASS ok 1 - testlibpqbatch disallowed_in_batch ok 2 - testlibpqbatch simple_batch ok 3 - testlibpqbatch multi_batch ok 4 - testlibpqbatch batch_abort ok 5 - testlibpqbatch timings not ok 6 - testlibpqbatch copyfailure Hm... Not here. I saw something like that a couple of days ago on my macos laptop and that was related to a variable not initialized. From 001_libpq_async_main.log: 7-03-28 17:05:49.159 JST [31553] t/001_libpq_async.pl LOG: execute <unnamed>: copy batch_demo(id) to stdout; 2017-03-28 17:05:49.159 JST [31553] t/001_libpq_async.pl LOG: execute <unnamed>: copy batch_demo(itemno) FROM stdin; 2017-03-28 17:05:49.160 JST [31553] t/001_libpq_async.pl ERROR: unexpected message type 0x50 during COPY from stdin 2017-03-28 17:05:49.160 JST [31553] t/001_libpq_async.pl CONTEXT: COPY batch_demo, line 1 >From regress_log_001_libpq_async : ok 5 - testlibpqbatch timings # Running: testlibpqbatch dbname=postgres 10000 copyfailure dispatching SELECT query failed: cannot queue commands during COPY COPYBUF: 5 Error status and message got from server due to COPY command failure are : PGRES_FATAL_ERROR ERROR: unexpected message type 0x50 during COPY from stdin CONTEXT: COPY batch_demo, line 1 So it seems to me that you are still missing something.. src/test/modules/Makefile | 1 + src/test/modules/test_libpq/.gitignore | 5 + src/test/modules/test_libpq/Makefile | 25 + src/test/modules/test_libpq/README | 1 + src/test/modules/test_libpq/t/001_libpq_async.pl | 26 + src/test/modules/test_libpq/testlibpqbatch.c | 1661 ++++++++++++++++++++++ 6 files changed, 1719 insertions(+) Could you as well update src/tools/msvc/vcregress.pl, aka the routine modulescheck so as this new test is skipped. I am sure that nobody will scream if this test is not run on Windows, but the buildfarm will complain if the patch is let in its current state. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers