EXPERIMENTAL Release 0.08240
Peter Rabbitson [Thu, 14 Feb 2013 05:59:27 +0000 (06:59 +0100)]
Adjust the distbuilding to tag 240~249 releases as TRIAL, aiming for
0.08250 as "DBIC with sane prefetch".

Massive thanks to mna for enduring hours of pondering on the design and
implementation - this code would not exist without your help.

Changes
lib/DBIx/Class.pm
maint/Makefile.PL.inc/29_handle_version.pl

diff --git a/Changes b/Changes
index 53fce16..2812b1a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,8 +1,21 @@
 Revision history for DBIx::Class
 
+0.08240-TRIAL (EXPERIMENTAL BETA RELEASE) 2013-02-14 05:56 (UTC)
     * New Features / Changes
+        - Rewrite from scratch the result constructor codepath - many bugfixes
+          and performance improvements (the current codebase is now capable of
+          outperforming both DBIx::DataModel and Rose::DB::Object on some
+          workloads). Some notable benefits:
+          - Multiple has_many prefetch
+          - Partial prefetch - you now can select only columns you are
+            interested in, while preserving the collapse functionality
+            (collapse is now exposed as a first-class API attribute)
+          - Prefetch of resultsets with arbitrary order
+            (RT#54949, RT#74024, RT#74584)
+          - Prefetch no longer inserts right-side table order_by clauses
+            (massively helps the deficient MySQL optimizer)
         - Massively optimize codepath around ->cursor(), over 10x speedup
-          on some workloads
+          on some iterating workloads.
 
     * Fixes
         - Fix open cursors silently resetting when inherited across a fork
index eafc15a..e49554e 100644 (file)
@@ -11,7 +11,7 @@ our $VERSION;
 # $VERSION declaration must stay up here, ahead of any other package
 # declarations, as to not confuse various modules attempting to determine
 # this ones version, whether that be s.c.o. or Module::Metadata, etc
-$VERSION = '0.08206';
+$VERSION = '0.08240';
 
 $VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
 
index a5f8ad2..7747051 100644 (file)
@@ -16,10 +16,17 @@ if ($v_maj != 0 or $v_min > 8) {
   die "Illegal version $version_string - we are still in the 0.08 cycle\n"
 }
 
+if ($v_point >= 300) {
+  die "Illegal version $version_string - we are still in the 0.082xx cycle\n"
+}
 
-# all odd releases *after* 0.08200 generate a -TRIAL, no exceptions
-Meta->makemaker_args->{DISTVNAME} = Meta->name . "-$version_string-TRIAL"
-  if ( $v_point > 200 and int($v_point / 100) % 2 );
+Meta->makemaker_args->{DISTVNAME} = Meta->name . "-$version_string-TRIAL" if (
+  # 0.08240 ~ 0.08249 shall be TRIALs for the collapser rewrite
+  ( $v_point >= 240  and $v_point <= 249 )
+    or
+  # all odd releases *after* 0.08200 generate a -TRIAL, no exceptions
+  ( $v_point > 200 and int($v_point / 100) % 2 )
+);
 
 
 my $tags = { map { chomp $_; $_ => 1} `git tag` };