DBIx-SearchBuilder

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

 - fix a TODO test
 - internal refactoring of a storage for query's conditions, instead of
   building query strings right after the limit or join, we now build a
   perl structure
 - don't clone attributes that don't exists in the Clone method
 - we use Encode module without perl version check for a long time, so we
   can get rid of all checks for the version and load the module at compile
   time everywhere we need it
 - implement MayBeNull method in the handler that checks if applied
   conditions allow NULLs in the result set
 - implement cascaded LEFT JOINs optimization
 - additional tests for CleanSlate and Clone methods, ENTRY_AGGREGATOR
   argument, different types of joins and LEFT JOIN optimizer

1.45 2006-09-26
 - Postgres: fix "$rec->Create();"
 - Postgres: fix "$rec->Create( IntegerColumn => '' );"
 - Postgres: fix "$rec->SetIntegerColumn( '' );"
 - Postgres: add test
 - cleanup ::Record::Cachable
 - use cache in: $a->LoadByCols(...); $b->LoadById( $a->id );

t/02searches_joins.t  view on Meta::CPAN

            FIELD2 => 'UserId',
        ),
        "joined table"
    );
    $users_obj->Limit( ALIAS => $g2u_alias, FIELD => 'GroupId', VALUE => "$groups_alias.id", QUOTEVALUE => 0);
    $users_obj->Limit( ALIAS => $groups_alias, FIELD => 'Name', VALUE => 'Developers' );
    #diag $users_obj->BuildSelectQuery;
    is( $users_obj->Count, 3, "three members" );
}

diag "cascaded LEFT JOIN optimization" if $ENV{'TEST_VERBOSE'}; 
{
    $users_obj->CleanSlate;
    is_deeply( $users_obj, $clean_obj, 'after CleanSlate looks like new object');
    ok( !$users_obj->_isJoined, "new object isn't joined");
    my $alias = $users_obj->Join(
        TYPE   => 'LEFT',
        FIELD1 => 'id',
        TABLE2 => 'UsersToGroups',
        FIELD2 => 'UserId'
    );



( run in 0.508 second using v1.01-cache-2.11-cpan-49f99fa48dc )