phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] CVS: setup/inc class.schema_proc_pgsql.inc.php,1.10.


From: Ralf Becker <address@hidden>
Subject: [Phpgroupware-cvs] CVS: setup/inc class.schema_proc_pgsql.inc.php,1.10.2.1,1.10.2.2
Date: Mon, 17 Mar 2003 19:02:13 -0500

Update of /cvsroot/phpgroupware/setup/inc
In directory subversions:/tmp/cvs-serv20164

Modified Files:
      Tag: Version-0_9_14-branch
        class.schema_proc_pgsql.inc.php 
Log Message:
fix for postgreSql's AddColumn, to allow to set a default and a not null 
contraint, they are not allowed in add column in pgSQL

Index: class.schema_proc_pgsql.inc.php
===================================================================
RCS file: 
/cvsroot/phpgroupware/setup/inc/Attic/class.schema_proc_pgsql.inc.php,v
retrieving revision 1.10.2.1
retrieving revision 1.10.2.2
diff -C2 -r1.10.2.1 -r1.10.2.2
*** class.schema_proc_pgsql.inc.php     11 Apr 2002 14:11:05 -0000      1.10.2.1
--- class.schema_proc_pgsql.inc.php     18 Mar 2003 00:02:11 -0000      1.10.2.2
***************
*** 579,586 ****
                function AddColumn($oProc, &$aTables, $sTableName, 
$sColumnName, &$aColumnDef)
                {
                        $oProc->_GetFieldSQL($aColumnDef, $sFieldSQL);
                        $query = "ALTER TABLE $sTableName ADD COLUMN 
$sColumnName $sFieldSQL";
  
!                       return !!($oProc->m_odb->query($query));
                }
  
--- 579,613 ----
                function AddColumn($oProc, &$aTables, $sTableName, 
$sColumnName, &$aColumnDef)
                {
+                       if (isset($aColumnDef['default']))      // pgsql cant 
add a colum with a default
+                       {
+                               $default = $aColumnDef['default'];
+                               unset($aColumnDef['default']);
+                       }
+                       if (isset($aColumnDef['nullable']) && 
!$aColumnDef['nullable']) // pgsql cant add a column not nullable
+                       {
+                               $notnull = !$aColumnDef['nullable'];
+                               unset($aColumnDef['nullable']);
+                       }
                        $oProc->_GetFieldSQL($aColumnDef, $sFieldSQL);
                        $query = "ALTER TABLE $sTableName ADD COLUMN 
$sColumnName $sFieldSQL";
  
!                       if (($Ok = !!($oProc->m_odb->query($query))) && 
isset($default))
!                       {
!                               $query = "ALTER TABLE $sTableName ALTER COLUMN 
$sColumnName SET DEFAULT '$default';\n";
! 
!                               $query .= "UPDATE $sTableName SET 
$sColumnName='$default';\n";
!                               
!                               $Ok = !!($oProc->m_odb->query($query));
! 
!                               if ($OK && $notnull)
!                               {
!                                       // unfortunally this is pgSQL >= 7.3
!                                       //$query .= "ALTER TABLE $sTableName 
ALTER COLUMN $sColumnName SET NOT NULL;\n";
!                                       //$Ok = 
!!($oProc->m_odb->query($query));
!                                       // so we do it the slow way
!                                       AlterColumn($oProc, $aTables, 
$sTableName, $sColumnName, $aColumnDef);
!                               }
!                       }
!                       return $Ok;
                }
  





reply via email to

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