diff options
Diffstat (limited to 'src/test/modules/libpq_pipeline/libpq_pipeline.c')
-rw-r--r-- | src/test/modules/libpq_pipeline/libpq_pipeline.c | 138 |
1 files changed, 8 insertions, 130 deletions
diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c b/src/test/modules/libpq_pipeline/libpq_pipeline.c index 6600ebb0c29..de4d75cfa82 100644 --- a/src/test/modules/libpq_pipeline/libpq_pipeline.c +++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c @@ -497,7 +497,7 @@ test_pipeline_abort(PGconn *conn) PQerrorMessage(conn)); /* Try to send two queries in one command */ - if (PQsendQuery(conn, "SELECT 1; SELECT 2") != 1) + if (PQsendQueryParams(conn, "SELECT 1; SELECT 2", 0, NULL, NULL, NULL, NULL, 0) != 1) pg_fatal("failed to send query: %s", PQerrorMessage(conn)); if (PQpipelineSync(conn) != 1) pg_fatal("pipeline sync failed: %s", PQerrorMessage(conn)); @@ -529,7 +529,8 @@ test_pipeline_abort(PGconn *conn) fprintf(stderr, "ok\n"); /* Test single-row mode with an error partways */ - if (PQsendQuery(conn, "SELECT 1.0/g FROM generate_series(3, -1, -1) g") != 1) + if (PQsendQueryParams(conn, "SELECT 1.0/g FROM generate_series(3, -1, -1) g", + 0, NULL, NULL, NULL, NULL, 0) != 1) pg_fatal("failed to send query: %s", PQerrorMessage(conn)); if (PQpipelineSync(conn) != 1) pg_fatal("pipeline sync failed: %s", PQerrorMessage(conn)); @@ -989,133 +990,10 @@ test_pipeline_idle(PGconn *conn) PQsetNoticeProcessor(conn, notice_processor, &n_notices); - /* - * Cause a Close message to be sent to the server, and watch libpq's - * reaction to the resulting CloseComplete. libpq must not get in IDLE - * state until that has been received. - */ - if (PQenterPipelineMode(conn) != 1) - pg_fatal("failed to enter pipeline mode: %s", PQerrorMessage(conn)); - - if (PQsendQuery(conn, "SELECT 1") != 1) - pg_fatal("failed to send query: %s", PQerrorMessage(conn)); - PQsendFlushRequest(conn); - res = PQgetResult(conn); - if (res == NULL) - pg_fatal("PQgetResult returned null when there's a pipeline item: %s", - PQerrorMessage(conn)); - if (PQresultStatus(res) != PGRES_TUPLES_OK) - pg_fatal("Unexpected result code %s from first pipeline item", - PQresStatus(PQresultStatus(res))); - PQclear(res); - - res = PQgetResult(conn); - if (res != NULL) - pg_fatal("expected NULL result"); - - if (PQpipelineSync(conn) != 1) - pg_fatal("pipeline sync failed: %s", PQerrorMessage(conn)); - res = PQgetResult(conn); - if (res == NULL) - pg_fatal("PQgetResult returned null when there's a pipeline item: %s", - PQerrorMessage(conn)); - if (PQresultStatus(res) != PGRES_PIPELINE_SYNC) - pg_fatal("Unexpected result code %s instead of PGRES_PIPELINE_SYNC, error: %s", - PQresStatus(PQresultStatus(res)), PQerrorMessage(conn)); - PQclear(res); - res = NULL; - - if (PQexitPipelineMode(conn) != 1) - pg_fatal("attempt to exit pipeline mode failed when it should've succeeded: %s", - PQerrorMessage(conn)); - - /* - * Must not have got any notices here; note bug as described in - * https://postgr.es/m/CA+mi_8bvD0_CW3sumgwPvWdNzXY32itoG_16tDYRu_1S2gV2iw@mail.gmail.com - */ - if (n_notices > 0) - pg_fatal("got %d notice(s)", n_notices); - fprintf(stderr, "ok - 1\n"); - - /* - * Verify that we can send a query using simple query protocol after one - * in pipeline mode. - */ - if (PQenterPipelineMode(conn) != 1) - pg_fatal("failed to enter pipeline mode: %s", PQerrorMessage(conn)); - if (PQsendQuery(conn, "SELECT 1") != 1) - pg_fatal("failed to send query: %s", PQerrorMessage(conn)); - PQsendFlushRequest(conn); - res = PQgetResult(conn); - if (res == NULL) - pg_fatal("PQgetResult returned null when there's a pipeline item: %s", - PQerrorMessage(conn)); - if (PQresultStatus(res) != PGRES_TUPLES_OK) - pg_fatal("unexpected result code %s from first pipeline item", - PQresStatus(PQresultStatus(res))); - res = PQgetResult(conn); - if (res != NULL) - pg_fatal("got unexpected non-null result"); - /* We can exit pipeline mode now */ - if (PQexitPipelineMode(conn) != 1) - pg_fatal("attempt to exit pipeline mode failed when it should've succeeded: %s", - PQerrorMessage(conn)); - res = PQexec(conn, "SELECT 2"); - if (n_notices > 0) - pg_fatal("got %d notice(s)", n_notices); - if (res == NULL) - pg_fatal("PQexec returned NULL"); - if (PQresultStatus(res) != PGRES_TUPLES_OK) - pg_fatal("unexpected result code %s from non-pipeline query", - PQresStatus(PQresultStatus(res))); - res = PQgetResult(conn); - if (res != NULL) - pg_fatal("did not receive terminating NULL"); - if (n_notices > 0) - pg_fatal("got %d notice(s)", n_notices); - fprintf(stderr, "ok - 2\n"); - - /* - * Case 2: exiting pipeline mode is not OK if a second command is sent. - */ - - if (PQenterPipelineMode(conn) != 1) - pg_fatal("failed to enter pipeline mode: %s", PQerrorMessage(conn)); - if (PQsendQuery(conn, "SELECT 1") != 1) - pg_fatal("failed to send query: %s", PQerrorMessage(conn)); - PQsendFlushRequest(conn); - res = PQgetResult(conn); - if (res == NULL) - pg_fatal("PQgetResult returned null when there's a pipeline item: %s", - PQerrorMessage(conn)); - if (PQresultStatus(res) != PGRES_TUPLES_OK) - pg_fatal("unexpected result code %s from first pipeline item", - PQresStatus(PQresultStatus(res))); - if (PQsendQuery(conn, "SELECT 2") != 1) - pg_fatal("failed to send query: %s", PQerrorMessage(conn)); - PQsendFlushRequest(conn); - /* read terminating null from first query */ - res = PQgetResult(conn); - if (res != NULL) - pg_fatal("did not receive terminating NULL"); - res = PQgetResult(conn); - if (res == NULL) - pg_fatal("PQgetResult returned null when there's a pipeline item: %s", - PQerrorMessage(conn)); - if (PQresultStatus(res) != PGRES_TUPLES_OK) - pg_fatal("unexpected result code %s from first pipeline item", - PQresStatus(PQresultStatus(res))); - res = PQgetResult(conn); - if (res != NULL) - pg_fatal("did not receive terminating NULL"); - if (PQexitPipelineMode(conn) != 1) - pg_fatal("attempt to exit pipeline mode failed when it should've succeeded: %s", - PQerrorMessage(conn)); - /* Try to exit pipeline mode in pipeline-idle state */ if (PQenterPipelineMode(conn) != 1) pg_fatal("failed to enter pipeline mode: %s", PQerrorMessage(conn)); - if (PQsendQuery(conn, "SELECT 1") != 1) + if (PQsendQueryParams(conn, "SELECT 1", 0, NULL, NULL, NULL, NULL, 0) != 1) pg_fatal("failed to send query: %s", PQerrorMessage(conn)); PQsendFlushRequest(conn); res = PQgetResult(conn); @@ -1129,7 +1007,7 @@ test_pipeline_idle(PGconn *conn) res = PQgetResult(conn); if (res != NULL) pg_fatal("did not receive terminating NULL"); - if (PQsendQuery(conn, "SELECT 2") != 1) + if (PQsendQueryParams(conn, "SELECT 2", 0, NULL, NULL, NULL, NULL, 0) != 1) pg_fatal("failed to send query: %s", PQerrorMessage(conn)); if (PQexitPipelineMode(conn) == 1) pg_fatal("exiting pipeline succeeded when it shouldn't"); @@ -1151,12 +1029,12 @@ test_pipeline_idle(PGconn *conn) if (n_notices > 0) pg_fatal("got %d notice(s)", n_notices); - fprintf(stderr, "ok - 3\n"); + fprintf(stderr, "ok - 1\n"); /* Have a WARNING in the middle of a resultset */ if (PQenterPipelineMode(conn) != 1) pg_fatal("entering pipeline mode failed: %s", PQerrorMessage(conn)); - if (PQsendQuery(conn, "SELECT pg_catalog.pg_advisory_unlock(1,1)") != 1) + if (PQsendQueryParams(conn, "SELECT pg_catalog.pg_advisory_unlock(1,1)", 0, NULL, NULL, NULL, NULL, 0) != 1) pg_fatal("failed to send query: %s", PQerrorMessage(conn)); PQsendFlushRequest(conn); res = PQgetResult(conn); @@ -1166,7 +1044,7 @@ test_pipeline_idle(PGconn *conn) pg_fatal("unexpected result code %s", PQresStatus(PQresultStatus(res))); if (PQexitPipelineMode(conn) != 1) pg_fatal("failed to exit pipeline mode: %s", PQerrorMessage(conn)); - fprintf(stderr, "ok - 4\n"); + fprintf(stderr, "ok - 2\n"); } static void |