[Rt-commit] r4057 - in Jifty-DBI/trunk: . lib/Jifty lib/Jifty/DBI lib/Jifty/DBI/Collection

jesse at bestpractical.com jesse at bestpractical.com
Tue Nov 8 16:33:18 EST 2005


Author: jesse
Date: Tue Nov  8 16:33:18 2005
New Revision: 4057

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/Changes
   Jifty-DBI/trunk/README
   Jifty-DBI/trunk/lib/Jifty/DBI.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Collection/Unique.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm
Log:
 r18586 at truegrounds:  jesse | 2005-11-08 16:29:24 -0500
 * Prepping for release


Modified: Jifty-DBI/trunk/Changes
==============================================================================
--- Jifty-DBI/trunk/Changes	(original)
+++ Jifty-DBI/trunk/Changes	Tue Nov  8 16:33:18 2005
@@ -1,408 +1,5 @@
 Revision history for Perl extension Jifty::DBI.
 
-1.33 Thu Sep 22 14:27:46 EDT 2005
-
-* Better SQL statement logging from alex
-
-
-1.32 Thu Sep  1 06:52:42 EDT 2005
-
-* DBD::SQLite is necessary for the test suite to run correctl
-
-1.31 Fri Jul 29 12:47:25 EDT 2005
-
-* Updated MANIFEST to fix a build issue - 
-    Thanks to Andy Lester and David Glasser
-
-1.30 Thu Jul 28 10:17:27 EDT 2005
-
-*  Removed {{{ and  }}} fold markers. Patch from Ruslan
-
-1.30_03 Thu Jun  9 01:35:49 EDT 2005
-* Significant new tests from Ruslan Zakirov and Dave Glasser
-
-* You no longer need to explicitly bless a DBIx::SearchBuilder::Handle subclass 
-  
-* Start of a major overhaul of the subclass API for DBIx::SearchBuilder::Record objects.
-  A new "schema" method will define the data in _ClassAccessible and also generate database
-  schema using DBIx::DBSchema. 
-
-Fixes from Ruslan:
-
-    * for numeric types, make the empty check be "null or 0", not "null or ''"
-    * New search tests from ruslan
-    * added an init_data method to t/utils.pl
-    * CleanSlate doesnt init show_rows
-    * CleanSlate doesnt clean _{open|close}_parens
-    * get rid of stupid ifs in CleanSlate 
-    * get rid of evals in _DoSearch and _DoCount, use Handle methods to control DBI error handling 
-    * rewrite LoadByPrimaryKeys args handling to consistent with other Load* methods
-    * report error when PK filed is missing in LoadByPrimaryKeys
-    * fix warning in __Set methods when newvalue is undef
-    * small code cleanups
-    * test coverage grows from 75.2% to 84.7% for Record.pm
-
-
-1.30_02 Sun May 22 15:21:19 EDT 2005
-
- - Lots of patches from Ruslan:
-
-   First and main change is using of `goto &$AUTOLOAD` syntax, that helps
-   avoid code duplication and hides AUTOLOAD sub from stack trace. I think 
-   this also would help implement CompileAllAutoSubs method easier.
-   
- - It's also one of the steps to better tests coverage.
-   
- - Test coverage for Record.pm grows from 66% to 75.2%.
-   
- - _LoadFromSQL never reported error when PK fields are missed. Fixed. 
-   
- - fetchrow_hashref dies only when RaiseErrors is true, because we can 
-   control this from Handle obj so we should die according to
-   $Handle->RaiseErrors property. Fixed. 
- - When RaiseErrors is "false" then fetchrow_hashref returns undef and we
-   should check $sth->err(see `perldoc DBI`). Fixed. 
-   
- - After call to fetchrow we should clean "fetched" internal hash and fill 
-   it only when we return successful result. Fixed.
-   
- - If SimpleQuery fails, _LoadFromSQL method doesn't return any error
-   message. Fixed.
-
-1.30_01 Mon May 16 21:37:03 BST 2005
-
-    - Patches from Ruslan to switch to using 'capitalization.pm' for our regular_case subroutine aliases
-
-1.27 Sun May  8 22:49:30 EDT 2005
-
-    - Added supoprt for functions containing "?" to represent the parameter
-        in ->Column()
-    - Added better support for functional columns in search listings and
-      group by clauses
-
-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
-
-1.23
-    - Now use DBI->quote_identifier to quote column and table names (Ruslan)
-    - Test suite updates (Ruslan)
-
-1.22 Mon Jan 24 07:42:46 EST 2005
-    - Require encode since we require encode.
-
-1.21
-    - Oracle LOB handling caused us to corrupt item values on update.
-    - Just before inserting things into the database, turn off their utf8 flag.
-      The flag didn't have any positve impact _and_ it can take down
-      recent DBD::Oracle releases. (This is a new failure in DBD::Oracle 1.16)
-
-
-1.20 Tue Jan 18 08:24:15 EST 2005
-    - Minor test suite fixes from Ruslan.
-
-1.19 Sat Jan  8 18:22:59 EST 2005
-
-    - Performing a search multiple times could result in multiple copies of
-      records in a collection. Uncovered thanks to Kevin Chen and Alex Vandiver.
-
-1.18
-    - Release the changes from 1.17
-
-1.17_03
-    - Properly mark BLOB columns in UPDATE calls. (DBD::Oracle 1.16 broke without this)
-
-1.17_02
-    - Better handling of empty values for SB::Record::_Accessible. ( --Ruslan)
-
-
-1.17_01
-    - More record tests from Ruz
-
-1.16 Thu Dec  9 23:49:39 EST 2004
-    - Fixed a bug in D::SB::R::Cachable that could cause it to load the wrong row from the cache if you were loading
-      by alternate keys and had since changed one of the attributes of a previous row.  This was unmasked by a
-      bug that Ruslan Zakirov found in RT 3.3's custom field handling
-
-
-1.15 Sat Nov 27 13:09:56 EST 2004
-    - Fix a testsuite bug when DBD::SQLite isn't there
-
-
-1.14
-    - Silenced warnings about uninitialized warnings when inserting null cols
-      into the database.
-    - Started adding lowercase method name aliases
-    - Minor refactoring of 'id' method for a stupid, tiny perf improvement
-    - Refactoring of DBIx::SearchBuilder::Record::Cachable for performance
-      improvement
-    - Added a FlushCache method to DBIx::SearchBuilder::Record::Cachable.
-    - Started to flesh out a...test suite
-    - SearchBuilder now truncates strings before inserting them into character
-      types in the database as mysql generally does. Additionally, it truncates
-      things at utf8 character boundaries...as mysql does not.
-    - Fix for an undefined record cache warning on load from Autrijus Tang
-    - Major documentation cleanups --Simon Cavalletto
-    - A few tweaks to the ::Record class to eliminate the
-      hard-coding of the name of the id column --Simon Cavalletto
-
-1.12
-    - Better error handling for some query build failure cases
-    - Corrected query builder for SQLite
-    - More refactoring.
-
-1.11
-
-    - When loading an object whose "id" has been altered, as in the case of RT's
-      "Merge" functionality, the wrong object was returned by the caching layer.
-       Special casing for the "id" method was removed.
-
-
-1.10
-
-    - Identical to 1.10_05
-
-
-1.10_05
-
-    -   Reworked the _Accessible mechanism in DBIx::SearchBuilder::Record to
-        remove a horribly crufty old caching mechanism that created a copy
-        of the accessible hash for each and every object instantiated,
-        sometimes quite slowly.
-
-
-1.10_04 Mon Aug 30 17:33:18 EDT 2004
-
-
-A query builder fix for an issue that bit RT2:
-
- Unsatisfied dependency chain in Joins Users_2 at /usr/local/share/perl/5.8.3/DBIx/SearchBuilder/Handle.pm line 965,  line 69.
-
-Stack:
-  [/usr/local/share/perl/5.8.3/DBIx/SearchBuilder/Handle.pm:965]
-  [/usr/local/share/perl/5.8.3/DBIx/SearchBuilder.pm:326]
-  [/usr/local/share/perl/5.8.3/DBIx/SearchBuilder.pm:119]
-  [/usr/local/share/perl/5.8.3/DBIx/SearchBuilder.pm:410]
-
-
-1.10_03 Mon Aug 30 14:31:10 EDT 2004
-        - Cache Sanity fixes from Autrijus Tang <autrijus at autrijus.org>
-
-1.10_02 Thu Aug 26 13:31:13 EDT 2004
-
-1.10_01 Thu Aug 26 00:08:31 EDT 2004
-        - Reimplemented DBIx::SearchBuilder:::Record::Cachable
-          to use Cache::Simple::TimedExpiry. This should make it faster and more
-          memory efficient.
-
-
-1.02_03 Thu Jul 22 13:29:17 EDT 2004
-        - Additional bullet proofing for joins.
-          Now we default to alias1 being "main"  (cubic at acronis.ru)
-
-1.02_02 Tue Jul 20 13:06:06 EDT 2004
-        - Fixed a join bug that mostly manifests as a 'Dependency chain'
-          error on RT2.
-
-1.02_01 Wed Jul  7 12:28:08 EDT 2004
-        - magic _Object instantiation from cubic at acronis.ru
-        - make SB::_Handle settable directly  (cubic at acronis.ru)
-        - document the above
-
-
-1.01    Sun Jun 27 23:35:46 EDT 2004
-
-        - Releasing 1.00_06 as stable
-
-1.00_06 - Pg/Oracle: Don't attempt to do case insensitive comparisons on
-          integer values.
-
-1.00_05 - Force utf8 flag on when doing searches for utf8 data; this
-          is a workaround for DBDs that don't do it themselves.
-
-1.00_04	- Move Postgres specific join behaviour to the superclass so
-	  everyone gets the benefit.
-
-1.00_03 - Remove "AS" from table name aliases on joins, since Oracle
-          doesn't like em.
-
-1.00_02	- Slightly cleaner code in SearchBuilder->GotoPage
-
-1.00_01 - Better handling of case insensitive comparisons on Postgres
-	- Proper support for query paging on SQLite
-		
-0.99	- Bundled changes from 0.98* and released production version
-	  Removed duplicate code in cache expiry routines
-          Experimental SearchBuilder::Union collection object.
-
-	  Released at the YAPC::Taipei::22004 Release Party
-
-0.98_04 - New mysql/oracle "Join" code that allows more complex bundling of
-	  joins from Linda and Robert
-
-0.98_03 - New test infrastructure from Andy Lester
-
-0.98_02 - Better handling of != clauses on Postgres
-
-0.97_02 - Support for "Group By" clauses.
-          Support for delayed load of certain columns from Autrijus Tang.
-
-0.97_01 - Oracle doesn't support binary-safe clobs in a reasonable manner.
-
-0.96    - Releasing 0.96_01 as usable
-
-0.96_01 - Fix a couple of spurious warnings in Record::Cachable
-          Records loaded from multiple-record searches were never cached
-          correctly
-
-0.95_03 - Allow case-insensitive loading by columns in SearchBuilder::Record
-        - Record::LoadByCols now lets you specify operator and values
-
-0.95_01
-        - Removed historical escaping for non-ascii searche queries
-
-0.94-   - Fix for multiple handles in one app from Autrijus Tang
-
-0.93
-        - Added ODBC database driver from Autrijus Tang
-        - Added the ability to sort on functions of columns from Autrijus Tang
-        - Improved case-insensitve searching behavior for PostgreSQL
-        - Added support for multiple handles in one app from Autrijus Tang (#4167)
-        - Added initial Informix database driver from Oliver Tappe
-
-0.92    Sept 4, 2003
-        - Fixed a bug that caused certain types of pre-canned table aliases to fail to work on join
-
-0.90    Aug 8, 2003
-        - Disable Class::ReturnValue's stack trace feature as it interacted poorly with a stack containing lots of data
-
-0.89_02 July 19, 2003
-	- Patch from Grant DeGraw to allow ordering by multiple columns.
-
-0.89_01 July 18 2003
-	- Patch from Brook for:
-	-	better oracle support
-	-   	remove "SELECT DISTINCT" when it's not necessary
-
-0.88 June 23 2003
-        - More correct generation of "Distinct" keyword on counts for queries with left joins
-
-0.87 June 16 2003
-        - Changed DBIx::SB::Record::Cachable to expire cached object when a "deeper" method call changes their values
-
-0.86 June 7 2003
-        - Doing conditional connections was failing on postgres, because the handle was defined, but not connected
-
-0.85 June 7 2003
-        - Stan's destroy fix was actually badly breaking RT
-        - It's now an optional parameter.
-
-0.84 June 4 2003
-        - Bumped the version for release
-
-0.83_05 June 2 2003
-        - Provide support for blowing away nested transactions that aren't yet committed.
-
-0.83_04 June 2 2003
-        - Fixed how values of returned hashes are downcased.
-        - Should be a minor perf improvement
-
-0.83_03 May 30 2003
-        - Moved Stan's destryo fix to the right file
-
-0.83_02 May 27 2003
-        - Better oracle support for unique ids on indexes from Brook
-
-0.83_01 May 27 2003
-        - Stan's DESTROY fix
-        -  Mathieu Arnold's patch to make function naming for
-           autoloaded functions a bit more flexible
-
-0.82	May 19 2003
-	- Query builder changes to improve some join performance
-	- Fixes to a tight loop for cache expiry
-
-0.81_04 April 14 2003
-        - Fixed a bug in "Distinct" logic introduced in 0.81_01
-
-0.81_03 April 13 2003
-        - Patches for Oracle BLOB support from Brook Schofield
-
-0.81_02 April 13 2003
-        -  Rebuilt Postgres query generator.
-
-0.81_01 Mar 27 2003
-        - Select Distinct altered to support oracle
-
-0.80 Mar 08 2003
-        - Count method enhanced to ignore "LIMIT"s
-        - LIMIT behaviour changed to be handle specific
-
-
-0.79 Jan 19 2003
-        - ReadableAttributes and WritableAttributes added as methods to Record.pm
-
-0.78 Jan 16 2003
-        - SB->Count should return no results unless the search is limited
-        - Eliminate a warning on empty searches
-
-0.77 Jan 15 2003
-
-        - No longer attempt to cache (and fail) objects that haven't been database-loaded
-
-0.76 Dec 30 2002
-        - Extra checking for cache misses in DBIx::SearchBuilder::Record::Cachable
-        - The start of support for checking database version, so that we can do
-          version-specific SQL
-        - A patch from Autrijus Tang that allows utf-8 safe searching
-
-0.75 Dec 06 2002
-        - Applying a patch from Rob Spier <rspier at pobox.com> which enables
-          arbitrarily complex grouping clauses. It's a hack, but we love it
-          anyway....at least until SB gets redone with proper arbitrarily
-          complex query generation.
-
-0.74 Oct 11 2002
-        - Adding support for mysqlPP
-
-0.73 Sep 10 2002
-        - More class-returnvalue ification
-        - Fixed a caching bug that caused multiple copies of an object in memory to not
-          be kept in sync
-
-0.72  Aug 28 2002
-        - Fixed bug in setting a column to the value of an SQL statement.
-
-0.70  Aug 27 2002
-        - Better support for Postgres 7.2 and transactions.
-
-0.62  Jul 5 2002
-        - Support for Class::ReturnValue to channel errors up when expected
-        - Dependency on Class::ReturnValue
-        - Minor cleanups and refactorings to allow percolation of errors on create
-
-0.34  May 23 2001
-	- SearchBuilder.pm - refactored to allow LEFT joins.
-
-0.31  Say May 12 14:45:00 EDT 2001
-	- SearchBuilder::Record::Cachable now constructs cache keys in a way
-	  that doesn't lose when records in different tables have the same keys.
-
-
-0.30  Fri May 11 14:59:17 EDT 2001
-        - Added DBIx::SearchBuilder::Record::Cachable from <mhat at netlag.com>
-        - Changed SearchBuilder->Count to do the right thing if no
-          query has been performed
-        - No longer specify a sort order if no sort order was specified ;)
-
-0.01  Tue Aug 29 16:08:54 2000
-	- original version; created by h2xs 1.19
+0.05_01 Tue Nov  8 16:29:02 EST 2005
 
+* Initial release

Modified: Jifty-DBI/trunk/README
==============================================================================
--- Jifty-DBI/trunk/README	(original)
+++ Jifty-DBI/trunk/README	Tue Nov  8 16:33:18 2005
@@ -1,18 +1,26 @@
 NAME
-    Jifty::DBI - Encapsulate SQL queries and rows in simple perl
-    objects
+    Jifty::DBI - An object-relational mapper
 
 DESCRIPTION
+
     This module provides an object-oriented mechanism for retrieving and
-    updating data in a DBI-accesible database.
+    updating data in a DBI-accesible database. 
+    
+    This module is the direct descendent of DBIx::SearchBuilder. If you're familiar
+    with SearchBuilder, Jifty::DBI should be quite familiar to you.
+
+    Jifty::DBI was forked from SearchBuilder to give us the opportunity to seriously
+    clean up the API and internals without breaking existing applications.
 
 INSTALLATION
+
     $ perl Makefile.PL
     $ make
     $ make test   # but see below for how to actually test against a test database
     # make install
 
 TESTING
+
     In order to test most of the features of Jifty::DBI, you need
     to provide "make test" with a test database. For each DBI driver that
     you would like to test, set the environment variables "JDBI_TEST_FOO",

Modified: Jifty-DBI/trunk/lib/Jifty/DBI.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI.pm	Tue Nov  8 16:33:18 2005
@@ -1,6 +1,9 @@
 package Jifty::DBI;
