diff options
Diffstat (limited to 'phpBB/phpbb/db/tools.php')
| -rw-r--r-- | phpBB/phpbb/db/tools.php | 502 | 
1 files changed, 258 insertions, 244 deletions
| diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index 492284ffcd..1f156fbb04 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -7,6 +7,8 @@  *  */ +namespace phpbb\db; +  /**  * @ignore  */ @@ -21,7 +23,7 @@ if (!defined('IN_PHPBB'))  *  * @package dbal  */ -class phpbb_db_tools +class tools  {  	/**  	* Current sql layer @@ -37,247 +39,257 @@ class phpbb_db_tools  	* The Column types for every database we support  	* @var array  	*/ -	var $dbms_type_map = array( -		'mysql_41'	=> array( -			'INT:'		=> 'int(%d)', -			'BINT'		=> 'bigint(20)', -			'UINT'		=> 'mediumint(8) UNSIGNED', -			'UINT:'		=> 'int(%d) UNSIGNED', -			'TINT:'		=> 'tinyint(%d)', -			'USINT'		=> 'smallint(4) UNSIGNED', -			'BOOL'		=> 'tinyint(1) UNSIGNED', -			'VCHAR'		=> 'varchar(255)', -			'VCHAR:'	=> 'varchar(%d)', -			'CHAR:'		=> 'char(%d)', -			'XSTEXT'	=> 'text', -			'XSTEXT_UNI'=> 'varchar(100)', -			'STEXT'		=> 'text', -			'STEXT_UNI'	=> 'varchar(255)', -			'TEXT'		=> 'text', -			'TEXT_UNI'	=> 'text', -			'MTEXT'		=> 'mediumtext', -			'MTEXT_UNI'	=> 'mediumtext', -			'TIMESTAMP'	=> 'int(11) UNSIGNED', -			'DECIMAL'	=> 'decimal(5,2)', -			'DECIMAL:'	=> 'decimal(%d,2)', -			'PDECIMAL'	=> 'decimal(6,3)', -			'PDECIMAL:'	=> 'decimal(%d,3)', -			'VCHAR_UNI'	=> 'varchar(255)', -			'VCHAR_UNI:'=> 'varchar(%d)', -			'VCHAR_CI'	=> 'varchar(255)', -			'VARBINARY'	=> 'varbinary(255)', -		), - -		'mysql_40'	=> array( -			'INT:'		=> 'int(%d)', -			'BINT'		=> 'bigint(20)', -			'UINT'		=> 'mediumint(8) UNSIGNED', -			'UINT:'		=> 'int(%d) UNSIGNED', -			'TINT:'		=> 'tinyint(%d)', -			'USINT'		=> 'smallint(4) UNSIGNED', -			'BOOL'		=> 'tinyint(1) UNSIGNED', -			'VCHAR'		=> 'varbinary(255)', -			'VCHAR:'	=> 'varbinary(%d)', -			'CHAR:'		=> 'binary(%d)', -			'XSTEXT'	=> 'blob', -			'XSTEXT_UNI'=> 'blob', -			'STEXT'		=> 'blob', -			'STEXT_UNI'	=> 'blob', -			'TEXT'		=> 'blob', -			'TEXT_UNI'	=> 'blob', -			'MTEXT'		=> 'mediumblob', -			'MTEXT_UNI'	=> 'mediumblob', -			'TIMESTAMP'	=> 'int(11) UNSIGNED', -			'DECIMAL'	=> 'decimal(5,2)', -			'DECIMAL:'	=> 'decimal(%d,2)', -			'PDECIMAL'	=> 'decimal(6,3)', -			'PDECIMAL:'	=> 'decimal(%d,3)', -			'VCHAR_UNI'	=> 'blob', -			'VCHAR_UNI:'=> array('varbinary(%d)', 'limit' => array('mult', 3, 255, 'blob')), -			'VCHAR_CI'	=> 'blob', -			'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]', -			'UINT'		=> '[int]', -			'UINT:'		=> '[int]', -			'TINT:'		=> '[int]', -			'USINT'		=> '[int]', -			'BOOL'		=> '[int]', -			'VCHAR'		=> '[varchar] (255)', -			'VCHAR:'	=> '[varchar] (%d)', -			'CHAR:'		=> '[char] (%d)', -			'XSTEXT'	=> '[varchar] (1000)', -			'STEXT'		=> '[varchar] (3000)', -			'TEXT'		=> '[varchar] (8000)', -			'MTEXT'		=> '[text]', -			'XSTEXT_UNI'=> '[varchar] (100)', -			'STEXT_UNI'	=> '[varchar] (255)', -			'TEXT_UNI'	=> '[varchar] (4000)', -			'MTEXT_UNI'	=> '[text]', -			'TIMESTAMP'	=> '[int]', -			'DECIMAL'	=> '[float]', -			'DECIMAL:'	=> '[float]', -			'PDECIMAL'	=> '[float]', -			'PDECIMAL:'	=> '[float]', -			'VCHAR_UNI'	=> '[varchar] (255)', -			'VCHAR_UNI:'=> '[varchar] (%d)', -			'VCHAR_CI'	=> '[varchar] (255)', -			'VARBINARY'	=> '[varchar] (255)', -		), - -		'mssqlnative'	=> array( -			'INT:'		=> '[int]', -			'BINT'		=> '[float]', -			'UINT'		=> '[int]', -			'UINT:'		=> '[int]', -			'TINT:'		=> '[int]', -			'USINT'		=> '[int]', -			'BOOL'		=> '[int]', -			'VCHAR'		=> '[varchar] (255)', -			'VCHAR:'	=> '[varchar] (%d)', -			'CHAR:'		=> '[char] (%d)', -			'XSTEXT'	=> '[varchar] (1000)', -			'STEXT'		=> '[varchar] (3000)', -			'TEXT'		=> '[varchar] (8000)', -			'MTEXT'		=> '[text]', -			'XSTEXT_UNI'=> '[varchar] (100)', -			'STEXT_UNI'	=> '[varchar] (255)', -			'TEXT_UNI'	=> '[varchar] (4000)', -			'MTEXT_UNI'	=> '[text]', -			'TIMESTAMP'	=> '[int]', -			'DECIMAL'	=> '[float]', -			'DECIMAL:'	=> '[float]', -			'PDECIMAL'	=> '[float]', -			'PDECIMAL:'	=> '[float]', -			'VCHAR_UNI'	=> '[varchar] (255)', -			'VCHAR_UNI:'=> '[varchar] (%d)', -			'VCHAR_CI'	=> '[varchar] (255)', -			'VARBINARY'	=> '[varchar] (255)', -		), - -		'oracle'	=> array( -			'INT:'		=> 'number(%d)', -			'BINT'		=> 'number(20)', -			'UINT'		=> 'number(8)', -			'UINT:'		=> 'number(%d)', -			'TINT:'		=> 'number(%d)', -			'USINT'		=> 'number(4)', -			'BOOL'		=> 'number(1)', -			'VCHAR'		=> 'varchar2(255)', -			'VCHAR:'	=> 'varchar2(%d)', -			'CHAR:'		=> 'char(%d)', -			'XSTEXT'	=> 'varchar2(1000)', -			'STEXT'		=> 'varchar2(3000)', -			'TEXT'		=> 'clob', -			'MTEXT'		=> 'clob', -			'XSTEXT_UNI'=> 'varchar2(300)', -			'STEXT_UNI'	=> 'varchar2(765)', -			'TEXT_UNI'	=> 'clob', -			'MTEXT_UNI'	=> 'clob', -			'TIMESTAMP'	=> 'number(11)', -			'DECIMAL'	=> 'number(5, 2)', -			'DECIMAL:'	=> 'number(%d, 2)', -			'PDECIMAL'	=> 'number(6, 3)', -			'PDECIMAL:'	=> 'number(%d, 3)', -			'VCHAR_UNI'	=> 'varchar2(765)', -			'VCHAR_UNI:'=> array('varchar2(%d)', 'limit' => array('mult', 3, 765, 'clob')), -			'VCHAR_CI'	=> 'varchar2(255)', -			'VARBINARY'	=> 'raw(255)', -		), - -		'sqlite'	=> array( -			'INT:'		=> 'int(%d)', -			'BINT'		=> 'bigint(20)', -			'UINT'		=> 'INTEGER UNSIGNED', //'mediumint(8) UNSIGNED', -			'UINT:'		=> 'INTEGER UNSIGNED', // 'int(%d) UNSIGNED', -			'TINT:'		=> 'tinyint(%d)', -			'USINT'		=> 'INTEGER UNSIGNED', //'mediumint(4) UNSIGNED', -			'BOOL'		=> 'INTEGER UNSIGNED', //'tinyint(1) UNSIGNED', -			'VCHAR'		=> 'varchar(255)', -			'VCHAR:'	=> 'varchar(%d)', -			'CHAR:'		=> 'char(%d)', -			'XSTEXT'	=> 'text(65535)', -			'STEXT'		=> 'text(65535)', -			'TEXT'		=> 'text(65535)', -			'MTEXT'		=> 'mediumtext(16777215)', -			'XSTEXT_UNI'=> 'text(65535)', -			'STEXT_UNI'	=> 'text(65535)', -			'TEXT_UNI'	=> 'text(65535)', -			'MTEXT_UNI'	=> 'mediumtext(16777215)', -			'TIMESTAMP'	=> 'INTEGER UNSIGNED', //'int(11) UNSIGNED', -			'DECIMAL'	=> 'decimal(5,2)', -			'DECIMAL:'	=> 'decimal(%d,2)', -			'PDECIMAL'	=> 'decimal(6,3)', -			'PDECIMAL:'	=> 'decimal(%d,3)', -			'VCHAR_UNI'	=> 'varchar(255)', -			'VCHAR_UNI:'=> 'varchar(%d)', -			'VCHAR_CI'	=> 'varchar(255)', -			'VARBINARY'	=> 'blob', -		), - -		'postgres'	=> array( -			'INT:'		=> 'INT4', -			'BINT'		=> 'INT8', -			'UINT'		=> 'INT4', // unsigned -			'UINT:'		=> 'INT4', // unsigned -			'USINT'		=> 'INT2', // unsigned -			'BOOL'		=> 'INT2', // unsigned -			'TINT:'		=> 'INT2', -			'VCHAR'		=> 'varchar(255)', -			'VCHAR:'	=> 'varchar(%d)', -			'CHAR:'		=> 'char(%d)', -			'XSTEXT'	=> 'varchar(1000)', -			'STEXT'		=> 'varchar(3000)', -			'TEXT'		=> 'varchar(8000)', -			'MTEXT'		=> 'TEXT', -			'XSTEXT_UNI'=> 'varchar(100)', -			'STEXT_UNI'	=> 'varchar(255)', -			'TEXT_UNI'	=> 'varchar(4000)', -			'MTEXT_UNI'	=> 'TEXT', -			'TIMESTAMP'	=> 'INT4', // unsigned -			'DECIMAL'	=> 'decimal(5,2)', -			'DECIMAL:'	=> 'decimal(%d,2)', -			'PDECIMAL'	=> 'decimal(6,3)', -			'PDECIMAL:'	=> 'decimal(%d,3)', -			'VCHAR_UNI'	=> 'varchar(255)', -			'VCHAR_UNI:'=> 'varchar(%d)', -			'VCHAR_CI'	=> 'varchar_ci', -			'VARBINARY'	=> 'bytea', -		), -	); +	var $dbms_type_map = array(); + +	/** +	* Get the column types for every database we support +	* +	* @return array +	*/ +	public static function get_dbms_type_map() +	{ +		return array( +			'mysql_41'	=> array( +				'INT:'		=> 'int(%d)', +				'BINT'		=> 'bigint(20)', +				'UINT'		=> 'mediumint(8) UNSIGNED', +				'UINT:'		=> 'int(%d) UNSIGNED', +				'TINT:'		=> 'tinyint(%d)', +				'USINT'		=> 'smallint(4) UNSIGNED', +				'BOOL'		=> 'tinyint(1) UNSIGNED', +				'VCHAR'		=> 'varchar(255)', +				'VCHAR:'	=> 'varchar(%d)', +				'CHAR:'		=> 'char(%d)', +				'XSTEXT'	=> 'text', +				'XSTEXT_UNI'=> 'varchar(100)', +				'STEXT'		=> 'text', +				'STEXT_UNI'	=> 'varchar(255)', +				'TEXT'		=> 'text', +				'TEXT_UNI'	=> 'text', +				'MTEXT'		=> 'mediumtext', +				'MTEXT_UNI'	=> 'mediumtext', +				'TIMESTAMP'	=> 'int(11) UNSIGNED', +				'DECIMAL'	=> 'decimal(5,2)', +				'DECIMAL:'	=> 'decimal(%d,2)', +				'PDECIMAL'	=> 'decimal(6,3)', +				'PDECIMAL:'	=> 'decimal(%d,3)', +				'VCHAR_UNI'	=> 'varchar(255)', +				'VCHAR_UNI:'=> 'varchar(%d)', +				'VCHAR_CI'	=> 'varchar(255)', +				'VARBINARY'	=> 'varbinary(255)', +			), + +			'mysql_40'	=> array( +				'INT:'		=> 'int(%d)', +				'BINT'		=> 'bigint(20)', +				'UINT'		=> 'mediumint(8) UNSIGNED', +				'UINT:'		=> 'int(%d) UNSIGNED', +				'TINT:'		=> 'tinyint(%d)', +				'USINT'		=> 'smallint(4) UNSIGNED', +				'BOOL'		=> 'tinyint(1) UNSIGNED', +				'VCHAR'		=> 'varbinary(255)', +				'VCHAR:'	=> 'varbinary(%d)', +				'CHAR:'		=> 'binary(%d)', +				'XSTEXT'	=> 'blob', +				'XSTEXT_UNI'=> 'blob', +				'STEXT'		=> 'blob', +				'STEXT_UNI'	=> 'blob', +				'TEXT'		=> 'blob', +				'TEXT_UNI'	=> 'blob', +				'MTEXT'		=> 'mediumblob', +				'MTEXT_UNI'	=> 'mediumblob', +				'TIMESTAMP'	=> 'int(11) UNSIGNED', +				'DECIMAL'	=> 'decimal(5,2)', +				'DECIMAL:'	=> 'decimal(%d,2)', +				'PDECIMAL'	=> 'decimal(6,3)', +				'PDECIMAL:'	=> 'decimal(%d,3)', +				'VCHAR_UNI'	=> 'blob', +				'VCHAR_UNI:'=> array('varbinary(%d)', 'limit' => array('mult', 3, 255, 'blob')), +				'VCHAR_CI'	=> 'blob', +				'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]', +				'UINT'		=> '[int]', +				'UINT:'		=> '[int]', +				'TINT:'		=> '[int]', +				'USINT'		=> '[int]', +				'BOOL'		=> '[int]', +				'VCHAR'		=> '[varchar] (255)', +				'VCHAR:'	=> '[varchar] (%d)', +				'CHAR:'		=> '[char] (%d)', +				'XSTEXT'	=> '[varchar] (1000)', +				'STEXT'		=> '[varchar] (3000)', +				'TEXT'		=> '[varchar] (8000)', +				'MTEXT'		=> '[text]', +				'XSTEXT_UNI'=> '[varchar] (100)', +				'STEXT_UNI'	=> '[varchar] (255)', +				'TEXT_UNI'	=> '[varchar] (4000)', +				'MTEXT_UNI'	=> '[text]', +				'TIMESTAMP'	=> '[int]', +				'DECIMAL'	=> '[float]', +				'DECIMAL:'	=> '[float]', +				'PDECIMAL'	=> '[float]', +				'PDECIMAL:'	=> '[float]', +				'VCHAR_UNI'	=> '[varchar] (255)', +				'VCHAR_UNI:'=> '[varchar] (%d)', +				'VCHAR_CI'	=> '[varchar] (255)', +				'VARBINARY'	=> '[varchar] (255)', +			), + +			'mssqlnative'	=> array( +				'INT:'		=> '[int]', +				'BINT'		=> '[float]', +				'UINT'		=> '[int]', +				'UINT:'		=> '[int]', +				'TINT:'		=> '[int]', +				'USINT'		=> '[int]', +				'BOOL'		=> '[int]', +				'VCHAR'		=> '[varchar] (255)', +				'VCHAR:'	=> '[varchar] (%d)', +				'CHAR:'		=> '[char] (%d)', +				'XSTEXT'	=> '[varchar] (1000)', +				'STEXT'		=> '[varchar] (3000)', +				'TEXT'		=> '[varchar] (8000)', +				'MTEXT'		=> '[text]', +				'XSTEXT_UNI'=> '[varchar] (100)', +				'STEXT_UNI'	=> '[varchar] (255)', +				'TEXT_UNI'	=> '[varchar] (4000)', +				'MTEXT_UNI'	=> '[text]', +				'TIMESTAMP'	=> '[int]', +				'DECIMAL'	=> '[float]', +				'DECIMAL:'	=> '[float]', +				'PDECIMAL'	=> '[float]', +				'PDECIMAL:'	=> '[float]', +				'VCHAR_UNI'	=> '[varchar] (255)', +				'VCHAR_UNI:'=> '[varchar] (%d)', +				'VCHAR_CI'	=> '[varchar] (255)', +				'VARBINARY'	=> '[varchar] (255)', +			), + +			'oracle'	=> array( +				'INT:'		=> 'number(%d)', +				'BINT'		=> 'number(20)', +				'UINT'		=> 'number(8)', +				'UINT:'		=> 'number(%d)', +				'TINT:'		=> 'number(%d)', +				'USINT'		=> 'number(4)', +				'BOOL'		=> 'number(1)', +				'VCHAR'		=> 'varchar2(255)', +				'VCHAR:'	=> 'varchar2(%d)', +				'CHAR:'		=> 'char(%d)', +				'XSTEXT'	=> 'varchar2(1000)', +				'STEXT'		=> 'varchar2(3000)', +				'TEXT'		=> 'clob', +				'MTEXT'		=> 'clob', +				'XSTEXT_UNI'=> 'varchar2(300)', +				'STEXT_UNI'	=> 'varchar2(765)', +				'TEXT_UNI'	=> 'clob', +				'MTEXT_UNI'	=> 'clob', +				'TIMESTAMP'	=> 'number(11)', +				'DECIMAL'	=> 'number(5, 2)', +				'DECIMAL:'	=> 'number(%d, 2)', +				'PDECIMAL'	=> 'number(6, 3)', +				'PDECIMAL:'	=> 'number(%d, 3)', +				'VCHAR_UNI'	=> 'varchar2(765)', +				'VCHAR_UNI:'=> array('varchar2(%d)', 'limit' => array('mult', 3, 765, 'clob')), +				'VCHAR_CI'	=> 'varchar2(255)', +				'VARBINARY'	=> 'raw(255)', +			), + +			'sqlite'	=> array( +				'INT:'		=> 'int(%d)', +				'BINT'		=> 'bigint(20)', +				'UINT'		=> 'INTEGER UNSIGNED', //'mediumint(8) UNSIGNED', +				'UINT:'		=> 'INTEGER UNSIGNED', // 'int(%d) UNSIGNED', +				'TINT:'		=> 'tinyint(%d)', +				'USINT'		=> 'INTEGER UNSIGNED', //'mediumint(4) UNSIGNED', +				'BOOL'		=> 'INTEGER UNSIGNED', //'tinyint(1) UNSIGNED', +				'VCHAR'		=> 'varchar(255)', +				'VCHAR:'	=> 'varchar(%d)', +				'CHAR:'		=> 'char(%d)', +				'XSTEXT'	=> 'text(65535)', +				'STEXT'		=> 'text(65535)', +				'TEXT'		=> 'text(65535)', +				'MTEXT'		=> 'mediumtext(16777215)', +				'XSTEXT_UNI'=> 'text(65535)', +				'STEXT_UNI'	=> 'text(65535)', +				'TEXT_UNI'	=> 'text(65535)', +				'MTEXT_UNI'	=> 'mediumtext(16777215)', +				'TIMESTAMP'	=> 'INTEGER UNSIGNED', //'int(11) UNSIGNED', +				'DECIMAL'	=> 'decimal(5,2)', +				'DECIMAL:'	=> 'decimal(%d,2)', +				'PDECIMAL'	=> 'decimal(6,3)', +				'PDECIMAL:'	=> 'decimal(%d,3)', +				'VCHAR_UNI'	=> 'varchar(255)', +				'VCHAR_UNI:'=> 'varchar(%d)', +				'VCHAR_CI'	=> 'varchar(255)', +				'VARBINARY'	=> 'blob', +			), + +			'postgres'	=> array( +				'INT:'		=> 'INT4', +				'BINT'		=> 'INT8', +				'UINT'		=> 'INT4', // unsigned +				'UINT:'		=> 'INT4', // unsigned +				'USINT'		=> 'INT2', // unsigned +				'BOOL'		=> 'INT2', // unsigned +				'TINT:'		=> 'INT2', +				'VCHAR'		=> 'varchar(255)', +				'VCHAR:'	=> 'varchar(%d)', +				'CHAR:'		=> 'char(%d)', +				'XSTEXT'	=> 'varchar(1000)', +				'STEXT'		=> 'varchar(3000)', +				'TEXT'		=> 'varchar(8000)', +				'MTEXT'		=> 'TEXT', +				'XSTEXT_UNI'=> 'varchar(100)', +				'STEXT_UNI'	=> 'varchar(255)', +				'TEXT_UNI'	=> 'varchar(4000)', +				'MTEXT_UNI'	=> 'TEXT', +				'TIMESTAMP'	=> 'INT4', // unsigned +				'DECIMAL'	=> 'decimal(5,2)', +				'DECIMAL:'	=> 'decimal(%d,2)', +				'PDECIMAL'	=> 'decimal(6,3)', +				'PDECIMAL:'	=> 'decimal(%d,3)', +				'VCHAR_UNI'	=> 'varchar(255)', +				'VCHAR_UNI:'=> 'varchar(%d)', +				'VCHAR_CI'	=> 'varchar_ci', +				'VARBINARY'	=> 'bytea', +			), +		); +	}  	/**  	* A list of types being unsigned for better reference in some db's @@ -300,14 +312,16 @@ class phpbb_db_tools  	/**  	* Constructor. Set DB Object and set {@link $return_statements return_statements}.  	* -	* @param phpbb_db_driver	$db					Database connection +	* @param \phpbb\db\driver\driver	$db					Database connection  	* @param bool		$return_statements	True if only statements should be returned and no SQL being executed  	*/ -	public function __construct(phpbb_db_driver $db, $return_statements = false) +	public function __construct(\phpbb\db\driver\driver $db, $return_statements = false)  	{  		$this->db = $db;  		$this->return_statements = $return_statements; +		$this->dbms_type_map = self::get_dbms_type_map(); +  		// Determine mapping database type  		switch ($this->db->sql_layer)  		{ | 
