Fix batch_fetch
This commit is contained in:
@@ -14,8 +14,6 @@ from sqlalchemy_utils.functions.orm import (
|
|||||||
list_local_values,
|
list_local_values,
|
||||||
list_local_remote_exprs,
|
list_local_remote_exprs,
|
||||||
local_values,
|
local_values,
|
||||||
local_column_names,
|
|
||||||
local_remote_expr,
|
|
||||||
remote_column_names,
|
remote_column_names,
|
||||||
remote_values,
|
remote_values,
|
||||||
remote
|
remote
|
||||||
@@ -339,9 +337,10 @@ class GenericRelationshipFetcher(object):
|
|||||||
id_dict = defaultdict(list)
|
id_dict = defaultdict(list)
|
||||||
for entity in self.path.entities:
|
for entity in self.path.entities:
|
||||||
discriminator = getattr(entity, self.prop._discriminator_col.key)
|
discriminator = getattr(entity, self.prop._discriminator_col.key)
|
||||||
id_dict[discriminator].append(
|
for id_col in self.prop._id_cols:
|
||||||
getattr(entity, self.prop._id_col.key)
|
id_dict[discriminator].append(
|
||||||
)
|
getattr(entity, id_col.key)
|
||||||
|
)
|
||||||
return chain(*self._queries(sa.inspect(entity), id_dict))
|
return chain(*self._queries(sa.inspect(entity), id_dict))
|
||||||
|
|
||||||
def _queries(self, state, id_dict):
|
def _queries(self, state, id_dict):
|
||||||
|
@@ -77,7 +77,8 @@ def remote(prop):
|
|||||||
def local_column_names(prop):
|
def local_column_names(prop):
|
||||||
if not hasattr(prop, 'secondary'):
|
if not hasattr(prop, 'secondary'):
|
||||||
yield prop._discriminator_col.key
|
yield prop._discriminator_col.key
|
||||||
yield prop._id_col.key
|
for id_col in prop._id_cols:
|
||||||
|
yield id_col.key
|
||||||
elif prop.secondary is None:
|
elif prop.secondary is None:
|
||||||
for local, _ in prop.local_remote_pairs:
|
for local, _ in prop.local_remote_pairs:
|
||||||
yield local.name
|
yield local.name
|
||||||
|
Reference in New Issue
Block a user