mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-10 05:18:52 +00:00
- Tuples? Nah,
- Install works w/ Oracle - Got the queries in the database acp to conform to the CS - profile acp now creates the proper alter column statement depending on the dbal git-svn-id: file:///svn/phpbb/trunk@5842 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
b622c0f31a
commit
a279978718
5 changed files with 283 additions and 37 deletions
|
@ -36,6 +36,7 @@ class acp_database
|
|||
{
|
||||
// TODO: Check the cases of Oracle and Firebird ( they generate everything in uppercase )
|
||||
// The queries are ugly++, they must get some love so that they follow the CS
|
||||
// MSSQL and MSSQL-ODBC can be written in a nicer way, consider sp_help
|
||||
case 'backup':
|
||||
|
||||
switch ($action)
|
||||
|
@ -1398,7 +1399,9 @@ class acp_database
|
|||
|
||||
$text_flag = false;
|
||||
|
||||
$sql = "SELECT COLUMN_NAME, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') as IS_IDENTITY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table_name'";
|
||||
$sql = "SELECT COLUMN_NAME, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') as IS_IDENTITY
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_NAME = '$table_name'";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -1449,7 +1452,9 @@ class acp_database
|
|||
$sql_data .= "\nGO\n\n";
|
||||
$rows = array();
|
||||
|
||||
$sql = "SELECT CONSTRAINT_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = '$table_name'";
|
||||
$sql = "SELECT CONSTRAINT_NAME, COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
||||
WHERE TABLE_NAME = '$table_name'";
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
|
@ -1493,7 +1498,13 @@ class acp_database
|
|||
|
||||
$sql_data .= "\nCREATE TABLE $table_name (\n";
|
||||
|
||||
$sql = 'SELECT DISTINCT R.RDB$FIELD_NAME AS FNAME, R.RDB$NULL_FLAG AS NFLAG, R.RDB$DEFAULT_SOURCE AS DSOURCE, F.RDB$FIELD_TYPE AS FTYPE, F.RDB$FIELD_SUB_TYPE AS STYPE, F.RDB$FIELD_LENGTH AS FLEN FROM RDB$RELATION_FIELDS R JOIN RDB$FIELDS F ON R.RDB$FIELD_SOURCE=F.RDB$FIELD_NAME LEFT JOIN RDB$FIELD_DIMENSIONS D ON R.RDB$FIELD_SOURCE = D.RDB$FIELD_NAME WHERE F.RDB$SYSTEM_FLAG = 0 AND R.RDB$RELATION_NAME = \''. $table_name . '\' ORDER BY R.RDB$FIELD_POSITION';
|
||||
$sql = 'SELECT DISTINCT R.RDB$FIELD_NAME AS FNAME, R.RDB$NULL_FLAG AS NFLAG, R.RDB$DEFAULT_SOURCE AS DSOURCE, F.RDB$FIELD_TYPE AS FTYPE, F.RDB$FIELD_SUB_TYPE AS STYPE, F.RDB$FIELD_LENGTH AS FLEN
|
||||
FROM RDB$RELATION_FIELDS R
|
||||
JOIN RDB$FIELDS F ON R.RDB$FIELD_SOURCE=F.RDB$FIELD_NAME
|
||||
LEFT JOIN RDB$FIELD_DIMENSIONS D ON R.RDB$FIELD_SOURCE = D.RDB$FIELD_NAME
|
||||
WHERE F.RDB$SYSTEM_FLAG = 0
|
||||
AND R.RDB$RELATION_NAME = \''. $table_name . '\'
|
||||
ORDER BY R.RDB$FIELD_POSITION';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$rows = array();
|
||||
|
@ -1528,7 +1539,12 @@ class acp_database
|
|||
$sql_data .= "\n);;\n";
|
||||
$keys = array();
|
||||
|
||||
$sql = 'SELECT I.RDB$FIELD_NAME as NAME FROM RDB$RELATION_CONSTRAINTS RC, RDB$INDEX_SEGMENTS I, RDB$INDICES IDX WHERE (I.RDB$INDEX_NAME = RC.RDB$INDEX_NAME) AND (IDX.RDB$INDEX_NAME = RC.RDB$INDEX_NAME) AND (RC.RDB$RELATION_NAME = \''. $table_name . '\') ORDER BY I.RDB$FIELD_POSITION';
|
||||
$sql = 'SELECT I.RDB$FIELD_NAME as NAME
|
||||
FROM RDB$RELATION_CONSTRAINTS RC, RDB$INDEX_SEGMENTS I, RDB$INDICES IDX
|
||||
WHERE (I.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
|
||||
AND (IDX.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
|
||||
AND (RC.RDB$RELATION_NAME = \''. $table_name . '\')
|
||||
ORDER BY I.RDB$FIELD_POSITION';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -1543,7 +1559,13 @@ class acp_database
|
|||
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = 'SELECT I.RDB$INDEX_NAME AS INAME, I.RDB$UNIQUE_FLAG AS UFLAG, S.RDB$FIELD_NAME AS FNAME FROM RDB$INDICES I JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME=I.RDB$INDEX_NAME WHERE (I.RDB$SYSTEM_FLAG IS NULL OR I.RDB$SYSTEM_FLAG=0)AND I.RDB$FOREIGN_KEY IS NULL AND I.RDB$RELATION_NAME = \''. $table_name . '\' AND I.RDB$INDEX_NAME NOT STARTING WITH \'RDB$\' ORDER BY S.RDB$FIELD_POSITION';
|
||||
$sql = 'SELECT I.RDB$INDEX_NAME AS INAME, I.RDB$UNIQUE_FLAG AS UFLAG, S.RDB$FIELD_NAME AS FNAME
|
||||
FROM RDB$INDICES I JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME=I.RDB$INDEX_NAME
|
||||
WHERE (I.RDB$SYSTEM_FLAG IS NULL OR I.RDB$SYSTEM_FLAG=0)
|
||||
AND I.RDB$FOREIGN_KEY IS NULL
|
||||
AND I.RDB$RELATION_NAME = \''. $table_name . '\'
|
||||
AND I.RDB$INDEX_NAME NOT STARTING WITH \'RDB$\'
|
||||
ORDER BY S.RDB$FIELD_POSITION';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$index = array();
|
||||
|
@ -1566,11 +1588,31 @@ class acp_database
|
|||
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = 'SELECT D1.RDB$DEPENDENT_NAME as DNAME, D1.RDB$FIELD_NAME as FNAME, D1.RDB$DEPENDENT_TYPE, R1.RDB$RELATION_NAME FROM RDB$DEPENDENCIES D1 LEFT JOIN RDB$RELATIONS R1 ON ((D1.RDB$DEPENDENT_NAME = R1.RDB$RELATION_NAME) AND (NOT (R1.RDB$VIEW_BLR IS NULL))) WHERE (D1.RDB$DEPENDED_ON_TYPE = 0) AND (D1.RDB$DEPENDENT_TYPE <> 3) AND (D1.RDB$DEPENDED_ON_NAME = \'' . $table_name . '\') UNION SELECT DISTINCT F2.RDB$RELATION_NAME, D2.RDB$FIELD_NAME, D2.RDB$DEPENDENT_TYPE, R2.RDB$RELATION_NAME FROM RDB$DEPENDENCIES D2, RDB$RELATION_FIELDS F2 LEFT JOIN RDB$RELATIONS R2 ON ((F2.RDB$RELATION_NAME = R2.RDB$RELATION_NAME) AND (NOT (R2.RDB$VIEW_BLR IS NULL))) WHERE (D2.RDB$DEPENDENT_TYPE = 3) AND (D2.RDB$DEPENDENT_NAME = F2.RDB$FIELD_SOURCE) AND (D2.RDB$DEPENDED_ON_NAME = \'' . $table_name . '\') ORDER BY 1, 2';
|
||||
$sql = 'SELECT D1.RDB$DEPENDENT_NAME as DNAME, D1.RDB$FIELD_NAME as FNAME, D1.RDB$DEPENDENT_TYPE, R1.RDB$RELATION_NAME
|
||||
FROM RDB$DEPENDENCIES D1
|
||||
LEFT JOIN RDB$RELATIONS R1 ON ((D1.RDB$DEPENDENT_NAME = R1.RDB$RELATION_NAME) AND (NOT (R1.RDB$VIEW_BLR IS NULL)))
|
||||
WHERE (D1.RDB$DEPENDED_ON_TYPE = 0)
|
||||
AND (D1.RDB$DEPENDENT_TYPE <> 3)
|
||||
AND (D1.RDB$DEPENDED_ON_NAME = \'' . $table_name . '\')
|
||||
UNION SELECT DISTINCT F2.RDB$RELATION_NAME, D2.RDB$FIELD_NAME, D2.RDB$DEPENDENT_TYPE, R2.RDB$RELATION_NAME FROM RDB$DEPENDENCIES D2, RDB$RELATION_FIELDS F2
|
||||
LEFT JOIN RDB$RELATIONS R2 ON ((F2.RDB$RELATION_NAME = R2.RDB$RELATION_NAME) AND (NOT (R2.RDB$VIEW_BLR IS NULL)))
|
||||
WHERE (D2.RDB$DEPENDENT_TYPE = 3)
|
||||
AND (D2.RDB$DEPENDENT_NAME = F2.RDB$FIELD_SOURCE)
|
||||
AND (D2.RDB$DEPENDED_ON_NAME = \'' . $table_name . '\')
|
||||
ORDER BY 1, 2';
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$sql = 'SELECT T1.RDB$DEPENDED_ON_NAME AS GEN, T1.RDB$FIELD_NAME, T1.RDB$DEPENDED_ON_TYPE FROM RDB$DEPENDENCIES T1 WHERE (T1.RDB$DEPENDENT_NAME = \'' . $row['dname'] . '\') AND (T1.RDB$DEPENDENT_TYPE = 2 AND T1.RDB$DEPENDED_ON_TYPE = 14) UNION ALL SELECT DISTINCT D.RDB$DEPENDED_ON_NAME, D.RDB$FIELD_NAME, D.RDB$DEPENDED_ON_TYPE FROM RDB$DEPENDENCIES D, RDB$RELATION_FIELDS F WHERE (D.RDB$DEPENDENT_TYPE = 3) AND (D.RDB$DEPENDENT_NAME = F.RDB$FIELD_SOURCE) AND (F.RDB$RELATION_NAME = \'' . $row['dname'] . '\') ORDER BY 1,2';
|
||||
$sql = 'SELECT T1.RDB$DEPENDED_ON_NAME AS GEN, T1.RDB$FIELD_NAME, T1.RDB$DEPENDED_ON_TYPE
|
||||
FROM RDB$DEPENDENCIES T1
|
||||
WHERE (T1.RDB$DEPENDENT_NAME = \'' . $row['dname'] . '\')
|
||||
AND (T1.RDB$DEPENDENT_TYPE = 2 AND T1.RDB$DEPENDED_ON_TYPE = 14)
|
||||
UNION ALL SELECT DISTINCT D.RDB$DEPENDED_ON_NAME, D.RDB$FIELD_NAME, D.RDB$DEPENDED_ON_TYPE
|
||||
FROM RDB$DEPENDENCIES D, RDB$RELATION_FIELDS F
|
||||
WHERE (D.RDB$DEPENDENT_TYPE = 3)
|
||||
AND (D.RDB$DEPENDENT_NAME = F.RDB$FIELD_SOURCE)
|
||||
AND (F.RDB$RELATION_NAME = \'' . $row['dname'] . '\')
|
||||
ORDER BY 1,2';
|
||||
$result2 = $db->sql_query($sql);
|
||||
$row2 = $db->sql_fetchrow($result2);
|
||||
$db->sql_freeresult($result2);
|
||||
|
@ -1623,7 +1665,11 @@ class acp_database
|
|||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = "SELECT A.CONSTRAINT_NAME, A.COLUMN_NAME FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.CONSTRAINT_TYPE = 'P' AND A.TABLE_NAME = '{$table_name}'";
|
||||
$sql = "SELECT A.CONSTRAINT_NAME, A.COLUMN_NAME
|
||||
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
|
||||
WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
|
||||
AND B.CONSTRAINT_TYPE = 'P'
|
||||
AND A.TABLE_NAME = '{$table_name}'";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -1632,7 +1678,11 @@ class acp_database
|
|||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = "SELECT A.CONSTRAINT_NAME, A.COLUMN_NAME FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.CONSTRAINT_TYPE = 'U' AND A.TABLE_NAME = '{$table_name}'";
|
||||
$sql = "SELECT A.CONSTRAINT_NAME, A.COLUMN_NAME
|
||||
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
|
||||
WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
|
||||
AND B.CONSTRAINT_TYPE = 'U'
|
||||
AND A.TABLE_NAME = '{$table_name}'";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -1644,7 +1694,11 @@ class acp_database
|
|||
$sql_data .= implode(",\n", $rows);
|
||||
$sql_data .= "\n)\n\\";
|
||||
|
||||
$sql = "SELECT A.REFERENCED_NAME FROM USER_DEPENDENCIES A, USER_TRIGGERS B WHERE A.REFERENCED_TYPE = 'SEQUENCE' AND A.NAME = B.TRIGGER_NAME AND B. TABLE_NAME = '{$table_name}'";
|
||||
$sql = "SELECT A.REFERENCED_NAME
|
||||
FROM USER_DEPENDENCIES A, USER_TRIGGERS B
|
||||
WHERE A.REFERENCED_TYPE = 'SEQUENCE'
|
||||
AND A.NAME = B.TRIGGER_NAME
|
||||
AND B. TABLE_NAME = '{$table_name}'";
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
|
@ -1652,7 +1706,9 @@ class acp_database
|
|||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = "SELECT DESCRIPTION, WHEN_CLAUSE, TRIGGER_BODY FROM USER_TRIGGERS WHERE TABLE_NAME = '{$table_name}'";
|
||||
$sql = "SELECT DESCRIPTION, WHEN_CLAUSE, TRIGGER_BODY
|
||||
FROM USER_TRIGGERS
|
||||
WHERE TABLE_NAME = '{$table_name}'";
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
|
@ -1660,7 +1716,11 @@ class acp_database
|
|||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = "SELECT A.INDEX_NAME, B.COLUMN_NAME FROM USER_INDEXES A, USER_IND_COLUMNS B WHERE A.UNIQUENESS = 'NONUNIQUE' AND A.INDEX_NAME = B.INDEX_NAME AND B.TABLE_NAME = '{$table_name}'";
|
||||
$sql = "SELECT A.INDEX_NAME, B.COLUMN_NAME
|
||||
FROM USER_INDEXES A, USER_IND_COLUMNS B
|
||||
WHERE A.UNIQUENESS = 'NONUNIQUE'
|
||||
AND A.INDEX_NAME = B.INDEX_NAME
|
||||
AND B.TABLE_NAME = '{$table_name}'";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$index = array();
|
||||
|
|
|
@ -959,39 +959,217 @@ class acp_profile
|
|||
|
||||
if ($action == 'create')
|
||||
{
|
||||
/**
|
||||
* @todo Adjust for every database
|
||||
*/
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD $field_ident ";
|
||||
|
||||
switch ($field_type)
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR(255) ';
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD $field_ident ";
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR(255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR(10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "TEXT";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield INT(11) UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
$sql .= 'TINYINT(2) ';
|
||||
break;
|
||||
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'MEDIUMINT(8) ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'BIGINT(20) ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR(10) ';
|
||||
case 'sqlite':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD $field_ident ";
|
||||
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR(255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR(10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "TEXT(65535)";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield INT(11) UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
$sql .= 'TINYINT(2) ';
|
||||
break;
|
||||
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'MEDIUMINT(8) ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'BIGINT(20) ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "TEXT";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield INT(11) UNSIGNED";
|
||||
case 'mssql':
|
||||
case 'mssql_odbc':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE [' . PROFILE_DATA_TABLE . "] ADD $field_ident ";
|
||||
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' [VARCHAR] (255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= '[VARCHAR] (10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "[TEXT]";
|
||||
// ADD {$field_ident}_bbcode_uid [VARCHAR] (5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield [INT] UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= '[INT] ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= '[FLOAT] ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
$sql .= 'TINYINT(2) ';
|
||||
break;
|
||||
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'MEDIUMINT(8) ';
|
||||
case 'postgres':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD COLUMN $field_ident ";
|
||||
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR(255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR(10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "TEXT";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield INT4 UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
$sql .= 'INT2 ';
|
||||
break;
|
||||
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'INT4 ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'INT8 ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'BIGINT(20) ';
|
||||
case 'firebird':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD $field_ident ";
|
||||
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR(255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR(10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "BLOB SUB_TYPE TEXT";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield INTEGER UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'INTEGER ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'DOUBLE PRECISION ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
|
||||
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
|
||||
$sql = 'ALTER TABLE ' . PROFILE_DATA_TABLE . " ADD $field_ident ";
|
||||
switch ($field_type)
|
||||
{
|
||||
case FIELD_STRING:
|
||||
$sql .= ' VARCHAR2(255) ';
|
||||
break;
|
||||
|
||||
case FIELD_DATE:
|
||||
$sql .= 'VARCHAR2(10) ';
|
||||
break;
|
||||
|
||||
case FIELD_TEXT:
|
||||
$sql .= "CLOB";
|
||||
// ADD {$field_ident}_bbcode_uid VARCHAR2(5) NOT NULL,
|
||||
// ADD {$field_ident}_bbcode_bitfield NUMBER(11) UNSIGNED";
|
||||
break;
|
||||
|
||||
case FIELD_BOOL:
|
||||
$sql .= 'NUMBER(2) ';
|
||||
break;
|
||||
|
||||
case FIELD_DROPDOWN:
|
||||
$sql .= 'NUMBER(8) ';
|
||||
break;
|
||||
|
||||
case FIELD_INT:
|
||||
$sql .= 'NUMBER(20) ';
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ class dbal_postgres extends dbal
|
|||
*/
|
||||
function sql_affectedrows()
|
||||
{
|
||||
return ($this->query_result) ? @pg_cmdtuples($this->query_result) : false;
|
||||
return ($this->query_result) ? @pg_affected_rows($this->query_result) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1122,6 +1122,10 @@ if ($stage == 3)
|
|||
$sql_query = str_replace('module_name', '"module_name"', $sql_query);
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
remove_remarks($sql_query);
|
||||
break;
|
||||
|
||||
default:
|
||||
//$sql_query = preg_replace('#\# MSSQL IDENTITY (phpbb_[a-z_]+) (ON|OFF) \##s', '', $sql_query);
|
||||
}
|
||||
|
|
|
@ -935,6 +935,10 @@ class install_install extends module
|
|||
$sql_query = str_replace('module_name', '"module_name"', $sql_query);
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
remove_remarks($sql_query);
|
||||
break;
|
||||
|
||||
default:
|
||||
//$sql_query = preg_replace('#\# MSSQL IDENTITY (phpbb_[a-z_]+) (ON|OFF) \##s', '', $sql_query);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue