浏览代码

Completion of [3668]: #1116 (and #1117): default values for ENUMs must always be expressed as strings.

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

+ 10 - 2
core/cmdbsource.class.inc.php

@@ -554,8 +554,16 @@ class CMDBSource
 		}
 		if (is_numeric($aFieldData["Default"]))
 		{
-			$default = $aFieldData["Default"] + 0; // Coerce to a numeric variable
-			$sRet .= ' DEFAULT '.self::Quote($default);
+			if (strtolower(substr($aFieldData["Type"], 0, 5)) == 'enum(')
+			{
+				// Force quotes to match the column declaration statement
+				$sRet .= ' DEFAULT '.self::Quote($aFieldData["Default"], true);
+			}
+			else
+			{
+				$default = $aFieldData["Default"] + 0; // Coerce to a numeric variable
+				$sRet .= ' DEFAULT '.self::Quote($default);
+			}
 		}
 		elseif (is_string($aFieldData["Default"]) == 'string')
 		{