code: public void writeQuery(Query query) {
      ensureBuffer();
      int pos = out.writerIndex();
      out.writeByte(QUERY);
      out.writeInt(0);
      Util.writeCStringUTF8(out, query.sql);
      out.setInt(pos + 1, out.writerIndex() - pos - 1);
    }
docs: <p>
  This message includes an SQL command (or commands) expressed as a text string.
  <p>
  The possible response messages from the backend are
  {@link CommandComplete}, {@link RowDescription}, {@link DataRow}, {@link EmptyQueryResponse}, {@link ErrorResponse},
  {@link ReadyForQuery} and {@link NoticeResponse}