Преглед изворни кода

HPCC-12129 Support default values for bitfield fields

Create a constant of the default base type instead.

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday пре 10 година
родитељ
комит
ea0313559a
1 измењених фајлова са 5 додато и 1 уклоњено
  1. 5 1
      ecl/hqlcpp/hqlhtcpp.cpp

+ 5 - 1
ecl/hqlcpp/hqlhtcpp.cpp

@@ -3610,8 +3610,12 @@ unsigned HqlCppTranslator::buildRtlField(StringBuffer * instanceName, IHqlExpres
         IHqlExpression *defaultValue = queryAttributeChild(field, defaultAtom, 0);
         IHqlExpression *defaultValue = queryAttributeChild(field, defaultAtom, 0);
         if (defaultValue)
         if (defaultValue)
         {
         {
+            LinkedHqlExpr targetField = field;
+            if (fieldType->getTypeCode() == type_bitfield)
+                targetField.setown(createField(field->queryId(), LINK(fieldType->queryChildType()), NULL));
+
             MemoryBuffer target;
             MemoryBuffer target;
-            if (createConstantField(target, field, defaultValue))
+            if (createConstantField(target, targetField, defaultValue))
                 appendStringAsQuotedCPP(defaultInitializer, target.length(), target.toByteArray(), false);
                 appendStringAsQuotedCPP(defaultInitializer, target.length(), target.toByteArray(), false);
             else
             else
                 throwError1(HQLERR_CouldNotGenerateDefault, field->queryName()->str());
                 throwError1(HQLERR_CouldNotGenerateDefault, field->queryName()->str());