def _init_metadata(self):
        cursor_description = self._cursor_description()
        if cursor_description is not None:
            if self.context.compiled and \
                    'compiled_cache' in self.context.execution_options:
                if self.context.compiled._cached_metadata:
                    self._metadata = self.context.compiled._cached_metadata
                else:
                    self._metadata = self.context.compiled._cached_metadata = \
                        ResultMetaData(self, cursor_description)
            else:
                self._metadata = ResultMetaData(self, cursor_description)
            if self._echo:
                self.context.engine.logger.debug(
                    "Col %r", tuple(x[0] for x in cursor_description))
dataset/ETHPy150Open zzzeek/sqlalchemy/lib/sqlalchemy/engine/result.py/ResultProxy._init_metadata/original