]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 313209: Oracle requires "CASE WHEN" around boolean expressions in the SELECT...
authormkanat%kerio.com <>
Tue, 25 Oct 2005 02:21:02 +0000 (02:21 +0000)
committermkanat%kerio.com <>
Tue, 25 Oct 2005 02:21:02 +0000 (02:21 +0000)
Patch By Lance Larsh <lance.larsh@oracle.com> r=mkanat, a=justdave

Bugzilla/Bug.pm
Bugzilla/User.pm
chart.cgi
editproducts.cgi
globals.pl
process_bug.cgi

index c08703789aed717783e3d2a8e9f1cc2cbec2a3dd..d094b8eae517f9224f3596157855c5e1ec2cf6ac 100755 (executable)
@@ -24,6 +24,7 @@
 #                 Dave Miller    <justdave@bugzilla.org>
 #                 Max Kanat-Alexander <mkanat@bugzilla.org>
 #                 Frédéric Buclin <LpSolit@gmail.com>
+#                 Lance Larsh <lance.larsh@oracle.com>
 
 package Bugzilla::Bug;
 
@@ -547,7 +548,8 @@ sub groups {
     my $grouplist = Bugzilla->user->groups_as_string;
     my $sth = $dbh->prepare(
              "SELECT DISTINCT groups.id, name, description," .
-             " bug_group_map.group_id IS NOT NULL," .
+             " CASE WHEN bug_group_map.group_id IS NOT NULL" .
+             " THEN 1 ELSE 0 END," .
              " CASE WHEN groups.id IN($grouplist) THEN 1 ELSE 0 END," .
              " isactive, membercontrol, othercontrol" .
              " FROM groups" . 
index 9b99428a6a95532b4dbec6952bca93c183e7a662..744dbd34afdfe8a9698971a7f4c80cd3017bfdb5 100644 (file)
@@ -25,6 +25,7 @@
 #                 Shane H. W. Travis <travis@sedsystems.ca>
 #                 Max Kanat-Alexander <mkanat@bugzilla.org>
 #                 Gervase Markham <gerv@gerv.net>
+#                 Lance Larsh <lance.larsh@oracle.com>
 
 ################################################################################
 # Module Initialization
@@ -509,7 +510,8 @@ sub can_enter_product {
     trick_taint($product_name);
 
     # Checks whether the user has access to the product.
-    my $has_access = $dbh->selectrow_array('SELECT group_id IS NULL
+    my $has_access = $dbh->selectrow_array('SELECT CASE WHEN group_id IS NULL
+                                                        THEN 1 ELSE 0 END
                                               FROM products
                                          LEFT JOIN group_control_map
                                                 ON group_control_map.product_id = products.id
@@ -527,8 +529,10 @@ sub can_enter_product {
     # Checks whether the product is open for new bugs and
     # has at least one component and one version.
     my ($is_open, $has_version) = 
-        $dbh->selectrow_array('SELECT CASE WHEN disallownew = 0 THEN 1 ELSE 0 END,
-                                      versions.value IS NOT NULL
+        $dbh->selectrow_array('SELECT CASE WHEN disallownew = 0
+                                           THEN 1 ELSE 0 END,
+                                      CASE WHEN versions.value IS NOT NULL
+                                           THEN 1 ELSE 0 END
                                  FROM products
                            INNER JOIN components
                                    ON components.product_id = products.id
index 2b8d39b564ccb5f4e96fd7c05fe2013525f1b9c9..566d0541fc141ba06dcdfc3337e64c6b67be0e51 100755 (executable)
--- a/chart.cgi
+++ b/chart.cgi
@@ -19,6 +19,7 @@
 # Rights Reserved.
 #
 # Contributor(s): Gervase Markham <gerv@gerv.net>
+#                 Lance Larsh <lance.larsh@oracle.com>
 
 # Glossary:
 # series:   An individual, defined set of data plotted over time.
@@ -207,7 +208,8 @@ sub assertCanEdit {
     return if UserInGroup("admin");
 
     my $dbh = Bugzilla->dbh;
-    my $iscreator = $dbh->selectrow_array("SELECT creator = ? FROM series " .
+    my $iscreator = $dbh->selectrow_array("SELECT CASE WHEN creator = ? " .
+                                          "THEN 1 ELSE 0 END FROM series " .
                                           "WHERE series_id = ?", undef,
                                           $::userid, $series_id);
     $iscreator || ThrowUserError("illegal_series_edit");
index 9b188f2314b09696e7cc14b230a77a094ff11607..13614f2697ee5a00211ea7cdc6a91a2f7929fbb5 100755 (executable)
@@ -25,6 +25,7 @@
 #               Gavin Shelley <bugzilla@chimpychompy.org>
 #               Fr��ic Buclin <LpSolit@gmail.com>
 #               Greg Hendricks <ghendricks@novell.com>
+#               Lance Larsh <lance.larsh@oracle.com>
 #
 # Direct any questions on this source code to
 #
@@ -624,7 +625,7 @@ if ($action eq 'updategroupcontrols') {
     foreach my $groupid (@now_na) {
         my $count = 0;
         SendSQL("SELECT bugs.bug_id, 
-                 (lastdiffed >= delta_ts)
+                 CASE WHEN (lastdiffed >= delta_ts) THEN 1 ELSE 0 END
                  FROM bugs, bug_group_map
                  WHERE group_id = $groupid
                  AND bug_group_map.bug_id = bugs.bug_id
@@ -658,7 +659,7 @@ if ($action eq 'updategroupcontrols') {
     foreach my $groupid (@now_mandatory) {
         my $count = 0;
         SendSQL("SELECT bugs.bug_id,
-                 (lastdiffed >= delta_ts)
+                 CASE WHEN (lastdiffed >= delta_ts) THEN 1 ELSE 0 END
                  FROM bugs
                  LEFT JOIN bug_group_map
                  ON bug_group_map.bug_id = bugs.bug_id
index ebbce4c16217a8ad80c9017aa0c9e16bafe1e90b..e7e3f752194d1e2d77cab2ae427a4593e3fc5c37 100644 (file)
@@ -25,6 +25,7 @@
 #                 Joel Peshkin <bugreport@peshkin.net>
 #                 Dave Lawrence <dkl@redhat.com>
 #                 Max Kanat-Alexander <mkanat@bugzilla.org>
+#                 Lance Larsh <lance.larsh@oracle.com>
 
 # Contains some global variables and routines used throughout bugzilla.
 
@@ -734,7 +735,8 @@ sub get_legal_field_values {
 sub BugInGroupId {
     my ($bugid, $groupid) = (@_);
     PushGlobalSQLState();
-    SendSQL("SELECT bug_id != 0 FROM bug_group_map
+    SendSQL("SELECT CASE WHEN bug_id != 0 THEN 1 ELSE 0 END
+            FROM bug_group_map
             WHERE bug_id = $bugid
             AND group_id = $groupid");
     my $bugingroup = FetchOneColumn();
index dc119179cf3523fb9df6f45a7da24fdcb1501754..9f556cc0ae95eb97794281b3aeebfe90db4add84 100755 (executable)
@@ -25,6 +25,7 @@
 #                 Myk Melez <myk@mozilla.org>
 #                 Jeff Hedlund <jeff.hedlund@matrixsi.com>
 #                 Frédéric Buclin <LpSolit@gmail.com>
+#                 Lance Larsh <lance.larsh@oracle.com>
 
 # Implementation notes for this file:
 #
@@ -1730,7 +1731,8 @@ foreach my $id (@idlist) {
         SendSQL("SELECT DISTINCT groups.id, isactive, " .
                 "oldcontrolmap.membercontrol, newcontrolmap.membercontrol, " .
                 "CASE WHEN groups.id IN ($grouplist) THEN 1 ELSE 0 END, " .
-                "bug_group_map.group_id IS NOT NULL " .
+                "CASE WHEN bug_group_map.group_id IS NOT NULL " .
+                "THEN 1 ELSE 0 END " .
                 "FROM groups " .
                 "LEFT JOIN group_control_map AS oldcontrolmap " .
                 "ON oldcontrolmap.group_id = groups.id " .