- changed status to resolved
misleading warning when "non column elements" in selfref but we have remote side
Issue #3194
resolved
this warns "SAWarning: Non-simple column elements in primary join condition for property Foo.us - consider using remote() annotations to mark the remote side.". we need to qualify the warning for remote_side actually present.
from sqlalchemy import Table, Column, Integer, ForeignKeyConstraint, \
MetaData, and_, func
from sqlalchemy.orm import mapper, relationship, configure_mappers
m = MetaData()
composite_selfref = Table(
'composite_selfref', m,
Column('id', Integer, primary_key=True),
Column('group_id', Integer, primary_key=True),
Column('parent_id', Integer),
ForeignKeyConstraint(
['parent_id', 'group_id'],
['composite_selfref.id', 'composite_selfref.group_id']
)
)
class Foo(object):
pass
mapper(Foo, composite_selfref, properties={
"us": relationship(
Foo,
primaryjoin=and_(
composite_selfref.c.group_id ==
func.foo(composite_selfref.c.group_id),
composite_selfref.c.parent_id ==
composite_selfref.c.id
),
remote_side=set([composite_selfref.c.parent_id]),
)
})
configure_mappers()
Comments (2)
-
reporter -
reporter - Fixed warning that would emit when a complex self-referential
primaryjoin contained functions, while at the same time remote_side
was specified; the warning would suggest setting "remote side".
It now only emits if remote_side isn't present.
fixes
#3194
→ <<cset 9eeb3a118d79>>
- Fixed warning that would emit when a complex self-referential
primaryjoin contained functions, while at the same time remote_side
was specified; the warning would suggest setting "remote side".
It now only emits if remote_side isn't present.
fixes
- Log in to comment
#3194→ <<cset f98c89d2bee2>>