class JdbcBatchExecuteRequest extends JdbcRequest {
    /** Schema name. */
    private String schemaName;

    /** Sql query. */
    @GridToStringInclude(sensitive = true)
    private List<JdbcQuery> queries;

    /** Client auto commit flag state. */
    private boolean autoCommit;

    /**
     * Last stream batch flag - whether open streamers on current connection
     * must be flushed and closed after this batch.
     */
    private boolean lastStreamBatch;

    /**
     * Default constructor.
     */
    public JdbcBatchExecuteRequest() {
        super(BATCH_EXEC);
    }

    /**
     * Constructor for child requests.
     * @param type Request type/
     */
    protected JdbcBatchExecuteRequest(byte type) {
        super(type);
    }

    /**
     * @param schemaName Schema name.
     * @param queries Queries.
     * @param autoCommit Client auto commit flag state.
     * @param lastStreamBatch {@code true} in case the request is the last batch at the stream.
     */
    public JdbcBatchExecuteRequest(String schemaName, List<JdbcQuery> queries, boolean autoCommit,
        boolean lastStreamBatch) {
        super(BATCH_EXEC);

        assert lastStreamBatch || !F.isEmpty(queries);

        this.schemaName = schemaName;
        this.queries = queries;
        this.autoCommit = autoCommit;
        this.lastStreamBatch = lastStreamBatch;
    }

    /**
     * Constructor for child requests.
     *
     * @param type Request type.
     * @param schemaName Schema name.
     * @param queries Queries.
     * @param autoCommit Client auto commit flag state.
     * @param lastStreamBatch {@code true} in case the request is the last batch at the stream.
     */
    protected JdbcBatchExecuteRequest(byte type, String schemaName, List<JdbcQuery> queries, boolean autoCommit,
        boolean lastStreamBatch) {
        super(type);

        assert lastStreamBatch || !F.isEmpty(queries);

        this.schemaName = schemaName;
        this.queries = queries;
        this.autoCommit = autoCommit;
        this.lastStreamBatch = lastStreamBatch;
    }

    /**
     * @return Schema name.
     */
    @Nullable public String schemaName() {
        return schemaName;
    }

    /**
     * @return Queries.
     */
    public List<JdbcQuery> queries() {
        return queries;
    }

    /**
     * @return Auto commit flag.
     */
    boolean autoCommit() {
        return autoCommit;
    }

    /**
     * @return Last stream batch flag.
     */
    public boolean isLastStreamBatch() {
        return lastStreamBatch;
    }

    /** {@inheritDoc} */
    @Override public void writeBinary(
        BinaryWriterExImpl writer,
        JdbcProtocolContext protoCtx
    ) throws BinaryObjectException {
        super.writeBinary(writer, protoCtx);

        writer.writeString(schemaName);

        if (!F.isEmpty(queries)) {
            writer.writeInt(queries.size());

            for (JdbcQuery q : queries)
                q.writeBinary(writer, protoCtx);

        }
        else
            writer.writeInt(0);

        if (protoCtx.isStreamingSupported())
            writer.writeBoolean(lastStreamBatch);

        if (protoCtx.isAutoCommitSupported())
            writer.writeBoolean(autoCommit);
    }

    /** {@inheritDoc} */
    @Override public void readBinary(
        BinaryReaderExImpl reader,
        JdbcProtocolContext protoCtx
    ) throws BinaryObjectException {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public String toString() {
        return S.toString(JdbcBatchExecuteRequest.class, this, super.toString());
    }
}

        super.readBinary(reader, protoCtx);

        schemaName = reader.readString();

        int n = reader.readInt();

        queries = new ArrayList<>(n);

        for (int i = 0; i < n; ++i) {
            JdbcQuery qry = new JdbcQuery();

            qry.readBinary(reader, protoCtx);

            queries.add(qry);
        }

        if (protoCtx.isStreamingSupported())
            lastStreamBatch = reader.readBoolean();

        if (protoCtx.isAutoCommitSupported())
            autoCommit = reader.readBoolean();
    
<methods>public void <init>(byte) ,public void readBinary(org.apache.ignite.internal.binary.BinaryReaderExImpl, org.apache.ignite.internal.processors.odbc.jdbc.JdbcProtocolContext) throws org.apache.ignite.binary.BinaryObjectException,public static org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequest readRequest(org.apache.ignite.internal.binary.BinaryReaderExImpl, org.apache.ignite.internal.processors.odbc.jdbc.JdbcProtocolContext) throws org.apache.ignite.binary.BinaryObjectException,public static long readRequestId(byte[]) ,public static byte readType(byte[]) ,public long requestId() ,public java.lang.String toString() ,public byte type() ,public void writeBinary(org.apache.ignite.internal.binary.BinaryWriterExImpl, org.apache.ignite.internal.processors.odbc.jdbc.JdbcProtocolContext) throws org.apache.ignite.binary.BinaryObjectException<variables>public static final byte BATCH_EXEC,static final byte BATCH_EXEC_ORDERED,public static final byte BINARY_TYPE_GET,public static final byte BINARY_TYPE_NAME_GET,public static final byte BINARY_TYPE_NAME_PUT,public static final byte BINARY_TYPE_PUT,static final byte BULK_LOAD_BATCH,public static final byte CACHE_PARTITIONS,public static final byte META_COLUMNS,public static final byte META_INDEXES,public static final byte META_PARAMS,public static final byte META_PRIMARY_KEYS,public static final byte META_SCHEMAS,public static final byte META_TABLES,static final byte QRY_CANCEL,static final byte QRY_CLOSE,public static final byte QRY_EXEC,static final byte QRY_FETCH,public static final byte QRY_META,private static final java.util.concurrent.atomic.AtomicLong REQ_ID_GENERATOR,private long reqId,private byte type