summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/relationships.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/relationships.py b/lib/sqlalchemy/orm/relationships.py
index 45b9b9bea..48d60647c 100644
--- a/lib/sqlalchemy/orm/relationships.py
+++ b/lib/sqlalchemy/orm/relationships.py
@@ -2806,6 +2806,22 @@ class JoinCondition:
"condition that are on the remote side of "
"the relationship." % (self.prop,)
)
+ else:
+
+ not_target = util.column_set(
+ self.parent_persist_selectable.c
+ ).difference(self.child_persist_selectable.c)
+
+ for _, rmt in self.local_remote_pairs:
+ if rmt in not_target:
+ util.warn(
+ "Expression %s is marked as 'remote', but these "
+ "column(s) are local to the local side. The "
+ "remote() annotation is needed only for a "
+ "self-referential relationship where both sides "
+ "of the relationship refer to the same tables."
+ % (rmt,)
+ )
def _check_foreign_cols(
self, join_condition: ColumnElement[bool], primary: bool