r18261 - in /branches/upstream/libdbix-searchbuilder-perl/current: Changes META.yml SIGNATURE SearchBuilder.pm SearchBuilder/Handle/Oracle.pm SearchBuilder/Handle/mysql.pm t/02order_outer.t t/utils.pl

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Wed Apr 2 15:45:40 UTC 2008


Author: gregoa-guest
Date: Wed Apr  2 15:45:39 2008
New Revision: 18261

URL: http://svn.debian.org/wsvn/?sc=1&rev=18261
Log:
[svn-upgrade] Integrating new upstream version, libdbix-searchbuilder-perl (1.53)

Modified:
    branches/upstream/libdbix-searchbuilder-perl/current/Changes
    branches/upstream/libdbix-searchbuilder-perl/current/META.yml
    branches/upstream/libdbix-searchbuilder-perl/current/SIGNATURE
    branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder.pm
    branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/Oracle.pm
    branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/mysql.pm
    branches/upstream/libdbix-searchbuilder-perl/current/t/02order_outer.t
    branches/upstream/libdbix-searchbuilder-perl/current/t/utils.pl

Modified: branches/upstream/libdbix-searchbuilder-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/Changes?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/Changes (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/Changes Wed Apr  2 15:45:39 2008
@@ -1,8 +1,14 @@
 Revision history for Perl extension DBIx::SearchBuilder.
 
+1.53 Tue Apr  2 03:06:56 UTC 2008
+
+* Fix mysql version check in DistinctQuery function
+* Fix order by outer column on Oracle
+* Improve tests
+
 1.52 Tue Apr  1 00:48:56 UTC 2008
 
-* Fix order by outer columnon SQLite, mysql, adjust Pg. Add test that
+* Fix order by outer column on SQLite, mysql, adjust Pg. Add test that
   cover this.
 
 1.51 Tue Jan 15 22:53:56 UTC 2008

Modified: branches/upstream/libdbix-searchbuilder-perl/current/META.yml
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/META.yml?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/META.yml (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/META.yml Wed Apr  2 15:45:39 2008
@@ -26,4 +26,4 @@
   DBI: 0
   Encode: 0
   Want: 0
-version: 1.52
+version: 1.53

Modified: branches/upstream/libdbix-searchbuilder-perl/current/SIGNATURE
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/SIGNATURE?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/SIGNATURE (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/SIGNATURE Wed Apr  2 15:45:39 2008
@@ -14,21 +14,21 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 6c4fe1023f6e47a084b833c7c5df061aa3c11f6b Changes
+SHA1 ef436aca5999d6659e3f431e006d7708f40dc950 Changes
 SHA1 ddd4097470d90cd802af26e3da85db40645906b7 MANIFEST
-SHA1 6575bd93862f9070044417e7e518ce0f2bdfea45 META.yml
+SHA1 278c9b4eeb2b8ba6ce0717ecd59188957e646f98 META.yml
 SHA1 837637cca03f08e799c2106fedbf547f79e6feb7 Makefile.PL
 SHA1 d7a41642c368f2a587587e09f9e815d434feebff README
 SHA1 5a53d12d5cccd94845a6a7cc105cd9be34e20f1c ROADMAP
-SHA1 5fd994fa5666b53f5cb4f19e39939534f6480415 SearchBuilder.pm
+SHA1 a4c6a4fdbedaf7e9d1588094a849dbee72d947fe SearchBuilder.pm
 SHA1 0777214c051789d8a42951997e897b7bd49510ce SearchBuilder/Handle.pm
 SHA1 55d337e6dd1ab5aecc39d2ae491bffb12e9ca449 SearchBuilder/Handle/Informix.pm
 SHA1 4efdcaefa5f94d994b052d1b343d2f5164ef4b52 SearchBuilder/Handle/ODBC.pm
-SHA1 061fabc379cda40e6c6e79b9779829f399ed6494 SearchBuilder/Handle/Oracle.pm
+SHA1 23999d3eeea59a589a35bae83ad4d61ad174af34 SearchBuilder/Handle/Oracle.pm
 SHA1 d1266042496de77f15f361d71d6068547d872d92 SearchBuilder/Handle/Pg.pm
 SHA1 21127fc5a1c8d2f585220637029d30955facc9a5 SearchBuilder/Handle/SQLite.pm
 SHA1 ec3fbc03b27c008d93a52b6b7fb0076529e5fcc8 SearchBuilder/Handle/Sybase.pm
-SHA1 4034977117e21dff94a41cba179e22688b56221b SearchBuilder/Handle/mysql.pm
+SHA1 9a0fe1188543b3b71566075fb3d0ba4063259745 SearchBuilder/Handle/mysql.pm
 SHA1 877685aaff265e36fa37298c372aa56864f68aa5 SearchBuilder/Handle/mysqlPP.pm
 SHA1 5dd029a91e72614d7aaf201b277a668c540e7dff SearchBuilder/Record.pm
 SHA1 1680fe8c21ca1667c55501c5f0e9b7bef434647f SearchBuilder/Record/Cachable.pm
@@ -50,7 +50,7 @@
 SHA1 2b2dc6f72370f60e1d233f2f8c12bb87414e825c t/01nocap_api.t
 SHA1 92f07d6d6c3a098f7c5e3524204522f2ec960f75 t/01records.t
 SHA1 049fa2ff4a443b27ca64dfa6e50d4fdcfc8c0edb t/01searches.t
-SHA1 5d6e84b06d3b1bd899484b158af32dfe19e5776a t/02order_outer.t
+SHA1 af1f5d616e935cd955c2fb55c9595c8d35a3922c t/02order_outer.t
 SHA1 67d4c0dca9d1914eadba64460f3a2da4e074ae14 t/02records_cachable.t
 SHA1 e791bc2dc9ebcfe194f00eb9d0d61c391200b589 t/02records_integers.t
 SHA1 6e50e77f1b54fe28fd6bcbb6eb104527f25d2601 t/02records_object.t
@@ -62,11 +62,11 @@
 SHA1 b22ee88495de953e688cda8d0959511864aa936b t/11schema_records.t
 SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/pod.t
 SHA1 afd320ea000cbe83b08691cc37bea45da20002d3 t/testmodels.pl
-SHA1 50bd534c8ee459d9e28fd51843dd1ad70fd5c9b1 t/utils.pl
+SHA1 eeacec04dea7fcf1c1a7083b3e27621752b7343a t/utils.pl
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.8 (GNU/Linux)
 
-iEYEARECAAYFAkfxoCIACgkQvH6dkeDZaS9pmACfQ/Zq+3Z4WsHmnh+vDMgQLZeX
-FCsAn3W1izL337BOTojKMEJp/MGHeoNe
-=GYHb
+iEYEARECAAYFAkfy+V0ACgkQvH6dkeDZaS8NqQCeJQQ2LhaVK0eXRV/GeMx1a5EO
+xZwAn0YbWNyCImT5yYVeB1v6O/PeclL0
+=QFbf
 -----END PGP SIGNATURE-----

Modified: branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder.pm?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder.pm (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder.pm Wed Apr  2 15:45:39 2008
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-our $VERSION = "1.52";
+our $VERSION = "1.53";
 
 use Clone qw();
 use Encode qw();

Modified: branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/Oracle.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/Oracle.pm?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/Oracle.pm (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/Oracle.pm Wed Apr  2 15:45:39 2008
@@ -258,17 +258,24 @@
 
     my $table = $sb->Table;
 
-    # Wrapp select query in a subselect as Oracle doesn't allow
-    # DISTINCT against CLOB/BLOB column types.
     if ($sb->_OrderClause =~ /(?<!main)\./) {
         # If we are ordering by something not in 'main', we need to GROUP
         # BY and adjust the ORDER_BY accordingly
         local $sb->{group_by} = [@{$sb->{group_by} || []}, {FIELD => 'id'}];
-        local $sb->{order_by} = [map {($_->{ALIAS} and $_->{ALIAS} ne "main") ? {%{$_}, FIELD => "min(".$_->{FIELD}.")"}: $_} @{$sb->{order_by}}];
+        local $sb->{'order_by'} = [
+            map {
+                ($_->{'ALIAS'}||'') ne "main"
+                ? { %{$_}, FIELD => ((($_->{'ORDER'}||'') =~ /^des/i)?'MAX':'MIN') ."(".$_->{FIELD}.")" }
+                : $_
+            }
+            @{$sb->{'order_by'}}
+        ];
         my $group = $sb->_GroupClause;
         my $order = $sb->_OrderClause;
         $$statementref = "SELECT main.* FROM ( SELECT main.id FROM $$statementref $group $order ) distinctquery, $table main WHERE (main.id = distinctquery.id)";
     } else {
+        # Wrapp select query in a subselect as Oracle doesn't allow
+        # DISTINCT against CLOB/BLOB column types.
         $$statementref = "SELECT main.* FROM ( SELECT DISTINCT main.id FROM $$statementref ) distinctquery, $table main WHERE (main.id = distinctquery.id) ";
         $$statementref .= $sb->_GroupClause;
         $$statementref .= $sb->_OrderClause;

Modified: branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/mysql.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/mysql.pm?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/mysql.pm (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/SearchBuilder/Handle/mysql.pm Wed Apr  2 15:45:39 2008
@@ -84,7 +84,7 @@
     return $self->SUPER::DistinctQuery( $statementref, $sb, @_ )
         if $sb->_GroupClause || $sb->_OrderClause !~ /(?<!main)\./;
 
-    if ( substr($self->DatabaseVersion, 1) == 4 ) {
+    if ( substr($self->DatabaseVersion, 0, 1) == 4 ) {
         local $sb->{'group_by'} = [{FIELD => 'id'}];
 
         my ($idx, @tmp, @specials) = (0, ());

Modified: branches/upstream/libdbix-searchbuilder-perl/current/t/02order_outer.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/t/02order_outer.t?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/t/02order_outer.t (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/t/02order_outer.t Wed Apr  2 15:45:39 2008
@@ -7,7 +7,7 @@
 BEGIN { require "t/utils.pl" }
 our (@AvailableDrivers);
 
-use constant TESTS_PER_DRIVER => 96;
+use constant TESTS_PER_DRIVER => 98;
 
 my $total = scalar(@AvailableDrivers) * TESTS_PER_DRIVER;
 plan tests => $total;
@@ -28,7 +28,7 @@
 	my $ret = init_schema( 'TestApp', $handle );
 	isa_ok($ret,'DBI::st', "Inserted the schema. got a statement handle back");
 
-    my $lowest = $d ne 'Pg'? '-': 'z';
+    my $lowest = ($d ne 'Pg' && $d ne 'Oracle')? '-': 'z';
 
 diag "generate data" if $ENV{TEST_VERBOSE};
 {
@@ -55,8 +55,8 @@
     }
 }
 
-# test ASC order
-{
+# ASC order
+foreach my $direction ( qw(ASC DESC) ) {
     my $objs = TestApp::Objects->new($handle);
     $objs->UnLimit;
     my $tags_alias = $objs->Join(
@@ -67,39 +67,26 @@
         FIELD2 => 'Object',
     );
     ok($tags_alias, "joined tags table");
-    $objs->OrderBy( ALIAS => $tags_alias, FIELD => 'Name', ORDER => 'ASC' );
-    my ($order_ok, $last) = (1, '-');
+    $objs->OrderBy( ALIAS => $tags_alias, FIELD => 'Name', ORDER => $direction );
+
+    ok($objs->First, 'ok, we have at least one result');
+    $objs->GotoFirstItem;
+
+    my ($order_ok, $last) = (1, $direction eq 'ASC'? '-': 'zzzz');
     while ( my $obj = $objs->Next ) {
-        if ( (substr($last, 0, 1) cmp substr($obj->Name, 0, 1)) > 0 ) {
+        my $tmp;
+        if ( $direction eq 'ASC' ) {
+            $tmp = (substr($last, 0, 1) cmp substr($obj->Name, 0, 1));
+        } else {
+            $tmp = -(substr($last, -1, 1) cmp substr($obj->Name, -1, 1));
+        }
+        if ( $tmp > 0 ) {
             $order_ok = 0; last;
         }
         $last = $obj->Name;
     }
-    ok($order_ok, "order is correct") or diag "Wrong query: ". $objs->BuildSelectQuery;
-}
-
-# test DESC order
-{
-    my $objs = TestApp::Objects->new($handle);
-    $objs->UnLimit;
-    my $tags_alias = $objs->Join(
-        TYPE   => 'LEFT',
-        ALIAS1 => 'main',
-        FIELD1 => 'id',
-        TABLE2 => 'Tags',
-        FIELD2 => 'Object',
-    );
-    ok($tags_alias, "joined tags table");
-    $objs->OrderBy( ALIAS => $tags_alias, FIELD => 'Name', ORDER => 'DESC' );
-    my ($order_ok, $last) = (1, 'z');
-    while ( my $obj = $objs->Next ) {
-        if ( (substr($last, -1, 1) cmp substr($obj->Name, -1, 1)) < 0 ) {
-            $order_ok = 0; last;
-        }
-        $last = $obj->Name;
-    }
-    ok($order_ok, "order is correct") or do {
-        diag "Wrong query: ". $objs->BuildSelectQuery;
+    ok($order_ok, "$direction order is correct") or do {
+        diag "Wrong $direction query: ". $objs->BuildSelectQuery;
         $objs->GotoFirstItem;
         while ( my $obj = $objs->Next ) {
             diag($obj->id .":". $obj->Name);
@@ -167,8 +154,10 @@
 ] }
 
 sub cleanup_schema_oracle { [
-    "DROP SEQUENCE Users_seq",
-    "DROP TABLE Users", 
+    "DROP SEQUENCE Objects_seq",
+    "DROP TABLE Objects", 
+    "DROP SEQUENCE Tags_seq",
+    "DROP TABLE Tags", 
 ] }
 
 
@@ -234,7 +223,7 @@
         {read => 1, type => 'int(11)' },
         Object =>
         {read => 1, type => 'int(11)' },
-        Value =>
+        Name =>
         {read => 1, write => 1, type => 'varchar(36)' },
     }
 }

Modified: branches/upstream/libdbix-searchbuilder-perl/current/t/utils.pl
URL: http://svn.debian.org/wsvn/branches/upstream/libdbix-searchbuilder-perl/current/t/utils.pl?rev=18261&op=diff
==============================================================================
--- branches/upstream/libdbix-searchbuilder-perl/current/t/utils.pl (original)
+++ branches/upstream/libdbix-searchbuilder-perl/current/t/utils.pl Wed Apr  2 15:45:39 2008
@@ -131,9 +131,11 @@
 	my $handle = shift;
 	return $handle->Connect(
 		Driver   => 'Oracle',
-#		Database => $ENV{'SB_TEST_ORACLE'},
+		Database => $ENV{'SB_TEST_ORACLE'},
+		Host     => $ENV{'SB_TEST_ORACLE_HOST'},
+		SID      => $ENV{'SB_TEST_ORACLE_SID'},
 		User     => $ENV{'SB_TEST_ORACLE_USER'} || 'test',
-		Password => $ENV{'SB_TEST_RACLE_PASS'} || 'test',
+		Password => $ENV{'SB_TEST_ORACLE_PASS'} || 'test',
     );
 }
 




More information about the Pkg-perl-cvs-commits mailing list