[IMP] models: do not prefetch too many records at once
This commit is contained in:
parent
e7b8e107f1
commit
4f11ff379a
|
@ -246,6 +246,9 @@ class NewId(object):
|
||||||
IdType = (int, long, basestring, NewId)
|
IdType = (int, long, basestring, NewId)
|
||||||
|
|
||||||
|
|
||||||
|
# maximum number of prefetched records
|
||||||
|
PREFETCH_MAX = 200
|
||||||
|
|
||||||
# special columns automatically created by the ORM
|
# special columns automatically created by the ORM
|
||||||
LOG_ACCESS_COLUMNS = ['create_uid', 'create_date', 'write_uid', 'write_date']
|
LOG_ACCESS_COLUMNS = ['create_uid', 'create_date', 'write_uid', 'write_date']
|
||||||
MAGIC_COLUMNS = ['id'] + LOG_ACCESS_COLUMNS
|
MAGIC_COLUMNS = ['id'] + LOG_ACCESS_COLUMNS
|
||||||
|
@ -3137,6 +3140,9 @@ class BaseModel(object):
|
||||||
# fetch the records of this model without field_name in their cache
|
# fetch the records of this model without field_name in their cache
|
||||||
records = self._in_cache_without(field)
|
records = self._in_cache_without(field)
|
||||||
|
|
||||||
|
if len(records) > PREFETCH_MAX:
|
||||||
|
records = records[:PREFETCH_MAX] | self
|
||||||
|
|
||||||
# by default, simply fetch field
|
# by default, simply fetch field
|
||||||
fnames = {field.name}
|
fnames = {field.name}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue