An alternative to laziness would be selecting a subset of fields. There is no support for this directly in persistent, but it might be possible to add it and the future and have the value of an unselected field be something like undefined.

At the moment you can select sub fields by dropping down to lower-level sql methods (ask Michael about these methods if you are interested). I think there is a technique for building your persistent data structure back up from the return of raw sql, which again you might be able to do by inserting dummy error fields.

Greg Weber

On Thu, May 5, 2011 at 4:18 AM, Michael Snoyman <michael@snoyman.com> wrote:
On Thu, May 5, 2011 at 1:28 PM, Felipe Almeida Lessa
<felipe.lessa@gmail.com> wrote:
> On Thu, May 5, 2011 at 2:20 AM, Jeremy Hughes <jedahu@gmail.com> wrote:
>> Is Database.Persistent lazy wrt reading fields? I need to iterate over
>> entities containing both small and large fields. I do not need to use
>> the large fields in this instance, and so would rather they were not
>> read from the database.
>
> IIRC, they are read strictly.  I guess you should put them on a
> different entity.

That's correct. In fact, Persistent avoids any form of lazy I/O to
ensure that database connections are returned to the pool as soon as
possible (amongst other reasons).

Michael

_______________________________________________
web-devel mailing list
web-devel@haskell.org
http://www.haskell.org/mailman/listinfo/web-devel