Re: a...bug with pgsql and addPrefetch? (Cay 1.2B2)

From: Tomi NA (hefes..mail.com)
Date: Sat May 13 2006 - 03:34:40 EDT

  • Next message: Cris Daniluk: "Re: a...bug with pgsql and addPrefetch? (Cay 1.2B2)"

    On 5/12/06, Cris Daniluk <cris.danilu..mail.com> wrote:
    > I think this is more a limitation of the current prefetch behavior,
    > than an actual bug. You may want to experiment with the prefetch
    > "advice", or semantics:
    >
    > http://objectstyle.org/confluence/display/CAYDOC/Prefetching
    >
    > I'm assuming you're using 1.2 latest release, of course. If you're
    > using something that's not 1.1 latest or 1.2 latest, then it will be
    > hard to talk about it. Anyway, if the docs don't provide any helpful
    > info, please post the debugging output - specifically, the queries
    > that are executed in this case.

    I'm sorry I didn't make it completely clear: I'm using cayenne 1.2B2
    (see subject line).
    Also, I'm very thankfull for the hint about prefetch semantics: I
    didn't really think about what was going on under the hood, up untill
    now.
    I gave PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS a try and got
    *exactly* the join I wanted:

    QueryLogger:
    SELECT (...t0.fieldlist, t1.fieldlist...)
    FROM main.first_table t0, main.second_table t1
    WHERE t0.id = t1.id AND (t0.attr ILIKE ?) LIMIT 50 [bind: '%a%'] -
    prepared in 18 ms.

    Now, the problem is that not knowing about prefetch semantics, I
    expected the prefetch to *just work* i.e. deduce which records in the
    other table I really require, instead of fetching all of them.
    I still think there's no use case to support the default prefetch
    behaviour that gave me problems in the first place: if the query on
    the primary table is limited to no more than a 100 records, why would
    the prefetch go for all the records of the secondary table?

    t.n.a.



    This archive was generated by hypermail 2.0.0 : Sat May 13 2006 - 03:35:10 EDT