@Override
 public PostgresStatementResult execute(
     PostgresQueryContext context, QueryBindings bindings, int maxrows) throws IOException {
   PostgresServerSession server = context.getServer();
   server.getSessionMonitor().countEvent(StatementTypes.OTHER_STMT);
   PostgresMessenger messenger = server.getMessenger();
   ServerValueEncoder encoder = server.getValueEncoder();
   int nrows = 0;
   for (String row : explanation) {
     messenger.beginMessage(PostgresMessages.DATA_ROW_TYPE.code());
     messenger.writeShort(1);
     ByteArrayOutputStream bytes = encoder.encodePObject(row, colType, false);
     messenger.writeInt(bytes.size());
     messenger.writeByteStream(bytes);
     messenger.sendMessage();
     nrows++;
     if ((maxrows > 0) && (nrows >= maxrows)) break;
   }
   return commandComplete("EXPLAIN " + nrows, nrows);
 }