def _merge_cols_by_name(self, context, cursor_description, result_columns):
        dialect = context.dialect
        typemap = dialect.dbapi_type_map
        case_sensitive = dialect.case_sensitive
        result_map = self._create_result_map(result_columns, case_sensitive)

        self.matched_on_name = True
        for idx, colname, untranslated, coltype in \
                self._colnames_from_description(context, cursor_description):
            try:
                ctx_rec = result_map[colname]
            except __HOLE__:
                mapped_type = typemap.get(coltype, sqltypes.NULLTYPE)
                obj = None
            else:
                obj = ctx_rec[1]
                mapped_type = ctx_rec[2]
            yield idx, colname, mapped_type, coltype, obj, untranslated
dataset/ETHPy150Open zzzeek/sqlalchemy/lib/sqlalchemy/engine/result.py/ResultMetaData._merge_cols_by_name