diff options
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/cache/service.php | 7 | ||||
| -rw-r--r-- | phpBB/phpbb/db/driver/firebird.php | 534 | ||||
| -rw-r--r-- | phpBB/phpbb/db/tools.php | 158 | ||||
| -rw-r--r-- | phpBB/phpbb/search/fulltext_native.php | 1 | 
4 files changed, 1 insertions, 699 deletions
diff --git a/phpBB/phpbb/cache/service.php b/phpBB/phpbb/cache/service.php index c9aa6525c0..e47177758a 100644 --- a/phpBB/phpbb/cache/service.php +++ b/phpBB/phpbb/cache/service.php @@ -316,13 +316,6 @@ class service  					ORDER BY LEN(bot_agent) DESC';  				break; -				case 'firebird': -					$sql = 'SELECT user_id, bot_agent, bot_ip -						FROM ' . BOTS_TABLE . ' -						WHERE bot_active = 1 -					ORDER BY CHAR_LENGTH(bot_agent) DESC'; -				break; -  				// LENGTH supported by MySQL, IBM DB2 and Oracle for sure...  				default:  					$sql = 'SELECT user_id, bot_agent, bot_ip diff --git a/phpBB/phpbb/db/driver/firebird.php b/phpBB/phpbb/db/driver/firebird.php deleted file mode 100644 index 67d7f12b66..0000000000 --- a/phpBB/phpbb/db/driver/firebird.php +++ /dev/null @@ -1,534 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -namespace phpbb\db\driver; - -/** -* Firebird/Interbase Database Abstraction Layer -* Minimum Requirement is Firebird 2.1 -*/ -class firebird extends \phpbb\db\driver\driver -{ -	var $last_query_text = ''; -	var $service_handle = false; -	var $affected_rows = 0; -	var $connect_error = ''; - -	/** -	* {@inheritDoc} -	*/ -	function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false) -	{ -		$this->persistency = $persistency; -		$this->user = $sqluser; -		$this->server = $sqlserver . (($port) ? ':' . $port : ''); -		$this->dbname = str_replace('\\', '/', $database); - -		// There are three possibilities to connect to an interbase db -		if (!$this->server) -		{ -			$use_database = $this->dbname; -		} -		else if (strpos($this->server, '//') === 0) -		{ -			$use_database = $this->server . $this->dbname; -		} -		else -		{ -			$use_database = $this->server . ':' . $this->dbname; -		} - -		if ($this->persistency) -		{ -			if (!function_exists('ibase_pconnect')) -			{ -				$this->connect_error = 'ibase_pconnect function does not exist, is interbase extension installed?'; -				return $this->sql_error(''); -			} -			$this->db_connect_id = @ibase_pconnect($use_database, $this->user, $sqlpassword, false, false, 3); -		} -		else -		{ -			if (!function_exists('ibase_connect')) -			{ -				$this->connect_error = 'ibase_connect function does not exist, is interbase extension installed?'; -				return $this->sql_error(''); -			} -			$this->db_connect_id = @ibase_connect($use_database, $this->user, $sqlpassword, false, false, 3); -		} - -		// Do not call ibase_service_attach if connection failed, -		// otherwise error message from ibase_(p)connect call will be clobbered. -		if ($this->db_connect_id && function_exists('ibase_service_attach') && $this->server) -		{ -			$this->service_handle = @ibase_service_attach($this->server, $this->user, $sqlpassword); -		} -		else -		{ -			$this->service_handle = false; -		} - -		return ($this->db_connect_id) ? $this->db_connect_id : $this->sql_error(''); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_server_info($raw = false, $use_cache = true) -	{ -		/** -		* force $use_cache false.  I didn't research why the caching code there is no caching code -		* but I assume its because the IB extension provides a direct method to access it -		* without a query. -		*/ - -		$use_cache = false; - -		if ($this->service_handle !== false && function_exists('ibase_server_info')) -		{ -			return @ibase_server_info($this->service_handle, IBASE_SVC_SERVER_VERSION); -		} - -		return ($raw) ? '2.1' : 'Firebird/Interbase'; -	} - -	/** -	* SQL Transaction -	* @access private -	*/ -	function _sql_transaction($status = 'begin') -	{ -		switch ($status) -		{ -			case 'begin': -				return true; -			break; - -			case 'commit': -				return @ibase_commit(); -			break; - -			case 'rollback': -				return @ibase_rollback(); -			break; -		} - -		return true; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_query($query = '', $cache_ttl = 0) -	{ -		if ($query != '') -		{ -			global $cache; - -			// EXPLAIN only in extra debug mode -			if (defined('DEBUG')) -			{ -				$this->sql_report('start', $query); -			} -			else if (defined('PHPBB_DISPLAY_LOAD_TIME')) -			{ -				$this->curtime = microtime(true); -			} - -			$this->last_query_text = $query; -			$this->query_result = ($cache && $cache_ttl) ? $cache->sql_load($query) : false; -			$this->sql_add_num_queries($this->query_result); - -			if ($this->query_result === false) -			{ -				$array = array(); -				// We overcome Firebird's 32767 char limit by binding vars -				if (strlen($query) > 32767) -				{ -					if (preg_match('/^(INSERT INTO[^(]++)\\(([^()]+)\\) VALUES[^(]++\\((.*?)\\)$/s', $query, $regs)) -					{ -						if (strlen($regs[3]) > 32767) -						{ -							preg_match_all('/\'(?:[^\']++|\'\')*+\'|[\d-.]+/', $regs[3], $vals, PREG_PATTERN_ORDER); - -							$inserts = $vals[0]; -							unset($vals); - -							foreach ($inserts as $key => $value) -							{ -								if (!empty($value) && $value[0] === "'" && strlen($value) > 32769) // check to see if this thing is greater than the max + 'x2 -								{ -									$inserts[$key] = '?'; -									$array[] = str_replace("''", "'", substr($value, 1, -1)); -								} -							} - -							$query = $regs[1] . '(' . $regs[2] . ') VALUES (' . implode(', ', $inserts) . ')'; -						} -					} -					else if (preg_match('/^(UPDATE ([\\w_]++)\\s+SET )([\\w_]++\\s*=\\s*(?:\'(?:[^\']++|\'\')*+\'|\\d+)(?:,\\s*[\\w_]++\\s*=\\s*(?:\'(?:[^\']++|\'\')*+\'|[\d-.]+))*+)\\s+(WHERE.*)$/s', $query, $data)) -					{ -						if (strlen($data[3]) > 32767) -						{ -							$update = $data[1]; -							$where = $data[4]; -							preg_match_all('/(\\w++)\\s*=\\s*(\'(?:[^\']++|\'\')*+\'|[\d-.]++)/', $data[3], $temp, PREG_SET_ORDER); -							unset($data); - -							$cols = array(); -							foreach ($temp as $value) -							{ -								if (!empty($value[2]) && $value[2][0] === "'" && strlen($value[2]) > 32769) // check to see if this thing is greater than the max + 'x2 -								{ -									$array[] = str_replace("''", "'", substr($value[2], 1, -1)); -									$cols[] = $value[1] . '=?'; -								} -								else -								{ -									$cols[] = $value[1] . '=' . $value[2]; -								} -							} - -							$query = $update . implode(', ', $cols) . ' ' . $where; -							unset($cols); -						} -					} -				} - -				if (!function_exists('ibase_affected_rows') && (preg_match('/^UPDATE ([\w_]++)\s+SET [\w_]++\s*=\s*(?:\'(?:[^\']++|\'\')*+\'|[\d-.]+)(?:,\s*[\w_]++\s*=\s*(?:\'(?:[^\']++|\'\')*+\'|[\d-.]+))*+\s+(WHERE.*)?$/s', $query, $regs) || preg_match('/^DELETE FROM ([\w_]++)\s*(WHERE\s*.*)?$/s', $query, $regs))) -				{ -					$affected_sql = 'SELECT COUNT(*) as num_rows_affected FROM ' . $regs[1]; -					if (!empty($regs[2])) -					{ -						$affected_sql .= ' ' . $regs[2]; -					} - -					if (!($temp_q_id = @ibase_query($this->db_connect_id, $affected_sql))) -					{ -						return false; -					} - -					$temp_result = @ibase_fetch_assoc($temp_q_id); -					@ibase_free_result($temp_q_id); - -					$this->affected_rows = ($temp_result) ? $temp_result['NUM_ROWS_AFFECTED'] : false; -				} - -				if (sizeof($array)) -				{ -					$p_query = @ibase_prepare($this->db_connect_id, $query); -					array_unshift($array, $p_query); -					$this->query_result = call_user_func_array('ibase_execute', $array); -					unset($array); - -					if ($this->query_result === false) -					{ -						$this->sql_error($query); -					} -				} -				else if (($this->query_result = @ibase_query($this->db_connect_id, $query)) === false) -				{ -					$this->sql_error($query); -				} - -				if (defined('DEBUG')) -				{ -					$this->sql_report('stop', $query); -				} -				else if (defined('PHPBB_DISPLAY_LOAD_TIME')) -				{ -					$this->sql_time += microtime(true) - $this->curtime; -				} - -				if (!$this->transaction) -				{ -					if (function_exists('ibase_commit_ret')) -					{ -						@ibase_commit_ret(); -					} -					else -					{ -						// way cooler than ibase_commit_ret :D -						@ibase_query('COMMIT RETAIN;'); -					} -				} - -				if ($cache && $cache_ttl) -				{ -					$this->open_queries[(int) $this->query_result] = $this->query_result; -					$this->query_result = $cache->sql_save($this, $query, $this->query_result, $cache_ttl); -				} -				else if (strpos($query, 'SELECT') === 0 && $this->query_result) -				{ -					$this->open_queries[(int) $this->query_result] = $this->query_result; -				} -			} -			else if (defined('DEBUG')) -			{ -				$this->sql_report('fromcache', $query); -			} -		} -		else -		{ -			return false; -		} - -		return $this->query_result; -	} - -	/** -	* Build LIMIT query -	*/ -	function _sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0) -	{ -		$this->query_result = false; - -		$query = 'SELECT FIRST ' . $total . ((!empty($offset)) ? ' SKIP ' . $offset : '') . substr($query, 6); - -		return $this->sql_query($query, $cache_ttl); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_affectedrows() -	{ -		// PHP 5+ function -		if (function_exists('ibase_affected_rows')) -		{ -			return ($this->db_connect_id) ? @ibase_affected_rows($this->db_connect_id) : false; -		} -		else -		{ -			return $this->affected_rows; -		} -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchrow($query_id = false) -	{ -		global $cache; - -		if ($query_id === false) -		{ -			$query_id = $this->query_result; -		} - -		if ($cache && $cache->sql_exists($query_id)) -		{ -			return $cache->sql_fetchrow($query_id); -		} - -		if ($query_id === false) -		{ -			return false; -		} - -		$row = array(); -		$cur_row = @ibase_fetch_object($query_id, IBASE_TEXT); - -		if (!$cur_row) -		{ -			return false; -		} - -		foreach (get_object_vars($cur_row) as $key => $value) -		{ -			$row[strtolower($key)] = (is_string($value)) ? trim(str_replace(array("\\0", "\\n"), array("\0", "\n"), $value)) : $value; -		} - -		return (sizeof($row)) ? $row : false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_nextid() -	{ -		$query_id = $this->query_result; - -		if ($query_id !== false && $this->last_query_text != '') -		{ -			if ($this->query_result && preg_match('#^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)#i', $this->last_query_text, $tablename)) -			{ -				$sql = 'SELECT GEN_ID(' . $tablename[1] . '_gen, 0) AS new_id FROM RDB$DATABASE'; - -				if (!($temp_q_id = @ibase_query($this->db_connect_id, $sql))) -				{ -					return false; -				} - -				$temp_result = @ibase_fetch_assoc($temp_q_id); -				@ibase_free_result($temp_q_id); - -				return ($temp_result) ? $temp_result['NEW_ID'] : false; -			} -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_freeresult($query_id = false) -	{ -		global $cache; - -		if ($query_id === false) -		{ -			$query_id = $this->query_result; -		} - -		if ($cache && !is_object($query_id) && $cache->sql_exists($query_id)) -		{ -			return $cache->sql_freeresult($query_id); -		} - -		if (isset($this->open_queries[(int) $query_id])) -		{ -			unset($this->open_queries[(int) $query_id]); -			return @ibase_free_result($query_id); -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_escape($msg) -	{ -		return str_replace(array("'", "\0"), array("''", ''), $msg); -	} - -	/** -	* Build LIKE expression -	* @access private -	*/ -	function _sql_like_expression($expression) -	{ -		return $expression . " ESCAPE '\\'"; -	} - -	/** -	* Build db-specific query data -	* @access private -	*/ -	function _sql_custom_build($stage, $data) -	{ -		return $data; -	} - -	function _sql_bit_and($column_name, $bit, $compare = '') -	{ -		return 'BIN_AND(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : ''); -	} - -	function _sql_bit_or($column_name, $bit, $compare = '') -	{ -		return 'BIN_OR(' . $column_name . ', ' . (1 << $bit) . ')' . (($compare) ? ' ' . $compare : ''); -	} - -	/** -	* {@inheritDoc} -	*/ -	function cast_expr_to_bigint($expression) -	{ -		// Precision must be from 1 to 18 -		return 'CAST(' . $expression . ' as DECIMAL(18, 0))'; -	} - -	/** -	* {@inheritDoc} -	*/ -	function cast_expr_to_string($expression) -	{ -		return 'CAST(' . $expression . ' as VARCHAR(255))'; -	} - -	/** -	* return sql error array -	* @access private -	*/ -	function _sql_error() -	{ -		// Need special handling here because ibase_errmsg returns -		// connection errors, however if the interbase extension -		// is not installed then ibase_errmsg does not exist and -		// we cannot call it. -		if (function_exists('ibase_errmsg')) -		{ -			$msg = @ibase_errmsg(); -			if (!$msg) -			{ -				$msg = $this->connect_error; -			} -		} -		else -		{ -			$msg = $this->connect_error; -		} -		return array( -			'message'	=> $msg, -			'code'		=> (@function_exists('ibase_errcode') ? @ibase_errcode() : '') -		); -	} - -	/** -	* Close sql connection -	* @access private -	*/ -	function _sql_close() -	{ -		if ($this->service_handle !== false) -		{ -			@ibase_service_detach($this->service_handle); -		} - -		return @ibase_close($this->db_connect_id); -	} - -	/** -	* Build db-specific report -	* @access private -	*/ -	function _sql_report($mode, $query = '') -	{ -		switch ($mode) -		{ -			case 'start': -			break; - -			case 'fromcache': -				$endtime = explode(' ', microtime()); -				$endtime = $endtime[0] + $endtime[1]; - -				$result = @ibase_query($this->db_connect_id, $query); -				while ($void = @ibase_fetch_object($result, IBASE_TEXT)) -				{ -					// Take the time spent on parsing rows into account -				} -				@ibase_free_result($result); - -				$splittime = explode(' ', microtime()); -				$splittime = $splittime[0] + $splittime[1]; - -				$this->sql_report('record_fromcache', $query, $endtime, $splittime); - -			break; -		} -	} -} diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index 2ee842eace..2ec46ed239 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -109,36 +109,6 @@ class tools  				'VARBINARY'	=> 'varbinary(255)',  			), -			'firebird'	=> array( -				'INT:'		=> 'INTEGER', -				'BINT'		=> 'DOUBLE PRECISION', -				'UINT'		=> 'INTEGER', -				'UINT:'		=> 'INTEGER', -				'TINT:'		=> 'INTEGER', -				'USINT'		=> 'INTEGER', -				'BOOL'		=> 'INTEGER', -				'VCHAR'		=> 'VARCHAR(255) CHARACTER SET NONE', -				'VCHAR:'	=> 'VARCHAR(%d) CHARACTER SET NONE', -				'CHAR:'		=> 'CHAR(%d) CHARACTER SET NONE', -				'XSTEXT'	=> 'BLOB SUB_TYPE TEXT CHARACTER SET NONE', -				'STEXT'		=> 'BLOB SUB_TYPE TEXT CHARACTER SET NONE', -				'TEXT'		=> 'BLOB SUB_TYPE TEXT CHARACTER SET NONE', -				'MTEXT'		=> 'BLOB SUB_TYPE TEXT CHARACTER SET NONE', -				'XSTEXT_UNI'=> 'VARCHAR(100) CHARACTER SET UTF8', -				'STEXT_UNI'	=> 'VARCHAR(255) CHARACTER SET UTF8', -				'TEXT_UNI'	=> 'BLOB SUB_TYPE TEXT CHARACTER SET UTF8', -				'MTEXT_UNI'	=> 'BLOB SUB_TYPE TEXT CHARACTER SET UTF8', -				'TIMESTAMP'	=> 'INTEGER', -				'DECIMAL'	=> 'DOUBLE PRECISION', -				'DECIMAL:'	=> 'DOUBLE PRECISION', -				'PDECIMAL'	=> 'DOUBLE PRECISION', -				'PDECIMAL:'	=> 'DOUBLE PRECISION', -				'VCHAR_UNI'	=> 'VARCHAR(255) CHARACTER SET UTF8', -				'VCHAR_UNI:'=> 'VARCHAR(%d) CHARACTER SET UTF8', -				'VCHAR_CI'	=> 'VARCHAR(255) CHARACTER SET UTF8', -				'VARBINARY'	=> 'CHAR(255) CHARACTER SET NONE', -			), -  			'mssql'		=> array(  				'INT:'		=> '[int]',  				'BINT'		=> '[float]', @@ -331,7 +301,7 @@ class tools  	* A list of supported DBMS. We change this class to support more DBMS, the DBMS itself only need to follow some rules.  	* @var array  	*/ -	var $supported_dbms = array('firebird', 'mssql', 'mssqlnative', 'mysql_40', 'mysql_41', 'oracle', 'postgres', 'sqlite', 'sqlite3'); +	var $supported_dbms = array('mssql', 'mssqlnative', 'mysql_40', 'mysql_41', 'oracle', 'postgres', 'sqlite', 'sqlite3');  	/**  	* This is set to true if user only wants to return the 'to-be-executed' SQL statement(s) (as an array). @@ -441,13 +411,6 @@ class tools  					FROM pg_stat_user_tables';  			break; -			case 'firebird': -				$sql = 'SELECT rdb$relation_name -					FROM rdb$relations -					WHERE rdb$view_source is null -						AND rdb$system_flag = 0'; -			break; -  			case 'oracle':  				$sql = 'SELECT table_name  					FROM USER_TABLES'; @@ -580,7 +543,6 @@ class tools  		// Close the table for two DBMS and add to the statements  		switch ($this->sql_layer)  		{ -			case 'firebird':  			case 'mssql':  			case 'mssqlnative':  				$table_sql .= "\n);"; @@ -610,7 +572,6 @@ class tools  						$table_sql .= ",\n\t PRIMARY KEY (" . implode(', ', $table_data['PRIMARY_KEY']) . ')';  					break; -					case 'firebird':  					case 'mssql':  					case 'mssqlnative':  						// We need the data here @@ -685,19 +646,6 @@ class tools  					$statements[] = $trigger;  				}  			break; - -			case 'firebird': -				if ($create_sequence) -				{ -					$statements[] = "CREATE GENERATOR {$table_name}_gen;"; -					$statements[] = "SET GENERATOR {$table_name}_gen TO 0;"; - -					$trigger = "CREATE TRIGGER t_$table_name FOR $table_name\n"; -					$trigger .= "BEFORE INSERT\nAS\nBEGIN\n"; -					$trigger .= "\tNEW.{$create_sequence} = GEN_ID({$table_name}_gen, 1);\nEND;"; -					$statements[] = $trigger; -				} -			break;  		}  		// Write Keys @@ -1174,12 +1122,6 @@ class tools  					WHERE LOWER(table_name) = '" . strtolower($table) . "'";  			break; -			case 'firebird': -				$sql = "SELECT RDB\$FIELD_NAME as FNAME -					FROM RDB\$RELATION_FIELDS -					WHERE RDB\$RELATION_NAME = '" . strtoupper($table) . "'"; -			break; -  			case 'sqlite':  			case 'sqlite3':  				$sql = "SELECT sql @@ -1278,15 +1220,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				$sql = "SELECT LOWER(RDB\$INDEX_NAME) as index_name -					FROM RDB\$INDICES -					WHERE RDB\$RELATION_NAME = '" . strtoupper($table_name) . "' -						AND RDB\$UNIQUE_FLAG IS NULL -						AND RDB\$FOREIGN_KEY IS NULL"; -				$col = 'index_name'; -			break; -  			case 'postgres':  				$sql = "SELECT ic.relname as index_name  					FROM pg_class bc, pg_class ic, pg_index i @@ -1332,7 +1265,6 @@ class tools  			// These DBMS prefix index name with the table name  			switch ($this->sql_layer)  			{ -				case 'firebird':  				case 'oracle':  				case 'postgres':  				case 'sqlite': @@ -1385,15 +1317,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				$sql = "SELECT LOWER(RDB\$INDEX_NAME) as index_name -					FROM RDB\$INDICES -					WHERE RDB\$RELATION_NAME = '" . strtoupper($table_name) . "' -						AND RDB\$UNIQUE_FLAG IS NOT NULL -						AND RDB\$FOREIGN_KEY IS NULL"; -				$col = 'index_name'; -			break; -  			case 'postgres':  				$sql = "SELECT ic.relname as index_name, i.indisunique  					FROM pg_class bc, pg_class ic, pg_index i @@ -1460,7 +1383,6 @@ class tools  					}  				break; -				case 'firebird':  				case 'postgres':  				case 'sqlite':  				case 'sqlite3': @@ -1536,32 +1458,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				$sql .= " {$column_type} "; -				$return_array['column_type_sql_type'] = " {$column_type} "; - -				if (!is_null($column_data[1])) -				{ -					$sql .= 'DEFAULT ' . ((is_numeric($column_data[1])) ? $column_data[1] : "'{$column_data[1]}'") . ' '; -					$return_array['column_type_sql_default'] = ((is_numeric($column_data[1])) ? $column_data[1] : "'{$column_data[1]}'") . ' '; -				} - -				$sql .= 'NOT NULL'; - -				// This is a UNICODE column and thus should be given it's fair share -				if (preg_match('/^X?STEXT_UNI|VCHAR_(CI|UNI:?)/', $column_data[0])) -				{ -					$sql .= ' COLLATE UNICODE'; -				} - -				$return_array['auto_increment'] = false; -				if (isset($column_data[2]) && $column_data[2] == 'auto_increment') -				{ -					$return_array['auto_increment'] = true; -				} - -			break; -  			case 'mssql':  			case 'mssqlnative':  				$sql .= " {$column_type} "; @@ -1772,11 +1668,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				// Does not support AFTER statement, only POSITION (and there you need the column position) -				$statements[] = 'ALTER TABLE ' . $table_name . ' ADD "' . strtoupper($column_name) . '" ' . $column_data['column_type_sql']; -			break; -  			case 'mssql':  			case 'mssqlnative':  				// Does not support AFTER, only through temporary table @@ -1894,10 +1785,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				$statements[] = 'ALTER TABLE ' . $table_name . ' DROP "' . strtoupper($column_name) . '"'; -			break; -  			case 'mssql':  			case 'mssqlnative':  				// We need the data here @@ -2036,7 +1923,6 @@ class tools  				$statements[] = 'DROP INDEX ' . $index_name . ' ON ' . $table_name;  			break; -			case 'firebird':  			case 'oracle':  			case 'postgres':  			case 'sqlite': @@ -2065,21 +1951,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				$sql = 'SELECT RDB$GENERATOR_NAME as gen -					FROM RDB$GENERATORS -					WHERE RDB$SYSTEM_FLAG = 0 -						AND RDB$GENERATOR_NAME = \'' . strtoupper($table_name) . "_GEN'"; -				$result = $this->db->sql_query($sql); - -				// does a generator exist? -				if ($row = $this->db->sql_fetchrow($result)) -				{ -					$statements[] = "DROP GENERATOR {$row['gen']};"; -				} -				$this->db->sql_freeresult($result); -			break; -  			case 'oracle':  				$sql = 'SELECT A.REFERENCED_NAME  					FROM USER_DEPENDENCIES A, USER_TRIGGERS B @@ -2125,7 +1996,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird':  			case 'postgres':  			case 'mysql_40':  			case 'mysql_41': @@ -2217,7 +2087,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird':  			case 'postgres':  			case 'oracle':  			case 'sqlite': @@ -2261,7 +2130,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird':  			case 'postgres':  			case 'oracle':  			case 'sqlite': @@ -2320,15 +2188,6 @@ class tools  		{  			switch ($this->sql_layer)  			{ -				case 'firebird': -					$sql = "SELECT LOWER(RDB\$INDEX_NAME) as index_name -						FROM RDB\$INDICES -						WHERE RDB\$RELATION_NAME = '" . strtoupper($table_name) . "' -							AND RDB\$UNIQUE_FLAG IS NULL -							AND RDB\$FOREIGN_KEY IS NULL"; -					$col = 'index_name'; -				break; -  				case 'postgres':  					$sql = "SELECT ic.relname as index_name  						FROM pg_class bc, pg_class ic, pg_index i @@ -2373,7 +2232,6 @@ class tools  				switch ($this->sql_layer)  				{ -					case 'firebird':  					case 'oracle':  					case 'postgres':  					case 'sqlite': @@ -2400,20 +2258,6 @@ class tools  		switch ($this->sql_layer)  		{ -			case 'firebird': -				// Change type... -				if (!empty($column_data['column_type_sql_default'])) -				{ -					$statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql_type']; -					$statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" SET DEFAULT ' . ' ' . $column_data['column_type_sql_default']; -				} -				else -				{ -					// TODO: try to change pkey without removing trigger, generator or constraints. ATM this query may fail. -					$statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql_type']; -				} -			break; -  			case 'mssql':  			case 'mssqlnative':  				// We need the data here diff --git a/phpBB/phpbb/search/fulltext_native.php b/phpBB/phpbb/search/fulltext_native.php index f7b1751a51..2fbff57990 100644 --- a/phpBB/phpbb/search/fulltext_native.php +++ b/phpBB/phpbb/search/fulltext_native.php @@ -1485,7 +1485,6 @@ class fulltext_native extends \phpbb\search\base  		{  			case 'sqlite':  			case 'sqlite3': -			case 'firebird':  				$this->db->sql_query('DELETE FROM ' . SEARCH_WORDLIST_TABLE);  				$this->db->sql_query('DELETE FROM ' . SEARCH_WORDMATCH_TABLE);  				$this->db->sql_query('DELETE FROM ' . SEARCH_RESULTS_TABLE);  | 
