[Disclaimer: all I say here is from reading the source code, not from observed 
behavior. If my analysis is flawed because of something I missed, send me a 
pie.]

I think some inconsistencies between doc and behavior has crept in:

+ In biz.scan() docstring:
"""
If self.ScanRequeryChildren is True, any child bizobjs will be requeried
for each row in the bizobj. Only use this if you know the size of the data
involved will be small.
"""

+ ScanRequeryChildren docstring:
"""
When calling the scan() function, this property determines if we
requery any child bizobjs for each row in this bizobj. The default is False,
as this has the potential to cause performance issues.
"""

However:

1)
The default of ScanRequeryChildren isn't False as claimed, it is True 
(dBizobj.py:81, 
"self._scanRequeryChildren = True").

2)
Setting ScanRequeryChildren doesn't actually requery any children that I can 
see[1], 
all it does is set the current parent, which should be a pretty fast operation, 
and 
definitely desirable (can't think of why you would want to purposefully not set 
the 
current parent).

I think that at one time, children were being requeried needlessly resulting in 
bad 
performance, and that the operation of setting the current parent would result 
in an 
implicit requery(), but I don't think that's happening anymore.

Should we:
  1) remove ScanRequeryChildren completely
-or-
  2) Keep it, default to False like we claim, and add it as a separate concept 
from 
setCurrentParent()?


[1] The only case where a child would be requeried is if there wasn't already a 
cursor for that child, and child.RequeryOnLoad is True.


Paul

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/[email protected]

Reply via email to