Permalink
Switch branches/tags
Commits on Mar 10, 2013
  1. Radically rethink complex prefetch - make most useful cases just work…

    ribasushi committed Feb 28, 2013
    … (tm)
    
    TL;DR: mst - I AM SORRY!!! I will rebase the dq branch for you when this
    pile of eyebleed goes stable.
    
    The long version - since we now allow arbitrary prefetch, the old
    _prefetch_selector_range mechanism doesn't cut it anymore. Instead we
    recognize prefetch solely based on _related_results_construction.
    Furthermore group_by/limits do not play well with right-side order_by
    (which we now also support, by transforming foreign order criteria into
    aggregates).
    
    Thus a much more powerful introspection is needed to decide what goes on
    the inside and outside of the prefetch subquery. This is mostly done now
    by the augmented _resolve_aliastypes_from_select_args to track
    identifiers it saw (97e130f), and by extra logic considering what
    exactly are we grouping by.
    
    Everything is done while observing the "group over selection +
    aggregates only" rule, which sould allow us to remain RDBMS agnostic
    (even for pathological cases of "MySQL-ish aggregates").
    
    As a bonus more cases of "the user knows what they are doing" are now
    correctly recognized and left alone. See a t/prefetch/with_limit.t diff
    for a general idea of the scope of improvements.
    
    Yes - there is more regexing crap in the codebase now, and it is
    possible we will call _resolve_aliastypes_from_select_args up to 4(!!!)
    times per statement preparation. However this allows us to establish a
    set of test cases towards which to write optimizations/flog the dq
    framework.
  2. Consider unselected order_by during complex subqueried prefetch

    ribasushi committed Mar 9, 2013
    Augment _resolve_aliastypes_from_select_args to collect the column names
    it sees, allowing it to replace _extract_condition_columns() entirely.
    
    In the process fix a number of *incorrect* limit_dialect tests
  3. Still do null-branch pruning when we are using our own inflate_result()

    ribasushi committed Mar 5, 2013
    52864fb was too aggressive in removing stuff - inheritance no longer
    matters, but which method we will be calling does. If we are still using
    our own inflate_result() there is no point of doing the double work of
    blessing and then skipping null branches.
  4. Forgotten cruft after 52864fb

    ribasushi committed Mar 5, 2013
  5. Rename some private methods/attributes to align with what they do

    ribasushi committed Feb 28, 2013
    No functional changes, just a s///
  6. Remove some superfluous expensive try blocks

    ribasushi committed Feb 28, 2013
    We already know that the relationship exists, and ->related_source without
    a schema returns undef anyway
  7. An underdefined root has to use the %cur_row_ids container

    ribasushi committed Feb 27, 2013
    Otherwise we are polluting $cur_row_data with the extra "virtual id column"
    value, and may end up stashing it back on iterative cursor parsing
  8. MOAR optimization - tracking is_new_res is double work

    ribasushi committed Feb 27, 2013
    We can get the root node assembler to do that for us instead
    
    Also remove more of the superfluous ||= assignments
  9. Scale back validation of the 'as' attribute (revert 95e4103)

    ribasushi committed Feb 24, 2013
    It turned out that users employ invalid-but-sensical inflation maps in
    production. Remove the early sanity check of the infmap and move the code
    throwing an exception all the way back to ::Row
    
    Follow through this thread for more details:
    http://lists.scsys.co.uk/pipermail/dbix-class/2013-February/011115.html
  10. Clarify result_class tweaking on active/cached cursors

    ribasushi committed Feb 24, 2013
    We need this to simplify logic of result_class type caching
  11. Abraxxa-proof the distbuild (disallow `make manifest dist`)

    ribasushi committed Mar 10, 2013
    This does not work under dmake (there is no $(MAKECMDGOALS)), but it does
    not seem to have adverse effects either
Commits on Mar 8, 2013
  1. Augment 1b6cbed (reverting my moronic use of preamble in EU::MM)

    ribasushi committed Mar 8, 2013
    Instead of whacking things during the MY::distdir override, properly
    override MY::postamble for upload prereq check injection
  2. move the location of the extra upload checks so it isn't the default …

    haarg committed Mar 8, 2013
    …target
    
    This should result in equivalent behavior since it is still before the
    main upload rule.
Commits on Mar 5, 2013
  1. Change the rt link from one requiring a login to a publicly accessibl…

    wchristian committed with ribasushi Mar 5, 2013
    …e one
    
    Also switch to https:// whatever can be reasonably switched
  2. Reorganize and freshen up the DocMap

    ribasushi committed Mar 5, 2013
    It accumulated lots of stuff that is confusing / not relevant for beginners
  3. Move DocMap link to top of DBIx::Class to prevent it being missed

    wchristian committed with ribasushi Mar 4, 2013
    Reorganize the section to be a bit more comprehensive
  4. Remove outdated (and kinda offensive) CONTRIBUTING text

    ribasushi committed Mar 5, 2013
    A replacement should come shortly, courtesy of Getty
Commits on Mar 2, 2013
  1. Do not auto-install dist-building dependencies in author mode

    ribasushi committed Mar 2, 2013
    Instead only require them for actual make dist/distdir/upload runs
Commits on Mar 1, 2013