phpgroupware-cvs
[Top][All Lists]
Advanced

[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"));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]