Hi Openbravo developers,

I was just trying to add a new column named "ATTRSETVALUETYPE" to the
"M_PRODUCT" table with an onCreateDefault value and a check constraint (see
patch attached):

   - <column name="ATTRSETVALUETYPE" primaryKey="false" required="false"
   type="VARCHAR" size="60" autoIncrement="false">
           <default/>
           <onCreateDefault><![CDATA[CASE WHEN M_ATTRIBUTESETINSTANCE_ID IS
   NOT NULL THEN 'D' ELSE NULL END]]></onCreateDefault>
         </column>
   - <check
   name="M_PRODUCT_ATSETVALTYPE_CHK"><![CDATA[(M_ATTRIBUTESETINSTANCE_ID IS
   NULL) OR (ATTRSETVALUETYPE IS NOT NULL)]]></check>

The column is created but neither the onCreateDefault value nor the check
constraint are applied when I update.database. The check constraint fails
with error of constraint violation (since the onCreateDefault has not been
applied properly).

Surprisingly, if I start from scratch again (removing "ATTRSETVALUETYPE"
column from the database), remove the check constraint from the
M_PRODUCT.XML table file and run update.database, the onCreateDefault value
is properly applied. I add then the check constraint to the M_PRODUCT.XML
table file and run update.database again and the check constraint is now
properly applied.

Can someone explain this behaviour of dbSourceManager?

Thanks.
diff -r a59f8a6a5fb6 src-db/database/model/tables/M_PRODUCT.xml
--- a/src-db/database/model/tables/M_PRODUCT.xml	Thu Jan 21 12:10:49 2010 +0100
+++ b/src-db/database/model/tables/M_PRODUCT.xml	Tue Feb 02 23:42:10 2010 +0100
@@ -277,6 +277,10 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="ATTRSETVALUETYPE" primaryKey="false" required="false" type="VARCHAR" size="60" autoIncrement="false">
+        <default/>
+        <onCreateDefault><![CDATA[CASE WHEN M_ATTRIBUTESETINSTANCE_ID IS NOT NULL THEN 'D' ELSE NULL END]]></onCreateDefault>
+      </column>
       <foreign-key foreignTable="AD_ORG" name="AD_ORG_MPRODUCT">
         <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
       </foreign-key>
@@ -350,6 +354,7 @@
         <unique-column name="AD_CLIENT_ID"/>
         <unique-column name="VALUE"/>
       </unique>
+      <check name="M_PRODUCT_ATSETVALTYPE_CHK"><![CDATA[(M_ATTRIBUTESETINSTANCE_ID IS NULL) OR (ATTRSETVALUETYPE IS NOT NULL)]]></check>
       <check name="M_PRODUCT_DISCONTINUED_CHECK"><![CDATA[DISCONTINUED IN ('Y', 'N')]]></check>
       <check name="M_PRODUCT_ENFORCE_ATTRIBUT_CHK"><![CDATA[ENFORCE_ATTRIBUTE IN ('Y', 'N')]]></check>
       <check name="M_PRODUCT_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 'N')]]></check>
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Openbravo-development mailing list
Openbravo-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-development

Reply via email to