fetch metadata lazily, because noop queries don't have any