Merge "Avoid using cascadingDeletes()/cleanupTriggers()"
[lhc/web/wiklou.git] / includes / libs / rdbms / database / DatabaseBase.php
1 <?php
2 /**
3 * @defgroup Database Database
4 *
5 * This file deals with database interface functions
6 * and query specifics/optimisations.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 * http://www.gnu.org/copyleft/gpl.html
22 *
23 * @file
24 * @ingroup Database
25 */
26
27 /**
28 * Database abstraction object
29 * @ingroup Database
30 */
31 abstract class DatabaseBase extends Database {
32 /**
33 * Boolean, controls output of large amounts of debug information.
34 * @param bool|null $debug
35 * - true to enable debugging
36 * - false to disable debugging
37 * - omitted or null to do nothing
38 *
39 * @return bool Previous value of the flag
40 * @deprecated since 1.28; use setFlag()
41 */
42 public function debug( $debug = null ) {
43 $res = $this->getFlag( DBO_DEBUG );
44 if ( $debug !== null ) {
45 $debug ? $this->setFlag( DBO_DEBUG ) : $this->clearFlag( DBO_DEBUG );
46 }
47
48 return $res;
49 }
50
51 /**
52 * Returns true if this database supports (and uses) cascading deletes
53 *
54 * @return bool
55 */
56 public function cascadingDeletes() {
57 return false;
58 }
59 /**
60 * Returns true if this database supports (and uses) triggers (e.g. on the page table)
61 *
62 * @return bool
63 */
64 public function cleanupTriggers() {
65 return false;
66 }
67 /**
68 * Returns true if this database is strict about what can be put into an IP field.
69 * Specifically, it uses a NULL value instead of an empty string.
70 *
71 * @return bool
72 */
73 public function strictIPs() {
74 return false;
75 }
76
77 /**
78 * @return string
79 * @deprecated since 1.27; use SearchEngineFactory::getSearchEngineClass()
80 */
81 public function getSearchEngine() {
82 return 'SearchEngineDummy';
83 }
84 }