@util.memoized_property
    def _key_getters_for_crud_column(self):
        if self.isupdate and self.statement._extra_froms:
            # when extra tables are present, refer to the columns
            # in those extra tables as table-qualified, including in
            # dictionaries and when rendering bind param names.
            # the "main" table of the statement remains unqualified,
            # allowing the most compatibility with a non-multi-table
            # statement.
            _et = set(self.statement._extra_froms)

            def _column_as_key(key):
                str_key = elements._column_as_key(key)
                if hasattr(key, 'table') and key.table in _et:
                    return (key.table.name, str_key)
                else:
                    return str_key

            def _getattr_col_key(col):
                if col.table in _et:
                    return (col.table.name, col.key)
                else:
                    return col.key

            def _col_bind_name(col):
                if col.table in _et:
                    return (col.table.name, col.key) % "%s_%s"
                else:
                    return col.key

        else:
            _column_as_key = elements._column_as_key
            _getattr_col_key = _col_bind_name = operator.attrgetter("key")

        return _column_as_key, _getattr_col_key, _col_bind_name
dataset/ETHPy150Open goFrendiAsgard/kokoropy/kokoropy/packages/sqlalchemy/sql/compiler.py/SQLCompiler._key_getters_for_crud_column/swapped operands of `%`