[Rt-commit] r2737 - in DBIx-SearchBuilder/trunk: . SearchBuilder

jesse at bestpractical.com jesse at bestpractical.com
Sun Apr 17 19:25:30 EDT 2005


Author: jesse
Date: Sun Apr 17 19:25:30 2005
New Revision: 2737

Modified:
   DBIx-SearchBuilder/trunk/   (props changed)
   DBIx-SearchBuilder/trunk/Changes
   DBIx-SearchBuilder/trunk/MANIFEST
   DBIx-SearchBuilder/trunk/META.yml
   DBIx-SearchBuilder/trunk/SIGNATURE
   DBIx-SearchBuilder/trunk/SearchBuilder.pm
   DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm
Log:
 r13183 at hualien:  jesse | 2005-04-17 19:24:53 -0400
 1.26 Sun Apr 17 19:22:23 EDT 2005
     - Added support for expression based left joins
 
 
 1.25 Sat Apr  9 12:33:30 EDT 2005
 
     - Backed out a change introduced in 1.23 that caused table and column names
       to be quoted, causing Postgres to flip out.
 
 1.24 Wed Apr  6 22:54:37 EDT 2005
     - Added a new "SearchBuilder::Unique" module for uniquifying search results
 


Modified: DBIx-SearchBuilder/trunk/Changes
==============================================================================
--- DBIx-SearchBuilder/trunk/Changes	(original)
+++ DBIx-SearchBuilder/trunk/Changes	Sun Apr 17 19:25:30 2005
@@ -1,7 +1,16 @@
 Revision history for Perl extension DBIx::SearchBuilder.
 
+1.26 Sun Apr 17 19:22:23 EDT 2005
+    - Added support for expression based left joins
+
+
+1.25 Sat Apr  9 12:33:30 EDT 2005
+
+    - Backed out a change introduced in 1.23 that caused table and column names
+      to be quoted, causing Postgres to flip out.
+
 1.24 Wed Apr  6 22:54:37 EDT 2005
-    - Added a new "SearchBuilder::Unique module for uniquifying search results
+    - Added a new "SearchBuilder::Unique" module for uniquifying search results
 
 1.23
     - Now use DBI->quote_identifier to quote column and table names (Ruslan)

Modified: DBIx-SearchBuilder/trunk/MANIFEST
==============================================================================
--- DBIx-SearchBuilder/trunk/MANIFEST	(original)
+++ DBIx-SearchBuilder/trunk/MANIFEST	Sun Apr 17 19:25:30 2005
@@ -5,6 +5,7 @@
 inc/Module/Install/Metadata.pm
 Makefile.PL
 MANIFEST			This list of files
+SIGNATURE
 META.yml
 SearchBuilder.pm
 SearchBuilder/Handle.pm
@@ -20,7 +21,9 @@
 SearchBuilder/Record/Cachable.pm
 SearchBuilder/Union.pm
 SearchBuilder/Unique.pm
+t/utils.pl
 t/00.load.t
+t/01basics.t
 t/01records.t
 t/02records_object.t
 t/pod.t

Modified: DBIx-SearchBuilder/trunk/META.yml
==============================================================================
--- DBIx-SearchBuilder/trunk/META.yml	(original)
+++ DBIx-SearchBuilder/trunk/META.yml	Sun Apr 17 19:25:30 2005
@@ -1,5 +1,5 @@
 name: DBIx-SearchBuilder
-version: 1.24
+version: 1.25
 license: perl
 distribution_type: module
 build_requires:

Modified: DBIx-SearchBuilder/trunk/SIGNATURE
==============================================================================
--- DBIx-SearchBuilder/trunk/SIGNATURE	(original)
+++ DBIx-SearchBuilder/trunk/SIGNATURE	Sun Apr 17 19:25:30 2005
@@ -14,12 +14,12 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 ab6e03d54237f2dbb0dc8719d07d446993ef0278 Changes
-SHA1 6c5970c9d00ad3e4a1c479bab460218edd733936 MANIFEST
-SHA1 e0c75c21c135189b4915370d718536b9ed81ea0d META.yml
+SHA1 2cf45efdc104a936342f4d3ea5283a8e6b1ccaec Changes
+SHA1 dceebecaec0a60f15be74ac0ecd26eb6dfe7cf91 MANIFEST
+SHA1 e44f79a0d8ad6bb8541758f026054c215f055e96 META.yml
 SHA1 6d660abb8f5ceb477b017d1cdbc8c73812a86eb2 Makefile.PL
