[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] phpgwapi/inc class.schema_proc_pgsql.inc.php [Version
From: |
Sigurd Nes |
Subject: |
[Phpgroupware-cvs] phpgwapi/inc class.schema_proc_pgsql.inc.php [Version-0_9_16-branch] |
Date: |
Mon, 20 Mar 2006 14:20:39 +0000 |
CVSROOT: /sources/phpgwapi
Module name: phpgwapi
Branch: Version-0_9_16-branch
Changes by: Sigurd Nes <address@hidden> 06/03/20 14:20:39
Modified files:
inc : class.schema_proc_pgsql.inc.php
Log message:
Restore 'RenameTable'
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/phpgwapi/inc/class.schema_proc_pgsql.inc.php.diff?only_with_tag=Version-0_9_16-branch&tr1=1.5.2.14&tr2=1.5.2.15&r1=text&r2=text
Patches:
Index: phpgwapi/inc/class.schema_proc_pgsql.inc.php
diff -u phpgwapi/inc/class.schema_proc_pgsql.inc.php:1.5.2.14
phpgwapi/inc/class.schema_proc_pgsql.inc.php:1.5.2.15
--- phpgwapi/inc/class.schema_proc_pgsql.inc.php:1.5.2.14 Mon Mar 20
13:52:57 2006
+++ phpgwapi/inc/class.schema_proc_pgsql.inc.php Mon Mar 20 14:20:39 2006
@@ -12,7 +12,7 @@
* @license http://www.fsf.org/licenses/gpl.html GNU General Public
License
* @package phpgwapi
* @subpackage database
- * @version $Id: class.schema_proc_pgsql.inc.php,v 1.5.2.14 2006/03/20
13:52:57 sigurdne Exp $
+ * @version $Id: class.schema_proc_pgsql.inc.php,v 1.5.2.15 2006/03/20
14:20:39 sigurdne Exp $
* @link http://www.greatbridge.org/project/phppgadmin
* @internal SQL for table properties taken from phpPgAdmin Version 2.2.1
*/
@@ -429,10 +429,45 @@
function RenameTable($oProc, &$aTables, $sOldTableName,
$sNewTableName)
{
global $DEBUG;
+ if ($DEBUG) { echo '<br>RenameTable(): Fetching old
sequence for: ' . $sOldTableName; }
+
$this->GetSequenceForTable($oProc,$sOldTableName,$sSequenceName);
+ if ($DEBUG) { echo ' - ' . $sSequenceName; }
+ if ($DEBUG) { echo '<br>RenameTable(): Fetching
sequence field for: ' . $sOldTableName; }
+
$this->GetSequenceFieldForTable($oProc,$sOldTableName,$sField);
+ if ($DEBUG) { echo ' - ' . $sField; }
- if ($DEBUG)
+ if ($sSequenceName)
+ {
+ $oProc->m_odb->query("SELECT last_value FROM
seq_$sOldTableName",__LINE__,__FILE__);
+ $oProc->m_odb->next_record();
+ $lastval = $oProc->m_odb->f(0);
+
+ if ($DEBUG) { echo '<br>RenameTable(): dropping
old sequence: ' . $sSequenceName . ' used on field: ' . $sField; }
+
$this->DropSequenceForTable($oProc,$sOldTableName);
+
+ if ($lastval)
+ {
+ $lastval = ' start ' . $lastval;
+ }
+
$this->GetSequenceSQL($sNewTableName,$sSequenceSQL);
+ if ($DEBUG) { echo '<br>RenameTable(): Making
new sequence using: ' . $sSequenceSQL . $lastval; }
+ $oProc->m_odb->query($sSequenceSQL .
$lastval,__LINE__,__FILE__);
+ if ($DEBUG) { echo '<br>RenameTable(): Altering
column default for: ' . $sField; }
+ $oProc->m_odb->query("ALTER TABLE
$sOldTableName ALTER $sField SET DEFAULT nextval('seq_" . $sNewTableName .
"')",__LINE__,__FILE__);
+ }
+
+ $indexnames = $oProc->m_odb->index_names();
+ while(list($key,$val) = @each($indexnames))
+ {
+ $indexes[] = $val['index_name'];
+ }
+ if(!in_array($sOldTableName . '_pkey',$indexes))
// no idea how this can happen
+ {
+ $oProc->m_odb->query("DROP INDEX " .
$sOldTableName . "_pkey",__LINE__,__FILE__);
+ }
+ else // rename the index
{
- echo '<br />RenameTable(): Renamed: ' .
$sOldTableName . 'to: ' . $sNewTableName;
+ $oProc->m_odb->query('ALTER TABLE
'.$sOldTableName.'_pkey RENAME TO '.$sNewTableName.'_pkey');
}
return !!($oProc->m_odb->query("ALTER TABLE
$sOldTableName RENAME TO $sNewTableName"));