phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] CVS: phpgwapi/inc class.schema_proc_pgsql.inc.php,1.


From: Ralf Becker <address@hidden>
Subject: [Phpgroupware-cvs] CVS: phpgwapi/inc class.schema_proc_pgsql.inc.php,1.3,1.4
Date: Mon, 17 Mar 2003 19:05:09 -0500

Update of /cvsroot/phpgroupware/phpgwapi/inc
In directory subversions:/tmp/cvs-serv20334

Modified Files:
        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/phpgwapi/inc/class.schema_proc_pgsql.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** class.schema_proc_pgsql.inc.php     11 Apr 2002 14:12:34 -0000      1.3
--- class.schema_proc_pgsql.inc.php     18 Mar 2003 00:05:04 -0000      1.4
***************
*** 582,589 ****
                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));
                }
  
--- 582,616 ----
                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]