public List<List<Object>> readParameterSets(final List<PostgreSQLColumnType> parameterTypes) {
        List<List<Object>> result = new ArrayList<>(batchNum);
        for (int i = 0; i < batchNum; i++) {
            result.add(readOneGroupOfParameters(parameterTypes));
        }
        payload.skipReserved(payload.getByteBuf().readableBytes());
        return result;
    }
@Test
    void assertConstructOpenGaussComBatchBindPacket() {
        PostgreSQLPacketPayload payload = new PostgreSQLPacketPayload(Unpooled.wrappedBuffer(BATCH_BIND_MESSAGE_BYTES), StandardCharsets.UTF_8);
        assertThat(payload.readInt1(), is((int) 'U'));
        OpenGaussComBatchBindPacket actual = new OpenGaussComBatchBindPacket(payload);
        assertThat(actual.getStatementId(), is("S_1"));
        assertThat(actual.getEachGroupParametersCount(), is(3));
        assertThat(actual.getParameterFormats(), is(Arrays.asList(0, 0, 0)));
        assertTrue(actual.getResultFormats().isEmpty());
        List<List<Object>> actualParameterSets = actual.readParameterSets(
                Arrays.asList(PostgreSQLColumnType.INT4, PostgreSQLColumnType.VARCHAR, PostgreSQLColumnType.INT4));
        assertThat(actualParameterSets.size(), is(3));
        List<List<Object>> expectedParameterSets = Arrays.asList(Arrays.asList(1, "Foo", 18), Arrays.asList(2, "Bar", 36), Arrays.asList(3, "Tom", 54));
        assertThat(actualParameterSets, is(expectedParameterSets));
    }