[Cpan-forum-commit] rev 301 - in trunk: . lib/CPAN lib/CPAN/Forum/DB

svn at pti.co.il svn at pti.co.il
Sun Jul 22 07:04:37 EEST 2007


Author: gabor
Date: 2007-07-22 07:04:36 +0300 (Sun, 22 Jul 2007)
New Revision: 301

Modified:
   trunk/
   trunk/lib/CPAN/Forum.pm
   trunk/lib/CPAN/Forum/DB/Posts.pm
Log:
_posts is now using only plain SQL



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4308
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
   + 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4309
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752

Modified: trunk/lib/CPAN/Forum/DB/Posts.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Posts.pm	2007-07-22 04:04:20 UTC (rev 300)
+++ trunk/lib/CPAN/Forum/DB/Posts.pm	2007-07-22 04:04:36 UTC (rev 301)
@@ -6,7 +6,6 @@
 __PACKAGE__->table('posts');
 __PACKAGE__->columns(All => qw/id gid uid parent subject text date thread hidden/);
 __PACKAGE__->columns(Essential => qw/id gid uid parent subject text date thread hidden/);
-#__PACKAGE__->has_many(responses => "CPAN::Forum::DB::Posts");
 __PACKAGE__->has_a(parent => "CPAN::Forum::DB::Posts");
 __PACKAGE__->has_a(uid    => "CPAN::Forum::DB::Users");
 __PACKAGE__->has_a(gid    => "CPAN::Forum::DB::Groups");
@@ -15,8 +14,6 @@
 
 __PACKAGE__->set_sql(count_where    => "SELECT count(*) FROM __TABLE__ WHERE %s='%s'");
 __PACKAGE__->set_sql(count_like     => "SELECT count(*) FROM __TABLE__ WHERE %s LIKE '%s'");
-#__PACKAGE__->add_constraint('subject_too_long', subject => sub { length $_[0] <= 70 and $_[0] !~ /</});
-#__PACKAGE__->add_constraint('text_format', text => \&check_text_format);
 my $MORE_SQL = 'groups.name group_name, users.fname user_fname, users.lname user_lname, users.username user_username';
 
 sub get_post {
@@ -163,5 +160,12 @@
     return $self->_fetch_arrayref_of_hashes($sql, $limit);
 }
 
+sub list_posts_by {
+    my ($self, $field, $value) = @_;
+    Carp::croak("Invalid field '$field'") if $field ne 'parent';
+    my $sql = "SELECT id FROM posts WHERE $field=?";
+    return $self->_fetch_arrayref_of_hashes($sql, $value);
+};
+
 1;
  

Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm	2007-07-22 04:04:20 UTC (rev 300)
+++ trunk/lib/CPAN/Forum.pm	2007-07-22 04:04:36 UTC (rev 301)
@@ -1258,14 +1258,14 @@
 
 sub _post {
     my ($self, $post) = @_;
-    my @responses = map {{id => $_->id}} CPAN::Forum::DB::Posts->search(parent => $post->{id});
+    my $responses = CPAN::Forum::DB::Posts->list_posts_by(parent => $post->{id}); # SQL
 
     my $user = CPAN::Forum::DB::Users->info_by(id => $post->{uid}); # SQL
     my %post = (
         postername  => $user->{username},
         date        => _post_date($post->{date}),
         parentid    => $post->{parent},
-        responses   => \@responses,
+        responses   => $responses,
         text        => $self->_text_escape($post->{text}),
     );
 



More information about the Cpan-forum-commit mailing list