+use warnings; 
+use strict;
 
-our $VERSION = '0.02';
+
+our $VERSION = '0.05_01';
 
 
 =head1 NAME
@@ -11,6 +14,12 @@
 
 Jifty::DBI deals with databases, so that you don't have to.
 
+This module provides an object-oriented mechanism for retrieving and
+updating data in a DBI-accesible database. 
+
+This module is the direct descendent of DBIx::SearchBuilder. If you're familiar
+with SearchBuilder, Jifty::DBI should be quite familiar to you.
+
 =head2 What is it trying to do. 
 
 Jifty::DBI::Record abstracts the agony of writing the common and generally 

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Collection/Unique.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Collection/Unique.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Collection/Unique.pm	Tue Nov  8 16:33:18 2005
@@ -1,11 +1,13 @@
 package Jifty::DBI::Collection::Unique;
+use strict;
+use warnings;
+
 use base 'Exporter';
 our @EXPORT  = qw(AddRecord);
 our $VERSION = "0.01";
-use strict;
-use warnings;
 
-sub AddRecord {
+
+sub add_record {
     my $self   = shift;
     my $record = shift;
 

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Column.pm	Tue Nov  8 16:33:18 2005
@@ -3,6 +3,7 @@
 
 package Jifty::DBI::Column;
 
+our $VERSION = '0.01';
 use base qw/Class::Accessor Jifty::DBI::HasFilters/;
 use UNIVERSAL::require;
 

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm	Tue Nov  8 16:33:18 2005
@@ -7,11 +7,11 @@
 
 use base qw/Jifty::DBI::HasFilters/;
 
-use vars qw($VERSION %DBIHandle $PrevHandle $DEBUG $TRANSDEPTH);
+use vars qw(%DBIHandle $PrevHandle $DEBUG $TRANSDEPTH);
 
 $TRANSDEPTH = 0;
 
-$VERSION = '0.01';
+our $VERSION = '0.01';
 
 =head1 NAME
 

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	Tue Nov  8 16:33:18 2005
@@ -14,6 +14,9 @@
     Jifty::DBI::HasFilters
     /;
 
+our $VERSION = '0.01';
+
+
 Jifty::DBI::Record->mk_classdata('COLUMNS');
 
 =head1 NAME

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/SchemaGenerator.pm	Tue Nov  8 16:33:18 2005
@@ -7,6 +7,9 @@
 use DBIx::DBSchema;
 use Class::ReturnValue;
 
+our $VERSION = '0.01';
+
+
 # Public accessors
 __PACKAGE__->mk_accessors(qw(handle));
 


More information about the Rt-commit mailing list