Skip to content
This repository has been archived by the owner on Dec 13, 2022. It is now read-only.

Commit

Permalink
fix(sql): add index in centreon_acl for topcounter
Browse files Browse the repository at this point in the history
Refs: #5974
  • Loading branch information
kduret committed Jan 8, 2018
1 parent 84d3520 commit 8f631df
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,13 @@
"AND h.host_id = s.host_id " .
"AND (h.name NOT LIKE '_Module_%' OR h.name LIKE '_Module_Meta%') ";
if (!$obj->is_admin) {
$query_svc_status .= "AND s.service_id IN ( " .
"SELECT DISTINCT service_id " .
$query_svc_status .= "AND EXISTS (" .
"SELECT service_id " .
"FROM centreon_acl " .
"WHERE centreon_acl.group_id IN (" . $obj->grouplistStr . ")) ";
"WHERE centreon_acl.host_id = h.host_id " .
"AND centreon_acl.service_id = s.service_id " .
"AND centreon_acl.group_id IN (" . $obj->grouplistStr . ")" .
") ";
}
$DBRESULT = $obj->DBC->query($query_svc_status);
$svc_stat = array_map("myDecode", $DBRESULT->fetchRow());
Expand Down
3 changes: 2 additions & 1 deletion www/install/createTablesCentstorage.sql
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ CREATE TABLE `centreon_acl` (
`host_id` int(11) DEFAULT NULL,
`service_id` int(11) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
KEY `index1` (`group_id`,`host_id`,`service_id`)
KEY `index1` (`group_id`,`host_id`,`service_id`),
KEY `index2` (`host_id`,`service_id`,`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

Expand Down
2 changes: 1 addition & 1 deletion www/install/insertBaseConf.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
-- Insert version
--

INSERT INTO `informations` (`key` ,`value`) VALUES ('version', '2.8.17');
INSERT INTO `informations` (`key` ,`value`) VALUES ('version', '2.8.18');

--
-- Contenu de la table `contact`
Expand Down
49 changes: 49 additions & 0 deletions www/install/php/Update-2.8.17_to_2.8.18.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php
/*
* Copyright 2005-2016 Centreon
* Centreon is developped by : Julien Mathis and Romain Le Merlus under
* GPL Licence 2.0.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation ; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see <http://www.gnu.org/licenses>.
*
* Linking this program statically or dynamically with other modules is making a
* combined work based on this program. Thus, the terms and conditions of the GNU
* General Public License cover the whole combination.
*
* As a special exception, the copyright holders of this program give Centreon
* permission to link this program with independent modules to produce an executable,
* regardless of the license terms of these independent modules, and to copy and
* distribute the resulting executable under terms of Centreon choice, provided that
* Centreon also meet, for each linked independent module, the terms and conditions
* of the license of that module. An independent module is a module which is not
* derived from this program. If you modify this program, you may extend this
* exception to your version of the program, but you are not obliged to do so. If you
* do not wish to do so, delete this exception statement from your version.
*
* For more information : contact@centreon.com
*
*
*/

/* Update comments unique key */
if (isset($pearDBO)) {
$query = "SELECT count(*) AS number " .
"FROM INFORMATION_SCHEMA.STATISTICS " .
"WHERE table_schema = '" . $conf_centreon['dbcstg'] . "' " .
"AND table_name = 'centreon_acl' " .
"AND index_name='index1'";
$res = $pearDBO->query($query);
$data = $res->fetchRow();
if ($data['number'] == 0) {
$pearDBO->query('ALTER TABLE centreon_acl ADD INDEX `index2` (`host_id`,`service_id`,`group_id`)');
}
}
2 changes: 2 additions & 0 deletions www/install/sql/centreon/Update-DB-2.8.17_to_2.8.18.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- Change version of Centreon
UPDATE `informations` SET `value` = '2.8.18' WHERE CONVERT( `informations`.`key` USING utf8 ) = 'version' AND CONVERT ( `informations`.`value` USING utf8 ) = '2.8.17' LIMIT 1;

0 comments on commit 8f631df

Please sign in to comment.