-SHA1 c32abdddc9b909b6eb3e73eb890826169606dae3 SearchBuilder.pm
-SHA1 77b82302aec577bd8e95e45a94e8e798abadb18b SearchBuilder/Handle.pm
+SHA1 6e25b487156ff6e9a6960491f79b857035e62df1 SearchBuilder.pm
+SHA1 799f8da0756e572d3a1397a5ecbf363a482f1ab9 SearchBuilder/Handle.pm
 SHA1 0103d897704a95032b32363dc65ea4f0d8f5965d SearchBuilder/Handle/Informix.pm
 SHA1 861cee4205d1f367af5cc68b561fd37e38c1acf0 SearchBuilder/Handle/ODBC.pm
 SHA1 6f798ff065f28239767230fcd8c9330dae4eafa7 SearchBuilder/Handle/Oracle.pm
@@ -37,13 +37,15 @@
 SHA1 e094fe96aef06c68d7a424818c12e52b11f1ccdd inc/Module/Install/Makefile.pm
 SHA1 e448c6dc5351ef425e3f8bdbeb642409120bc3ca inc/Module/Install/Metadata.pm
 SHA1 e59ea21b9407644714a5f67c7132a11916c25133 t/00.load.t
+SHA1 c59e7dce93fbfd0d942cad8fc7f723a08301da39 t/01basics.t
 SHA1 14bcc915f2138bd9e2cfc2d71a1dc81f48d1c2a9 t/01records.t
 SHA1 c6d09fe0aed0504426b40f9bd630690f7ba69e4d t/02records_object.t
 SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/pod.t
+SHA1 97cdae718319ca9e2cd6d2c0cfe2f07cda098284 t/utils.pl
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.5 (GNU/Linux)
 
-iD8DBQFCVKESEi9d9xCOQEYRAu8QAJ9U9YRMJUKwk6+2F7c9rnmL/Fi2BgCbBbh7
-vPp70wXmbzoC76j9kdkwzgI=
-=7mPP
+iD8DBQFCYu/DEi9d9xCOQEYRAgzpAJsF0Fch944I94/B9GvorOOSW/iZXwCeM7Go
+420+Ua7vwCGhPSNFivFZjqI=
+=+Bqc
 -----END PGP SIGNATURE-----

Modified: DBIx-SearchBuilder/trunk/SearchBuilder.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder.pm	(original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder.pm	Sun Apr 17 19:25:30 2005
@@ -5,7 +5,7 @@
 use strict;
 use vars qw($VERSION);
 
-$VERSION = "1.24";
+$VERSION = "1.26";
 
 =head1 NAME
 
@@ -1190,6 +1190,8 @@
 rather than merely an alias.  For this type of join, it will return
 the alias generated by the join.
 
+Instead of ALIAS1/FIELD1, it's possible to specify EXPRESSION, to join ALIAS2/TABLE2 on an arbitrary expression.
+
 =cut
 
 sub Join {

Modified: DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm	(original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm	Sun Apr 17 19:25:30 2005
@@ -808,6 +808,7 @@
         TABLE2        => undef,
         FIELD2        => undef,
         ALIAS2        => undef,
+        EXPRESSION    => undef,
         @_
     );
 
@@ -882,12 +883,21 @@
         $string = " JOIN " . $args{'TABLE2'} . " $alias ";
 
     }
+
+
+    my $criterion;
+    if ($args{'EXPRESSION'}) {
+        $criterion = $args{'EXPRESSION'};
+    } else {
+        $criterion = $args{'ALIAS1'}.".".$args{'FIELD1'};
+    }
+
     $args{'SearchBuilder'}->{'left_joins'}{"$alias"}{'alias_string'} = $string;
     $args{'SearchBuilder'}->{'left_joins'}{"$alias"}{'depends_on'}   =
       $args{'ALIAS1'};
     $args{'SearchBuilder'}->{'left_joins'}{"$alias"}{'criteria'}
       { 'criterion' . $args{'SearchBuilder'}->{'criteria_count'}++ } =
-      " $args{'ALIAS1'}.$args{'FIELD1'} = $alias.$args{'FIELD2'}";
+      " $alias.$args{'FIELD2'} = $criterion";
 
     return ($alias);
 }


More information about the Rt-commit mailing list