@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); }