Changeset 1873

Show
Ignore:
Timestamp:
04/13/08 04:41:46 (7 months ago)
Author:
bchoate
Message:

Applied patches from Ogawa-san to add an optimized 'exist' method for testing for existing rows. BugId:69661

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/release-34/lib/MT/App.pm

    r1823 r1873  
    16491649    } 
    16501650 
    1651     my $existing = MT::Author->count( { name => $name } ); 
     1651    my $existing = MT::Author->exist( { name => $name } ); 
    16521652    return $app->error($app->translate("A user with the same name already exists.")) 
    16531653        if $existing; 
  • branches/release-34/lib/MT/App/Comments.pm

    r1823 r1873  
    680680 
    681681    if ( 
    682         MT::Comment->count( 
     682        MT::Comment->exist( 
    683683            { 
    684684                ip         => $user_ip, 
  • branches/release-34/lib/MT/App/Trackback.pm

    r1866 r1873  
    560560    } 
    561561    elsif ( my $cid = $tb->category_id ) { 
    562         my $count = $app->model('entry')->count( 
     562        my $exist = $app->model('entry')->exist( 
    563563            { status => MT::Entry::RELEASE() }, 
    564564            { 
     
    569569        return $app->_response( 
    570570            Error => $app->translate( "Invalid TrackBack ID '[_1]'", $tb_id ) ) 
    571           if $count <= 0
     571          unless $exist
    572572    } 
    573573    my $rss = _generate_rss($tb); 
  • branches/release-34/lib/MT/AtomServer.pm

    r1825 r1873  
    342342    if (my $basename = $app->get_header('Slug')) { 
    343343        my $entry_class = ref $entry; 
    344         my $basename_uses = $entry_class->count({ 
     344        my $basename_uses = $entry_class->exist({ 
    345345            blog_id  => $entry->blog_id, 
    346346            basename => $basename, 
  • branches/release-34/lib/MT/BackupRestore/BackupFileHandler.pm

    r1711 r1873  
    256256            } 
    257257            elsif ('permission' eq $name) { 
    258                 my $perm = $class->count( { 
     258                my $perm = $class->exist( { 
    259259                    author_id => $obj->author_id, 
    260260                    blog_id   => $obj->blog_id 
  • branches/release-34/lib/MT/Blocklist.pm

    r1495 r1873  
    3232    my ($blog_id, $action, @urls) = @_; 
    3333    foreach my $url (@urls) { 
    34         next if $class->count({blog_id => $blog_id, text => $url}); 
     34        next if $class->exist({blog_id => $blog_id, text => $url}); 
    3535        my $this = $class->new(); 
    3636        $this->set_values({blog_id => $blog_id, text => $url, 
  • branches/release-34/lib/MT/CMS/Entry.pm

    r1823 r1873  
    8181            $param->{can_send_notifications} = 1; 
    8282            $param->{has_subscribers} = 
    83               $not_class->count( { blog_id => $blog_id } ); 
     83              $not_class->exist( { blog_id => $blog_id } ); 
    8484        } 
    8585 
     
    11511151            && $type eq 'entry' ) 
    11521152        { 
    1153             my $cnt = 
    1154               $class->count( { blog_id => $blog_id, basename => $basename } ); 
    1155             if ($cnt) { 
     1153            my $exist = 
     1154              $class->exist( { blog_id => $blog_id, basename => $basename } ); 
     1155            if ($exist) { 
    11561156                $obj->basename( MT::Util::make_unique_basename($obj) ); 
    11571157            } 
  • branches/release-34/lib/MT/CMS/Tag.pm

    r1823 r1873  
    110110    if ( $tag && $blog_id ) { 
    111111        my $ot_class = $app->model('objecttag'); 
    112         my $count    = $ot_class->count( 
     112        my $exist    = $ot_class->exist( 
    113113            { 
    114114                object_datasource => $class->datasource, 
     
    117117            } 
    118118        ); 
    119         undef $tag unless $count; 
     119        undef $tag unless $exist; 
    120120    } 
    121121    return $app->json_result( { exists => $tag ? 'true' : 'false' } ); 
  • branches/release-34/lib/MT/CMS/Template.pm

    r1872 r1873  
    11261126    my $blog_id = $q->param('blog_id'); 
    11271127    my $at      = $q->param('new_archive_type'); 
    1128     my $count   = MT::TemplateMap->count( 
     1128    my $exist   = MT::TemplateMap->exist( 
    11291129        { 
    11301130            blog_id      => $blog_id, 
     
    11331133    ); 
    11341134    my $map = MT::TemplateMap->new; 
    1135     $map->is_preferred( $count ? 0 : 1 ); 
     1135    $map->is_preferred( $exist ? 0 : 1 ); 
    11361136    $map->template_id( scalar $q->param('template_id') ); 
    11371137    $map->blog_id($blog_id); 
     
    18351835        my $new_name = $new_basename; 
    18361836        my $i = 0; 
    1837         while (MT::Template->count({ name => $new_name, blog_id => $tmpl->blog_id })) { 
     1837        while (MT::Template->exist({ name => $new_name, blog_id => $tmpl->blog_id })) { 
    18381838            $new_name = $new_basename . ' (' . ++$i . ')'; 
    18391839        } 
  • branches/release-34/lib/MT/Object.pm

    r1846 r1873  
    543543## Drivers. 
    544544 
    545 # Note: Removed methods: set_driver 
    546  
    547545sub count          { shift->_proxy('count',          @_) } 
     546sub exist          { shift->_proxy('exist',          @_) } 
    548547sub count_group_by { shift->_proxy('count_group_by', @_) } 
    549548sub sum_group_by   { shift->_proxy('sum_group_by',   @_) } 
  • branches/release-34/lib/MT/ObjectDriver/Driver/DBI.pm

    r1502 r1873  
    5959                     order  => '', 
    6060                     limit  => undef, 
     61                     offset => undef, 
     62                    }, 
     63    ); 
     64} 
     65 
     66sub exist { 
     67    my $driver = shift; 
     68    my($class, $terms, $args) = @_; 
     69 
     70    return $driver->_select_aggregate( 
     71        select   => '1', 
     72        class    => $class, 
     73        terms    => $terms, 
     74        args     => $args, 
     75        override => { 
     76                     order  => '', 
     77                     limit  => 1, 
    6178                     offset => undef, 
    6279                    }, 
  • branches/release-34/lib/MT/Tag.pm

    r1657 r1873  
    9595        if (!$tag->n8d_id) { 
    9696            # normalized tag! we can't delete if others reference us 
    97             my $child_tags = MT::Tag->count({n8d_id => $tag->id}); 
     97            my $child_tags = MT::Tag->exist({n8d_id => $tag->id}); 
    9898            return $tag->error(MT->translate("This tag is referenced by others.")) 
    9999                if $child_tags; 
     
    108108    if ($n8d_tag) { 
    109109        # Normalized tag, no longer referenced by other tags... 
    110         if (!MT::Tag->count({n8d_id => $n8d_tag->id})) { 
     110        if (!MT::Tag->exist({n8d_id => $n8d_tag->id})) { 
    111111            # Noramlized tag that no longer has any object tag associations 
    112112            require MT::ObjectTag; 
    113             if (!MT::ObjectTag->count({tag_id => $n8d_tag->id})) { 
     113            if (!MT::ObjectTag->exist({tag_id => $n8d_tag->id})) { 
    114114                $n8d_tag->remove 
    115115                    or return $tag->error($n8d_tag->errstr); 
     
    412412        my $this_tag_id = $otag->tag_id; 
    413413        $otag->remove; 
    414         if (! MT::ObjectTag->count({tag_id => $this_tag_id})) { 
     414        if (! MT::ObjectTag->exist({tag_id => $this_tag_id})) { 
    415415            # no more references to this tag... just delete it now 
    416416            if (my $tag = MT::Tag->load($this_tag_id)) { 
  • branches/release-34/lib/MT/Template/ContextHandlers.pm

    r1862 r1873  
    30433043 
    30443044    my $class = MT->model('entry'); 
    3045     $class->count( \%terms ); 
     3045    $class->exist( \%terms ); 
    30463046} 
    30473047 
     
    30583058 
    30593059    my $class = MT->model('page'); 
    3060     $class->count( \%terms ); 
     3060    $class->exist( \%terms ); 
    30613061} 
    30623062 
  • branches/release-34/lib/MT/TemplateMap.pm

    r1823 r1873  
    108108            $blog->save; 
    109109            for my $at ( @{ $ats{ $blog->id } } ) { 
    110                 unless ( __PACKAGE__->count({ 
     110                unless ( __PACKAGE__->exist({ 
    111111                    blog_id => $blog->id, archive_type => $at, is_preferred => 1  
    112112                }) ) { 
  • branches/release-34/lib/MT/Upgrade.pm

    r1866 r1873  
    368368            updater => { 
    369369                type => 'blog', 
    370                 condition => sub { !(MT::Permission->count({ 
     370                condition => sub { !(MT::Permission->exist({ 
    371371                    blog_id => $_[0]->id, author_id => 0 })) }, 
    372372                code => sub { 
     
    14801480 
    14811481    require MT::Author; 
    1482     return undef if MT::Author->count; 
     1482    return undef if MT::Author->exist; 
    14831483 
    14841484    $self->progress($self->translate_escape("Creating initial blog and user records...")); 
     
    16061606 
    16071607    require MT::Role; 
    1608     return if MT::Role->count(); 
     1608    return if MT::Role->exist(); 
    16091609 
    16101610    foreach my $r (@default_roles) { 
     
    16731673        $terms->{blog_id} = $blog_id; 
    16741674 
    1675         return 1 if MT::Template->count( $terms ); 
     1675        return 1 if MT::Template->exist( $terms ); 
    16761676 
    16771677        $self->progress($self->translate_escape("Creating new template: '[_1]'.", $val->{name})); 
     
    19841984    require MT::Template; 
    19851985    my $dyn_error_template =  
    1986         MT::Template->count({type => 'dynamic_error'}); 
     1986        MT::Template->exist({type => 'dynamic_error'}); 
    19871987    if ($dyn_error_template) { 
    19881988        return 3.1; 
     
    19901990 
    19911991    my $comment_pending_template = 
    1992         MT::Template->count({type => 'comment_pending'}); 
     1992        MT::Template->exist({type => 'comment_pending'}); 
    19931993    if ($comment_pending_template) { 
    19941994        return 3.0; 
  • branches/release-34/lib/MT/Util.pm

    r1823 r1873  
    936936 
    937937    my $class = ref $entry;  
    938     while ($class->count({ blog_id => $blog->id, 
     938    while ($class->exist({ blog_id => $blog->id, 
    939939                           basename => $base })) { 
    940940        $base = $base_copy . '_' . $i++; 
     
    962962 
    963963    my $cat_class = ref $cat; 
    964     while ($cat_class->count({ blog_id => $cat->blog_id, 
     964    while ($cat_class->exist({ blog_id => $cat->blog_id, 
    965965                               basename => $base })) { 
    966966        $base = $base_copy . '_' . $i++; 
     
    982982 
    983983    my $author_class = ref $author; 
    984     while ($author_class->count({ basename => $base })) { 
     984    while ($author_class->exist({ basename => $base })) { 
    985985        $base = $base_copy . '_' . $i++; 
    986986    } 
  • branches/release-34/lib/MT/XMLRPCServer.pm

    r1823 r1873  
    184184        # Ensure this basename is unique. 
    185185        my $entry_class = ref $entry; 
    186         my $basename_uses = $entry_class->count({ 
     186        my $basename_uses = $entry_class->exist({ 
    187187            blog_id  => $entry->blog_id, 
    188188            basename => $basename,