浏览代码

#1069 (continuation of commit 3558) There may be some null values in the Database, making it impossible to upgrade. Defining a default value is far enough for external keys and hierarchical keys. Furthermore, this will be less time consuming during the setup (no need for table scans)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3569 a333f486-631f-4898-b8df-5754b55c2be0
romainq 10 年之前
父节点
当前提交
62ad0e8e0b
共有 1 个文件被更改,包括 12 次插入12 次删除
  1. 12 12
      core/attributedef.class.inc.php

+ 12 - 12
core/attributedef.class.inc.php

@@ -1067,11 +1067,11 @@ class AttributeDBFieldVoid extends AttributeDefinition
 			{
 				// Though it is a string in PHP, it will be considered as a numeric value in MySQL
 				// Then it must not be quoted here, to preserve the compatibility with the value returned by CMDBSource::GetFieldSpec
-				$sRet = " NOT NULL DEFAULT $default";
+				$sRet = " DEFAULT $default";
 			}
 			else
 			{
-				$sRet = " NOT NULL DEFAULT ".CMDBSource::Quote($default);
+				$sRet = " DEFAULT ".CMDBSource::Quote($default);
 			}
 		}
 		return $sRet;
@@ -1269,7 +1269,7 @@ class AttributeObjectKey extends AttributeDBFieldVoid
 	}
 
 	public function GetEditClass() {return "String";}
-	protected function GetSQLCol($bFullSpec = false) {return "INT(11)".($bFullSpec ? " NOT NULL DEFAULT 0" : "");}
+	protected function GetSQLCol($bFullSpec = false) {return "INT(11)".($bFullSpec ? " DEFAULT 0" : "");}
 
 	public function GetDefaultValue() {return 0;}
 	public function IsNullAllowed()
@@ -1857,7 +1857,7 @@ class AttributeEncryptedString extends AttributeString
 	}
 	
 
-	protected function GetSQLCol($bFullSpec = false) {return "TINYBLOB".($bFullSpec ? " NOT NULL" : "");}	
+	protected function GetSQLCol($bFullSpec = false) {return "TINYBLOB";}	
 
 	public function GetMaxSize()
 	{
@@ -1917,7 +1917,7 @@ define('WIKI_OBJECT_REGEXP', '/\[\[(.+):(.+)\]\]/U');
 class AttributeText extends AttributeString
 {
 	public function GetEditClass() {return "Text";}
-	protected function GetSQLCol($bFullSpec = false) {return "TEXT".($bFullSpec ? " NOT NULL" : "");}
+	protected function GetSQLCol($bFullSpec = false) {return "TEXT";}
 
 	public function GetMaxSize()
 	{
@@ -2063,7 +2063,7 @@ class AttributeText extends AttributeString
  */
 class AttributeLongText extends AttributeText
 {
-	protected function GetSQLCol($bFullSpec = false) {return "LONGTEXT".($bFullSpec ? " NOT NULL" : "");}
+	protected function GetSQLCol($bFullSpec = false) {return "LONGTEXT";}
 
 	public function GetMaxSize()
 	{
@@ -2482,7 +2482,7 @@ class AttributeEnum extends AttributeString
 		}
 		else
 		{
-			return "VARCHAR(255)".($bFullSpec ? " NOT NULL DEFAULT ''" : ""); // ENUM() is not an allowed syntax!
+			return "VARCHAR(255)".($bFullSpec ? " DEFAULT ''" : ""); // ENUM() is not an allowed syntax!
 		}
 	}
 
@@ -3123,7 +3123,7 @@ class AttributeExternalKey extends AttributeDBFieldVoid
 	}
 
 	public function GetEditClass() {return "ExtKey";}
-	protected function GetSQLCol($bFullSpec = false) {return "INT(11)".($bFullSpec ? " NOT NULL DEFAULT 0" : "");}
+	protected function GetSQLCol($bFullSpec = false) {return "INT(11)".($bFullSpec ? " DEFAULT 0" : "");}
 	public function RequiresIndex()
 	{
 		return true;
@@ -3307,9 +3307,9 @@ class AttributeHierarchicalKey extends AttributeExternalKey
 	public function GetSQLColumns($bFullSpec = false)
 	{
 		$aColumns = array();
-		$aColumns[$this->GetCode()] = 'INT(11)'.($bFullSpec ? ' NOT NULL DEFAULT 0' : '');
-		$aColumns[$this->GetSQLLeft()] = 'INT(11)'.($bFullSpec ? ' NOT NULL DEFAULT 0' : '');
-		$aColumns[$this->GetSQLRight()] = 'INT(11)'.($bFullSpec ? ' NOT NULL DEFAULT 0' : '');
+		$aColumns[$this->GetCode()] = 'INT(11)'.($bFullSpec ? ' DEFAULT 0' : '');
+		$aColumns[$this->GetSQLLeft()] = 'INT(11)'.($bFullSpec ? ' DEFAULT 0' : '');
+		$aColumns[$this->GetSQLRight()] = 'INT(11)'.($bFullSpec ? ' DEFAULT 0' : '');
 		return $aColumns;
 	}
 	public function GetSQLRight()
@@ -4780,7 +4780,7 @@ class AttributeOneWayPassword extends AttributeDefinition
 class AttributeTable extends AttributeDBField
 {
 	public function GetEditClass() {return "Table";}
-	protected function GetSQLCol($bFullSpec = false) {return "LONGTEXT".($bFullSpec ? " NOT NULL" : "");}
+	protected function GetSQLCol($bFullSpec = false) {return "LONGTEXT";}
 
 	public function GetMaxSize()
 	{