[Rt-commit] rt branch, 4.0/bookmark-ticketsql-ordering, created. rt-4.0.4-216-g9d3a627

Kevin Falcone falcone at bestpractical.com
Thu Jan 19 18:57:58 EST 2012


The branch, 4.0/bookmark-ticketsql-ordering has been created
        at  9d3a6272fbfe0c366c63bfebcf593aff24035fae (commit)

- Log -----------------------------------------------------------------
commit 842a80de83633ee32fe1876b2368776759e429b8
Author: Kevin Falcone <falcone at bestpractical.com>
Date:   Thu Jan 19 18:51:28 2012 -0500

    Incorrect SQL if id = '__Bookmarked__' isn't first in a search
    
    The ENTRYAGGREGATOR ends up set to AND so we search for
    id = 3 AND id = 4

diff --git a/t/api/bookmarks.t b/t/api/bookmarks.t
new file mode 100644
index 0000000..138fd49
--- /dev/null
+++ b/t/api/bookmarks.t
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+use RT::Test tests => 32;
+
+my ( $url, $m ) = RT::Test->started_ok;
+my $root = RT::Test->load_or_create_user( Name => 'root' );
+
+my @tickets = RT::Test->create_tickets( { },  map { { Subject => "Test $_" } } ( 1 .. 9 ) );
+
+# 4.2 gives us $user->ToggleBookmark which is nicer
+$root->SetAttribute( Name => 'Bookmarks', Content => { map { $_ => 1 } (3,6,9) } );
+
+my $cu = RT::CurrentUser->new($root);
+my $bookmarks = RT::Tickets->new($cu);
+for my $search ( "Queue = 'General' AND id = '__Bookmarked__'",
+                 "id = '__Bookmarked__' AND Queue = 'General'" ) {
+    $bookmarks->FromSQL($search);
+    #diag $bookmarks->BuildSelectQuery;
+    is($bookmarks->Count,3,"Found my 3 bookmarks for [$search]");
+}

commit 9d3a6272fbfe0c366c63bfebcf593aff24035fae
Author: Kevin Falcone <falcone at bestpractical.com>
Date:   Thu Jan 19 18:52:13 2012 -0500

    Only pass in context on the first iteration
    
    Otherwise we pick up the AND from the surrounding context rather than
    the OR that we calculated a few lines earlier and should be using.
    See #19267 for more information.

diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index ec78efd..7ed43f7 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -337,6 +337,7 @@ sub _BookmarkLimit {
             VALUE    => $id,
             $first? (@rest): ( ENTRYAGGREGATOR => $ea )
         );
+        $first = 0 if $first;
     }
     $sb->_CloseParen;
 }

-----------------------------------------------------------------------


More information about the Rt-commit mailing list