浏览代码

HPCC-9465 Fix various issues picked up in the code review

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 12 年之前
父节点
当前提交
b046a6e79d

+ 1 - 1
common/fileview2/fvtransform.cpp

@@ -431,7 +431,7 @@ ViewFieldTransformer * find(const ViewFieldTransformerArray & transformers, cons
 {
     if (!name)
         return NULL;
-    IIdAtom * search = createIdentifierAtom(name);
+    IIdAtom * search = createIdAtom(name);
     ForEachItemIn(i, transformers)
     {
         ViewFieldTransformer & cur = transformers.item(i);

+ 8 - 8
common/fileview2/fvwugen.cpp

@@ -45,8 +45,8 @@ IAtom * insertedAtom;
 
 MODULE_INIT(INIT_PRIORITY_STANDARD)
 {
-    fileposId = createIdentifierAtom("__filepos__");
-    recordlenName = createIdentifierAtom("__recordlen__");
+    fileposId = createIdAtom("__filepos__");
+    recordlenName = createIdAtom("__recordlen__");
     insertedAtom = createLowerCaseAtom("inserted");
     return true;
 }
@@ -55,14 +55,14 @@ IHqlExpression * addFilter(IHqlExpression * dataset, IHqlExpression * limitField
 {
     IHqlExpression * lower = createConstant(limitField->queryType()->castFrom(true, (__int64)0));
     lower = createValue(no_colon, lower, createValue(no_stored, createConstant(LOWER_LIMIT_ID)));
-    lower = createSymbol(createIdentifierAtom(LOWER_LIMIT_ID), lower, ob_private);
+    lower = createSymbol(createIdAtom(LOWER_LIMIT_ID), lower, ob_private);
     dataset = createDataset(no_filter, LINK(dataset), createBoolExpr(no_ge, LINK(limitField), lower));
 
     IHqlExpression * upper = createConstant((int)DISKREAD_PAGE_SIZE);
     upper = createValue(no_colon, upper, createValue(no_stored, createConstant(RECORD_LIMIT_ID)));
-    upper = createSymbol(createIdentifierAtom(RECORD_LIMIT_ID), upper, ob_private);
+    upper = createSymbol(createIdAtom(RECORD_LIMIT_ID), upper, ob_private);
     dataset = createDataset(no_choosen, dataset, upper);
-    dataset = createSymbol(createIdentifierAtom("_Filtered_"), dataset, ob_private);
+    dataset = createSymbol(createIdAtom("_Filtered_"), dataset, ob_private);
     return dataset;
 }
 
@@ -79,7 +79,7 @@ IHqlExpression * addSimplifyProject(IHqlExpression * dataset)
     if (!projectRecord)
         return LINK(dataset);
 
-    projectRecord = createSymbol(createIdentifierAtom("_TargetRecord_"), projectRecord, ob_private);
+    projectRecord = createSymbol(createIdAtom("_TargetRecord_"), projectRecord, ob_private);
     return createDataset(no_newusertable, LINK(dataset), createComma(projectRecord, getSimplifiedTransform(projectRecord, record, dataset)));
 }
 
@@ -88,7 +88,7 @@ IHqlExpression * addSimplifyProject(IHqlExpression * dataset)
 
 IHqlExpression * buildWorkUnitViewerEcl(IHqlExpression * record, const char * wuid, unsigned sequence, const char * name)
 {
-    OwnedHqlExpr newRecord = createSymbol(createIdentifierAtom("_SourceRecord_"), LINK(record), ob_private);
+    OwnedHqlExpr newRecord = createSymbol(createIdAtom("_SourceRecord_"), LINK(record), ob_private);
     IHqlExpression * arg = name ? createConstant(name) : createConstant((int)sequence);
     OwnedHqlExpr dataset = createDataset(no_workunit_dataset, newRecord.getLink(), createComma(createConstant(wuid), arg));
     OwnedHqlExpr projected = addSimplifyProject(dataset);
@@ -110,7 +110,7 @@ IHqlExpression * buildDiskFileViewerEcl(const char * logicalName, IHqlExpression
     fields.append(*reclen.getLink());
 
     OwnedHqlExpr newRecord = createRecord(fields);
-    newRecord.setown(createSymbol(createIdentifierAtom("_SourceRecord_"), newRecord.getLink(), ob_private));
+    newRecord.setown(createSymbol(createIdAtom("_SourceRecord_"), newRecord.getLink(), ob_private));
 
     OwnedHqlExpr dataset = createNewDataset(createConstant(logicalName), newRecord.getLink(), createValue(no_thor), NULL, NULL, NULL);
     OwnedHqlExpr filtered = addFilter(dataset, filepos);

+ 2 - 2
ecl/hql/hqlatoms.cpp

@@ -415,7 +415,7 @@ IAtom * xmlAtom;
 IAtom * xmlDefaultAtom;
 IAtom * xpathAtom;
 
-#define MAKEID(x)   x##Id = createIdentifierAtom(#x)
+#define MAKEID(x)   x##Id = createIdAtom(#x)
 #define MAKEATOM(x) x##Atom = createLowerCaseAtom(#x)
 
 SysAtom::SysAtom(const void * k) : Atom(k) 
@@ -450,7 +450,7 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM)
     MAKEID(bindUnsignedParam);
     MAKEID(bindUtf8Param);
     MAKEID(compileEmbeddedScript);
-    defaultFieldNameId = createIdentifierAtom("__f1__");
+    defaultFieldNameId = createIdAtom("__f1__");
     MAKEID(fail);
     MAKEID(getEmbedContext);
     MAKEID(getBooleanResult);

+ 0 - 2
ecl/hql/hqlatoms.hpp

@@ -460,8 +460,6 @@ inline byte getAttributeId(IAtom * x) { return static_cast<SysAtom *>(x)->attrId
  */
 
 inline bool identifiersAreCaseSensitive() { return false; }
-inline IIdAtom * createIdentifierAtom(const char * name) { return createIdAtom(name); }
-inline IIdAtom * createIdentifierAtom(const char * name, unsigned len) { return createIdAtom(name, len); }
 
 #endif
 

+ 2 - 0
ecl/hql/hqlattr.cpp

@@ -1379,6 +1379,8 @@ IHqlExpression * HqlUnadornedNormalizer::createTransformed(IHqlExpression * expr
             ITypeInfo * type = expr->queryType();
             OwnedITypeInfo newType = transformType(type);
             IIdAtom * id = expr->queryId();
+            //Fields names compare case-insignificantly therefore the field name is converted to lower case so that
+            //equivalent fields are mapped to the same normalized expression.
             IIdAtom * newid = createIdAtom(id->lower()->str());
             if ((type != newType) || (id != newid))
                 return createField(newid, newType.getClear(), children);

+ 9 - 9
ecl/hql/hqlcollect.cpp

@@ -53,11 +53,11 @@ public:
 class CEclSource : public CInterfaceOf<IEclSource>
 {
 public:
-    CEclSource(IIdAtom * _eclName, EclSourceType _type) : eclName(_eclName), type(_type) { }
+    CEclSource(IIdAtom * _eclId, EclSourceType _type) : eclId(_eclId), type(_type) { }
 
 //interface IEclSource
     virtual IProperties * getProperties() { return NULL; }
-    virtual IIdAtom * queryEclName() const { return eclName; }
+    virtual IIdAtom * queryEclId() const { return eclId; }
     virtual EclSourceType queryType() const { return type; }
 
 // new virtuals implemented by the child classes
@@ -66,7 +66,7 @@ public:
 
 protected:
     EclSourceType type;
-    IIdAtom * eclName;
+    IIdAtom * eclId;
 };
 
 
@@ -114,7 +114,7 @@ CEclSource * CEclCollection::find(IIdAtom * name)
     ForEachItemIn(i, contents)
     {
         IEclSource & cur = contents.item(i);
-        if (cur.queryEclName() == name)
+        if (cur.queryEclId()->lower() == name->lower())
             return &static_cast<CEclSource &>(cur);
     }
     return NULL;
@@ -262,7 +262,7 @@ FileSystemFile::FileSystemFile(EclSourceType _type, IFile & _file)
 
 bool FileSystemFile::checkValid()
 {
-    if (!eclName)
+    if (!eclId)
         return false;
 
     if (type == ESTplugin)
@@ -285,7 +285,7 @@ bool FileSystemFile::checkValid()
                     if (p(&pb) && (pb.magicVersion == PLUGIN_VERSION) && pb.ECL)
                     {
                         //Name in the plugin overrides the name of the plugin, and the filename where errors are reported.
-                        eclName = createIdentifierAtom(pb.moduleName);
+                        eclId = createIdAtom(pb.moduleName);
                         version.set(pb.version);
 
                         Owned<ISourcePath> pluginPath = createSourcePath(pb.moduleName);
@@ -380,9 +380,9 @@ void FileSystemDirectory::addFile(IFile &file, bool allowPlugins)
             newSource.setown(new FileSystemDirectory(deriveEclName(tail), &file));
         }
 
-        if (newSource && newSource->queryEclName())
+        if (newSource && newSource->queryEclId())
         {
-            if (!find(newSource->queryEclName()))
+            if (!find(newSource->queryEclId()))
                 contents.append(*newSource.getClear());
             else
             {
@@ -654,7 +654,7 @@ void CXmlEclElement::getFullName(StringBuffer & target)
         if (target.length() != prev)
             target.append('.');
     }
-    target.append(eclName->str());
+    target.append(eclId->str());
 }
 
 IFileContents * CXmlEclElement::queryFileContents()

+ 1 - 1
ecl/hql/hqlcollect.hpp

@@ -48,7 +48,7 @@ interface IEclSource : public IInterface
 {
     virtual IFileContents * queryFileContents() = 0;
     virtual IProperties * getProperties() = 0;
-    virtual IIdAtom * queryEclName() const = 0;
+    virtual IIdAtom * queryEclId() const = 0;
     virtual EclSourceType queryType() const = 0;
 
     inline bool isImplicitModule() const

+ 2 - 2
ecl/hql/hqldesc.cpp

@@ -29,7 +29,7 @@ void getFullName(StringBuffer & name, IHqlExpression * expr)
     }
     else
     {
-        const char * module = expr->queryFullModuleName()->str();
+        const char * module = expr->queryFullModuleId()->str();
         if (module && *module)
             name.append(module).append(".");
         name.append(expr->queryName());
@@ -54,7 +54,7 @@ void setFullNameProp(IPropertyTree * tree, const char * prop, IHqlExpression * e
     if (scope)
         tree->setProp(prop, scope->queryFullName());
     else
-        setFullNameProp(tree, prop, expr->queryFullModuleName()->lower()->str(), expr->queryName()->str());
+        setFullNameProp(tree, prop, expr->queryFullModuleId()->lower()->str(), expr->queryName()->str());
 }
 
 static int compareSymbolsByPosition(IInterface * * pleft, IInterface * * pright)

+ 1 - 1
ecl/hql/hqlesp.cpp

@@ -364,7 +364,7 @@ bool retrieveWebServicesInfo(IWorkUnit *workunit, HqlLookupContext & ctx)
     }
 
     //Names are currently stored case insensitively, we want the case sensitive variant.
-    OwnedHqlExpr s1 = ctx.queryRepository()->queryRootScope()->lookupSymbol(createIdentifierAtom(moduleName.str()), LSFpublic, ctx);
+    OwnedHqlExpr s1 = ctx.queryRepository()->queryRootScope()->lookupSymbol(createIdAtom(moduleName.str()), LSFpublic, ctx);
     if (s1 && s1->queryScope())
     {
         const char *caseSensitiveModuleName = s1->queryScope()->queryFullName();

+ 13 - 13
ecl/hql/hqlexpr.cpp

@@ -5533,7 +5533,7 @@ void CHqlField::onCreateField()
         throwUnexpected();
 #endif
 #ifdef DEBUG_ON_CREATE
-    if (queryName() == createIdentifierAtom("imgLength"))
+    if (queryName() == createIdAtom("imgLength"))
         PrintLog("Create field %s=%p", expr->queryName()->str(), expr);
 #endif
 
@@ -6479,9 +6479,9 @@ bool CHqlAnnotation::isFullyBound() const
     return body->isFullyBound();
 }
 
-IIdAtom * CHqlAnnotation::queryFullModuleName() const
+IIdAtom * CHqlAnnotation::queryFullModuleId() const
 {
-    return body->queryFullModuleName();
+    return body->queryFullModuleId();
 }
 
 IHqlExpression * CHqlAnnotation::queryAttribute(IAtom * name)
@@ -6717,12 +6717,12 @@ static void associateBindByName(HqlExprArray & selects, IHqlExpression * formal,
 
 //---------------------------------------------------------------------------------------------------------------------
 
-CHqlSymbolAnnotation::CHqlSymbolAnnotation(IIdAtom * _id, IIdAtom * _module, IHqlExpression *_expr, IHqlExpression * _funcdef, unsigned _symbolFlags)
+CHqlSymbolAnnotation::CHqlSymbolAnnotation(IIdAtom * _id, IIdAtom * _moduleId, IHqlExpression *_expr, IHqlExpression * _funcdef, unsigned _symbolFlags)
 : CHqlAnnotation(_expr)
 {
     id = _id;
     symbolFlags = _symbolFlags;
-    module = _module;
+    moduleId = _moduleId;
     funcdef = _funcdef;
     if (funcdef && containsInternalSelect(funcdef))
         infoFlags |= HEFinternalSelect;
@@ -6733,7 +6733,7 @@ void CHqlSymbolAnnotation::sethash()
     hashcode = 0;
     HASHFIELD(id);
     HASHFIELD(body);
-    HASHFIELD(module);
+    HASHFIELD(moduleId);
 }
 
 CHqlSymbolAnnotation::~CHqlSymbolAnnotation()
@@ -6753,7 +6753,7 @@ bool CHqlSymbolAnnotation::equals(const IHqlExpression & other) const
     if ((symbolFlags != other.getSymbolFlags()) || (funcdef != other.queryFunctionDefinition()))
         return false;
 
-    if (module != other.queryFullModuleName())
+    if (moduleId != other.queryFullModuleId())
         return false;
 
     if (op == no_nobody)
@@ -6819,7 +6819,7 @@ IHqlExpression * CHqlSimpleSymbol::cloneSymbol(IIdAtom * optid, IHqlExpression *
     if (newid == id && newbody==body && newfuncdef==funcdef)
         return LINK(this);
 
-    return makeSymbol(newid, module, LINK(newbody), LINK(newfuncdef), symbolFlags);
+    return makeSymbol(newid, moduleId, LINK(newbody), LINK(newfuncdef), symbolFlags);
 }
 
 
@@ -6873,7 +6873,7 @@ IHqlExpression * CHqlNamedSymbol::cloneSymbol(IIdAtom * optid, IHqlExpression *
             return LINK(this);
     }
 
-    CHqlNamedSymbol * e = new CHqlNamedSymbol(newid, module, LINK(newbody), LINK(newfuncdef), isExported(), isShared(), symbolFlags, text, startLine, startColumn, startpos, bodypos, endpos);
+    CHqlNamedSymbol * e = new CHqlNamedSymbol(newid, moduleId, LINK(newbody), LINK(newfuncdef), isExported(), isShared(), symbolFlags, text, startLine, startColumn, startpos, bodypos, endpos);
     //NB: do not all doAppendOpeand() because the parameters to a named symbol do not change it's attributes - e.g., whether pure.
     e->operands.ensure(newoperands->ordinality());
     ForEachItemIn(idx, *newoperands)
@@ -14802,7 +14802,7 @@ static void simplifyFileViewRecordTypes(HqlExprArray & fields, IHqlExpression *
             HqlExprArray subfields;
             StringBuffer name;
             name.append("unnamed").append(++count);
-            subfields.append(*createField(createIdentifierAtom(name), makeBoolType(), NULL, createAttribute(__ifblockAtom)));
+            subfields.append(*createField(createIdAtom(name), makeBoolType(), NULL, createAttribute(__ifblockAtom)));
             simplifyFileViewRecordTypes(subfields, cur->queryChild(1), true, needsTransform, isKey, count);
 //          fields.append(*createValue(no_ifblock, makeVoidType(), createValue(no_not, makeBoolType(), createConstant(false)), createRecord(subfields)));
             fields.append(*createValue(no_ifblock, makeNullType(), createConstant(true), createRecord(subfields)));
@@ -16353,11 +16353,11 @@ static void gatherAttributeDependencies(HqlLookupContext & ctx, const char * ite
         const char * dot = strrchr(item, '.');
         if (dot)
         {
-            moduleName = createIdentifierAtom(item, dot-item);
-            attrName = createIdentifierAtom(dot+1);
+            moduleName = createIdAtom(item, dot-item);
+            attrName = createIdAtom(dot+1);
         }
         else
-            moduleName = createIdentifierAtom(item);
+            moduleName = createIdAtom(item);
 
         OwnedHqlExpr resolved = ctx.queryRepository()->queryRootScope()->lookupSymbol(moduleName, LSFpublic, ctx);
         if (resolved)

+ 1 - 1
ecl/hql/hqlexpr.hpp

@@ -1091,7 +1091,7 @@ interface IHqlExpression : public IInterface
     virtual unsigned getInfoFlags2() const = 0;
 
     virtual ISourcePath * querySourcePath() const = 0;
-    virtual IIdAtom * queryFullModuleName() const = 0;              // only defined for a named symbol
+    virtual IIdAtom * queryFullModuleId() const = 0;              // only defined for a named symbol
     virtual int  getStartLine() const = 0;
     virtual int  getStartColumn() const = 0;
     virtual IPropertyTree * getDocumentation() const = 0;

+ 7 - 7
ecl/hql/hqlexpr.ipp

@@ -240,7 +240,7 @@ public:
     virtual IHqlExpression * cloneAllAnnotations(IHqlExpression * body) { return LINK(body); }
     virtual void unwindList(HqlExprArray &dst, node_operator);
 
-    virtual IIdAtom *           queryFullModuleName() const { return NULL; }
+    virtual IIdAtom *           queryFullModuleId() const { return NULL; }
     virtual ISourcePath *   querySourcePath() const { return NULL; }
 
     virtual IInterface *    queryTransformExtra();
@@ -508,7 +508,7 @@ public:
     virtual IHqlExpression * clone(HqlExprArray &);
     virtual IHqlExpression * cloneAnnotation(IHqlExpression * body) = 0;
     virtual IHqlExpression * cloneAllAnnotations(IHqlExpression * body);
-    virtual IIdAtom *               queryFullModuleName() const;
+    virtual IIdAtom * queryFullModuleId() const;
     virtual bool isFullyBound() const;
     virtual IHqlExpression *addOperand(IHqlExpression *);
     virtual StringBuffer& getTextBuf(StringBuffer& buf);
@@ -531,7 +531,7 @@ public:
 
     virtual IAtom * queryName() const { return id->lower(); }
     virtual IIdAtom * queryId() const { return id; }
-    virtual IIdAtom * queryFullModuleName() const { return module; }
+    virtual IIdAtom * queryFullModuleId() const { return moduleId; }
     virtual IHqlExpression *queryFunctionDefinition() const;
     virtual unsigned getSymbolFlags() const;
 
@@ -550,14 +550,14 @@ public:
     virtual void setRepositoryFlags(unsigned _flags) { symbolFlags |= (_flags & ob_registryflags); }
 
 protected:
-    CHqlSymbolAnnotation(IIdAtom * _id, IIdAtom * _module, IHqlExpression *_expr, IHqlExpression *_funcdef, unsigned _obFlags);
+    CHqlSymbolAnnotation(IIdAtom * _id, IIdAtom * _moduleId, IHqlExpression *_expr, IHqlExpression *_funcdef, unsigned _obFlags);
     ~CHqlSymbolAnnotation();
 
     virtual void sethash();
 
 protected:
     IIdAtom * id;
-    IIdAtom * module;
+    IIdAtom * moduleId;
     IHqlExpression *funcdef;
     unsigned symbolFlags;
 };
@@ -565,7 +565,7 @@ protected:
 class HQL_API CHqlSimpleSymbol : public CHqlSymbolAnnotation
 {
 public:
-    static IHqlExpression * makeSymbol(IIdAtom * _id, IIdAtom * _module, IHqlExpression *_expr, IHqlExpression *_funcdef, unsigned _obFlags);
+    static IHqlExpression * makeSymbol(IIdAtom * _id, IIdAtom * _moduleId, IHqlExpression *_expr, IHqlExpression *_funcdef, unsigned _obFlags);
 
 //interface IHqlNamedAnnotation
     virtual IFileContents * getBodyContents() { return NULL; }
@@ -721,7 +721,7 @@ protected:
 class CHqlField: public CHqlExpressionWithType
 {
 private:
-    IIdAtom *               id;
+    IIdAtom * id;
 
     virtual void sethash();
     virtual bool equals(const IHqlExpression & other) const;

+ 4 - 4
ecl/hql/hqlgram.hpp

@@ -124,7 +124,7 @@ public:
         atr_type = t_none;
         return contents; 
     }
-    inline IIdAtom * getName()
+    inline IIdAtom * getId()
     {
         assertex(atr_type==t_catom);
         atr_type = t_none;
@@ -203,7 +203,7 @@ public:
         atr_type = t_contents;
         contents = _contents; 
     }
-    inline void setName(IIdAtom * v)
+    inline void setId(IIdAtom * v)
     {
         atr_type=t_catom;
         cname = v;
@@ -692,8 +692,8 @@ public:
     int yyLex(attribute * yylval, const short * activeState);
 
 protected:
-    IIdAtom * createUnnamedFieldName();
-    IIdAtom * createUnnamedFieldName(const char * prefix);
+    IIdAtom * createUnnamedFieldId();
+    IIdAtom * createUnnamedFieldId(const char * prefix);
     IIdAtom * getNameFromExpr(attribute& attr);
     IIdAtom * createFieldNameFromExpr(IHqlExpression * expr);
     IHqlExpression * createAssert(attribute & cond, attribute * msg, attribute & flags);

+ 64 - 64
ecl/hql/hqlgram.y

@@ -645,12 +645,12 @@ importItem
                         }
     | importSelectorList AS UNKNOWN_ID
                         {
-                            parser->processImport($1, $3.getName());
+                            parser->processImport($1, $3.getId());
                             $$.clear();
                         }
     | importSelectorList FROM importSelector AS UNKNOWN_ID
                         {
-                            parser->processImport($1, $3, $5.getName());
+                            parser->processImport($1, $3, $5.getId());
                             $$.clear();
                         }
     | '*' FROM importSelector
@@ -697,14 +697,14 @@ importSelector
 
 importId
     : UNKNOWN_ID        {
-                            $$.setExpr(createId($1.getName()), $1);
+                            $$.setExpr(createId($1.getId()), $1);
                         }
     | '$'               {
                             $$.setExpr(createAttribute(selfAtom), $1);
                         }
     | importId '.' UNKNOWN_ID
                         {
-                            $$.setExpr(createAttribute(_dot_Atom, $1.getExpr(), createId($3.getName())), $1);
+                            $$.setExpr(createAttribute(_dot_Atom, $1.getExpr(), createId($3.getId())), $1);
                         }
     ;
 
@@ -1190,7 +1190,7 @@ startTYPE
 
 defineid
     : UNKNOWN_ID        {
-                            parser->beginDefineId($1.getName(), NULL);
+                            parser->beginDefineId($1.getId(), NULL);
                             $$.setType(NULL);
                             $$.setPosition($1);
                         }
@@ -1219,21 +1219,21 @@ defineid
                             Owned<ITypeInfo> type = $1.getType();
                             if (type->getTypeCode() == type_alien)
                                 type.set(type->queryPromotedType());
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type.getClear());
                             $$.setPosition($1);
                         }
     | globalScopedDatasetId knownOrUnknownId
                         {
                             OwnedHqlExpr ds = $1.getExpr();
-                            parser->beginDefineId($2.getName(), ds->queryType());
+                            parser->beginDefineId($2.getId(), ds->queryType());
                             $$.setType(ds->getType());
                             $$.setPosition($1);
                         }
     | UNKNOWN_ID UNKNOWN_ID
                         {
-                            parser->reportError(ERR_UNKNOWN_TYPE, $1, "Unknown type '%s'", $1.getName()->str());
-                            parser->beginDefineId($2.getName(), NULL);
+                            parser->reportError(ERR_UNKNOWN_TYPE, $1, "Unknown type '%s'", $1.getId()->str());
+                            parser->beginDefineId($2.getId(), NULL);
                             $$.setType(NULL);
                             $$.setPosition($1);
                         }
@@ -1242,8 +1242,8 @@ defineid
 
 knownOrUnknownId
     : UNKNOWN_ID
-    | knownId           { $$.setName(parser->getNameFromExpr($1)); $$.setPosition($1); }
-    | knownFunction1    { $$.setName(parser->getNameFromExpr($1)); $$.setPosition($1); }
+    | knownId           { $$.setId(parser->getNameFromExpr($1)); $$.setPosition($1); }
+    | knownFunction1    { $$.setId(parser->getNameFromExpr($1)); $$.setPosition($1); }
     ;
 
 knownId
@@ -1317,14 +1317,14 @@ definePatternId
     : TOK_PATTERN knownOrUnknownId  
                         {
                             ITypeInfo *type = makePatternType();
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }
     | RULE knownOrUnknownId 
                         {
                             ITypeInfo *type = makeRuleType(NULL);
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }
@@ -1332,21 +1332,21 @@ definePatternId
                         {
                             OwnedHqlExpr record = $3.getExpr();
                             ITypeInfo *type = makeRuleType(record->getType());
-                            parser->beginDefineId($5.getName(), type);
+                            parser->beginDefineId($5.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }
     | TOKEN knownOrUnknownId    
                         {
                             ITypeInfo *type = makeTokenType();
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }
     | userTypedefPattern knownOrUnknownId
                         {
                             ITypeInfo *type = $1.getType();
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }
@@ -2893,21 +2893,21 @@ hintList
 hintItem
     : hintName
                         {
-                            $$.setExpr(createExprAttribute($1.getName()->lower()));
+                            $$.setExpr(createExprAttribute($1.getId()->lower()));
                             $$.setPosition($1);
                         }
     | hintName '(' beginList hintExprList ')'
                         {
                             HqlExprArray args;
                             parser->endList(args);
-                            $$.setExpr(createExprAttribute($1.getName()->lower(), args));
+                            $$.setExpr(createExprAttribute($1.getId()->lower(), args));
                             $$.setPosition($1);
                         }
     ;
 
 hintName
     : UNKNOWN_ID
-    | OUTPUT            {   $$.setName(outputId); }
+    | OUTPUT            {   $$.setId(outputId); }
     ;
 
 hintExprList
@@ -2946,7 +2946,7 @@ hintExpr
                         }
     | UNKNOWN_ID
                         {
-                            $$.setExpr(createAttribute($1.getName()->lower()), $1);
+                            $$.setExpr(createAttribute($1.getId()->lower()), $1);
                         }
     ;
 
@@ -3639,18 +3639,18 @@ paramDefinition
     : setType knownOrUnknownId defvalue 
                         {   
                             $$.clear(); 
-                            parser->addParameter($1, $2.getName(), $1.getType(), $3.getExpr());
+                            parser->addParameter($1, $2.getId(), $1.getType(), $3.getExpr());
                         }
     | paramType knownOrUnknownId defvalue   
                         {   
                             $$.clear();
-                            parser->addParameter($1, $2.getName(), $1.getType(), $3.getExpr());
+                            parser->addParameter($1, $2.getId(), $1.getType(), $3.getExpr());
                         }
     | UNKNOWN_ID defvalue
                         {
                            $$.clear();
                            parser->addListElement(createAttribute(noTypeAtom));
-                           parser->addParameter($1, $1.getName(), LINK(parser->defaultIntegralType), $2.getExpr());
+                           parser->addParameter($1, $1.getId(), LINK(parser->defaultIntegralType), $2.getExpr());
                         }
     | anyFunction defvalue
                         {
@@ -3663,29 +3663,29 @@ paramDefinition
     | ANY DATASET knownOrUnknownId
                         {
                             $$.clear();
-                            parser->addParameter($1, $3.getName(), makeTableType(makeRowType(queryNullRecord()->getType()), NULL, NULL, NULL), NULL);
+                            parser->addParameter($1, $3.getId(), makeTableType(makeRowType(queryNullRecord()->getType()), NULL, NULL, NULL), NULL);
                         }
     | ANY knownOrUnknownId defvalue
                         {
                             $$.clear();
                             parser->setTemplateAttribute();
-                            parser->addParameter($1, $2.getName(), makeAnyType(), $3.getExpr());
+                            parser->addParameter($1, $2.getId(), makeAnyType(), $3.getExpr());
                         }
     | paramType knownOrUnknownId nestedParmdef defFuncValue
                         {
                             $$.clear();
-                            parser->addFunctionParameter($1, $2.getName(), $1.getType(), $4.getExpr());
+                            parser->addFunctionParameter($1, $2.getId(), $1.getType(), $4.getExpr());
                         }
     | setType knownOrUnknownId nestedParmdef defFuncValue
                         {
                             $$.clear();
-                            parser->addFunctionParameter($1, $2.getName(), $1.getType(), $4.getExpr());
+                            parser->addFunctionParameter($1, $2.getId(), $1.getType(), $4.getExpr());
                         }
  // Use a function as a prototype for the argument type - kind of a substitute for a typedef
     | anyFunction UNKNOWN_ID defFuncValue
                         {
                             $$.clear();
-                            parser->addFunctionProtoParameter($1, $2.getName(), $1.getExpr(), $3.getExpr());
+                            parser->addFunctionProtoParameter($1, $2.getId(), $1.getExpr(), $3.getExpr());
                         }
     ;
 
@@ -3750,7 +3750,7 @@ funcDef
     : funcRetType knownOrUnknownId realparmdef attribs ';'
                         {
                             $$.clear($1);
-                            IIdAtom * name = $2.getName();
+                            IIdAtom * name = $2.getId();
                             OwnedITypeInfo type = $1.getType();
                             OwnedHqlExpr attrs = $4.getExpr();
                             parser->processServiceFunction($2, name, attrs, type);
@@ -3758,7 +3758,7 @@ funcDef
     | knownOrUnknownId realparmdef attribs ';'
                         {
                             $$.clear($1);
-                            IIdAtom * name = $1.getName();
+                            IIdAtom * name = $1.getId();
                             OwnedITypeInfo type = makeVoidType();
                             OwnedHqlExpr attrs = $3.getExpr();
                             parser->processServiceFunction($1, name, attrs, type);
@@ -3780,21 +3780,21 @@ attrib
     : knownOrUnknownId EQ UNKNOWN_ID        
                         {
                             parser->reportWarning(WRN_OBSOLETED_SYNTAX,$1.pos,"Syntax obsoleted; use alternative: id = '<string constant>'");
-                            $$.setExpr(createAttribute($1.getName()->lower(), createConstant(*$3.getName())));
+                            $$.setExpr(createAttribute($1.getId()->lower(), createConstant(*$3.getId())));
                         }
     | knownOrUnknownId EQ const
                         {
-                            $$.setExpr(createAttribute($1.getName()->lower(), $3.getExpr()), $1);
+                            $$.setExpr(createAttribute($1.getId()->lower(), $3.getExpr()), $1);
                         }
     | knownOrUnknownId                  
-                        {   $$.setExpr(createAttribute($1.getName()->lower()));  }
+                        {   $$.setExpr(createAttribute($1.getId()->lower()));  }
     | knownOrUnknownId '(' const ')'
                         {
-                            $$.setExpr(createAttribute($1.getName()->lower(), $3.getExpr()), $1);
+                            $$.setExpr(createAttribute($1.getId()->lower(), $3.getExpr()), $1);
                         }
     | knownOrUnknownId '(' const ',' const ')'
                         {
-                            $$.setExpr(createAttribute($1.getName()->lower(), $3.getExpr(), $5.getExpr()), $1);
+                            $$.setExpr(createAttribute($1.getId()->lower(), $3.getExpr(), $5.getExpr()), $1);
                         }
     ;
 
@@ -3928,7 +3928,7 @@ recordDef
     | recordDef '-' UNKNOWN_ID
                         {
                             OwnedHqlExpr left = $1.getExpr();
-                            OwnedHqlExpr right = createId($3.getName());
+                            OwnedHqlExpr right = createId($3.getId());
                             $$.setExpr(parser->createRecordExcept(left, right, $1));
                             $$.setPosition($1);
                             parser->checkRecordIsValid($1, $$.queryExpr());
@@ -3952,7 +3952,7 @@ recordDef
     | recordDef AND NOT UNKNOWN_ID
                         {
                             OwnedHqlExpr left = $1.getExpr();
-                            OwnedHqlExpr right = createId($4.getName());
+                            OwnedHqlExpr right = createId($4.getId());
                             $$.setExpr(parser->createRecordExcept(left, right, $1));
                             $$.setPosition($1);
                             parser->checkRecordIsValid($1, $$.queryExpr());
@@ -4018,12 +4018,12 @@ dsEnd
 
 UnknownIdList
     : UNKNOWN_ID        {
-                            $$.setExpr(createId($1.getName()));
+                            $$.setExpr(createId($1.getId()));
                             $$.setPosition($1);
                         }
     | UnknownIdList ',' UNKNOWN_ID
                         {
-                            $$.setExpr(createComma($1.getExpr(), createId($3.getName())));
+                            $$.setExpr(createComma($1.getExpr(), createId($3.getId())));
                             $$.setPosition($1);
                         }
     ;
@@ -4199,7 +4199,7 @@ fieldDef
                             IHqlExpression *attrs = $2.getExpr();
                             if (!attrs)
                                 attrs = extractAttrsFromExpr(value);
-                            parser->addField($1, $1.getName(), value->getType(), value, attrs);
+                            parser->addField($1, $1.getId(), value->getType(), value, attrs);
                             $$.clear();
                         }
     | UNKNOWN_ID optFieldAttrs ASSIGN dataRow
@@ -4208,7 +4208,7 @@ fieldDef
                             IHqlExpression *attrs = $2.getExpr();
                             if (!attrs)
                                 attrs = extractAttrsFromExpr(value);
-                            parser->addField($1, $1.getName(), makeRowType(LINK(value->queryRecordType())), value, attrs);
+                            parser->addField($1, $1.getId(), makeRowType(LINK(value->queryRecordType())), value, attrs);
                             $$.clear();
                         }
     | typeDef knownOrUnknownId optFieldAttrs defaultValue
@@ -4220,7 +4220,7 @@ fieldDef
                             OwnedITypeInfo type = $1.getType();
                             if (type->getTypeCode() == type_record)
                                 type.setown(makeRowType(type.getClear()));
-                            parser->addField($2, $2.getName(), type.getClear(), value, $3.getExpr());
+                            parser->addField($2, $2.getId(), type.getClear(), value, $3.getExpr());
                         }
     | ANY knownOrUnknownId optFieldAttrs defaultValue
                         {
@@ -4229,7 +4229,7 @@ fieldDef
 
                             //Syntactic oddity.  A record means a row of that record type.
                             OwnedITypeInfo type = makeAnyType();
-                            parser->addField($2, $2.getName(), type.getClear(), value, $3.getExpr());
+                            parser->addField($2, $2.getId(), type.getClear(), value, $3.getExpr());
                         }
     | typeDef knownOrUnknownId '[' expression ']' optFieldAttrs defaultValue
                         {
@@ -4249,7 +4249,7 @@ fieldDef
 
                             IHqlExpression *value = $7.getExpr();
                             Owned<ITypeInfo> datasetType = makeTableType(makeRowType(createRecordType(record)), NULL, NULL, NULL);
-                            parser->addDatasetField($2, $2.getName(), datasetType, value, attrs.getClear());
+                            parser->addDatasetField($2, $2.getId(), datasetType, value, attrs.getClear());
                         }
     | setType knownOrUnknownId optFieldAttrs defaultValue
                         {
@@ -4257,36 +4257,36 @@ fieldDef
                             IHqlExpression *value = $4.getExpr();
 
                             ITypeInfo *type = $1.getType();
-                            parser->addField($2, $2.getName(), type, value, $3.getExpr());
+                            parser->addField($2, $2.getId(), type, value, $3.getExpr());
                         }
     | explicitDatasetType knownOrUnknownId optFieldAttrs defaultValue
                         {
                             $$.clear($1);
                             Owned<ITypeInfo> type = $1.getType();
-                            parser->addDatasetField($2, $2.getName(), type, $4.getExpr(), $3.getExpr());
+                            parser->addDatasetField($2, $2.getId(), type, $4.getExpr(), $3.getExpr());
                         }
     | UNKNOWN_ID optFieldAttrs ASSIGN dataSet
                         {
                             IHqlExpression * value = $4.getExpr();
-                            parser->addDatasetField($1, $1.getName(), NULL, value, $2.getExpr());
+                            parser->addDatasetField($1, $1.getId(), NULL, value, $2.getExpr());
                             $$.clear();
                         }
     | explicitDictionaryType knownOrUnknownId optFieldAttrs defaultValue
                         {
                             $$.clear($1);
                             Owned<ITypeInfo> type = $1.getType();
-                            parser->addDictionaryField($2, $2.getName(), type, $4.getExpr(), $3.getExpr());
+                            parser->addDictionaryField($2, $2.getId(), type, $4.getExpr(), $3.getExpr());
                         }
     | UNKNOWN_ID optFieldAttrs ASSIGN dictionary
                         {
                             IHqlExpression * value = $4.getExpr();
-                            parser->addDictionaryField($1, $1.getName(), value->queryType(), value, $2.getExpr());
+                            parser->addDictionaryField($1, $1.getId(), value->queryType(), value, $2.getExpr());
                             $$.clear();
                         }
     | alienTypeInstance knownOrUnknownId optFieldAttrs defaultValue
                         {
                             $$.clear($1);
-                            parser->addField($2, $2.getName(), $1.getType(), $4.getExpr(), $3.getExpr());
+                            parser->addField($2, $2.getId(), $1.getType(), $4.getExpr(), $3.getExpr());
                         }
     | recordDef         {
                             //This distinguish between an inline record definition, and an out-of-line definition
@@ -6794,7 +6794,7 @@ scopeProjectOpt
     : OPT               {   $$.setExpr(createAttribute(optAtom)); $$.setPosition($1); }
     | UNKNOWN_ID            // Will include known ids as well since they won't be returned as known ids.
                         {
-                            $$.setExpr(createId($1.getName()));
+                            $$.setExpr(createId($1.getId()));
                             $$.setPosition($1);
                         }
     ;
@@ -10694,13 +10694,13 @@ optActualValue
 namedActual
     : UNKNOWN_ID ASSIGN actualValue
                         {
-                            parser->addNamedActual($1, $1.getName(), $3.getExpr());
+                            parser->addNamedActual($1, $1.getId(), $3.getExpr());
                             $$.clear();
                             $$.setPosition($1);
                         }
     | NAMED UNKNOWN_ID ASSIGN actualValue
                         {
-                            parser->addNamedActual($1, $2.getName(), $4.getExpr());
+                            parser->addNamedActual($1, $2.getId(), $4.getExpr());
                             $$.clear();
                             $$.setPosition($1);
                         }
@@ -10965,8 +10965,8 @@ fieldMaps1
 fieldMap
     :  UNKNOWN_ID ASSIGN UNKNOWN_ID
                         {
-                            IHqlExpression* attr1 = createId($1.getName());
-                            IHqlExpression* attr2 = createId($3.getName());
+                            IHqlExpression* attr1 = createId($1.getId());
+                            IHqlExpression* attr2 = createId($3.getId());
                             parser->addListElement(createComma(attr1, attr2));
                             $$.clear();
                         }
@@ -11780,14 +11780,14 @@ pattern0
                             parser->checkUseLocation($1);
                             IAtom * moduleName = parser->globalScope->queryName();
                             IHqlExpression * module = moduleName ? createAttribute(moduleAtom, createAttribute(moduleName)) : NULL;
-                            IHqlExpression * id = createAttribute(nameAtom, createId($3.getName()));
+                            IHqlExpression * id = createAttribute(nameAtom, createId($3.getId()));
                             $$.setExpr(createValue(no_pat_use, makeRuleType(NULL), id, module));
                         }
     | USE '(' UNKNOWN_ID '.' UNKNOWN_ID ')'
                         {
                             parser->checkUseLocation($1);
-                            IHqlExpression * module = createAttribute(moduleAtom, createId($3.getName()));
-                            IHqlExpression * id = createAttribute(nameAtom, createId($5.getName()));
+                            IHqlExpression * module = createAttribute(moduleAtom, createId($3.getId()));
+                            IHqlExpression * id = createAttribute(nameAtom, createId($5.getId()));
                             $$.setExpr(createValue(no_pat_use, makeRuleType(NULL), module, id));
                         }
     | USE '(' recordDef ',' stringConstExpr ')'
@@ -11801,15 +11801,15 @@ pattern0
                             parser->checkUseLocation($1);
                             IAtom * moduleName = parser->globalScope->queryName();
                             IHqlExpression * module = moduleName ? createAttribute(moduleAtom, createAttribute(moduleName)) : NULL;
-                            IHqlExpression * id = createAttribute(nameAtom, createId($5.getName()));
+                            IHqlExpression * id = createAttribute(nameAtom, createId($5.getId()));
                             OwnedHqlExpr record = $3.getExpr();
                             $$.setExpr(createValue(no_pat_use, makeRuleType(record->getType()), id, module));
                         }
     | USE '(' recordDef ',' UNKNOWN_ID '.' UNKNOWN_ID ')'
                         {
                             parser->checkUseLocation($1);
-                            IHqlExpression * module = createAttribute(moduleAtom, createId($5.getName()));
-                            IHqlExpression * id = createAttribute(nameAtom, createId($7.getName()));
+                            IHqlExpression * module = createAttribute(moduleAtom, createId($5.getId()));
+                            IHqlExpression * id = createAttribute(nameAtom, createId($7.getId()));
                             OwnedHqlExpr record = $3.getExpr();
                             $$.setExpr(createValue(no_pat_use, makeRuleType(record->getType()), module, id));
                         }
@@ -11911,12 +11911,12 @@ optPatternActualValue
 namedPatternActual
     : UNKNOWN_ID ASSIGN patternParamval
                         {
-                            parser->addNamedActual($1, $1.getName(), $3.getExpr());
+                            parser->addNamedActual($1, $1.getId(), $3.getExpr());
                             $$.clear($1);
                         }
     | NAMED UNKNOWN_ID ASSIGN patternParamval
                         {
-                            parser->addNamedActual($1, $2.getName(), $4.getExpr());
+                            parser->addNamedActual($1, $2.getId(), $4.getExpr());
                             $$.clear($1);
                         }
     ;
@@ -12020,7 +12020,7 @@ defineFeatureId
     : FEATURE knownOrUnknownId  
                         {
                             ITypeInfo *type = makeFeatureType();
-                            parser->beginDefineId($2.getName(), type);
+                            parser->beginDefineId($2.getId(), type);
                             $$.setType(type);
                             $$.setPosition($1);
                         }

+ 17 - 17
ecl/hql/hqlgram2.cpp

@@ -1002,7 +1002,7 @@ void HqlGram::processEnum(attribute & idAttr, IHqlExpression * value)
         lastEnumValue.setown(nextEnumValue());
 
     DefineIdSt * id = new DefineIdSt;
-    id->id = idAttr.getName();
+    id->id = idAttr.getId();
     id->scope = EXPORT_FLAG;
     doDefineSymbol(id, LINK(lastEnumValue), NULL, idAttr, idAttr.pos.position, idAttr.pos.position, false);
 }
@@ -2262,16 +2262,16 @@ void HqlGram::addToActiveRecord(IHqlExpression * newField)
         currentRecord->insertSymbols(newField);
 }
 
-IIdAtom * HqlGram::createUnnamedFieldName(const char * prefix)
+IIdAtom * HqlGram::createUnnamedFieldId(const char * prefix)
 {
     StringBuffer s;
     s.append(prefix).append(activeRecords.tos().numChildren()+1);
-    return createIdentifierAtom(s.str());
+    return createIdAtom(s.str());
 }
 
-IIdAtom * HqlGram::createUnnamedFieldName()
+IIdAtom * HqlGram::createUnnamedFieldId()
 {
-    return createUnnamedFieldName("_unnamed_");
+    return createUnnamedFieldId("_unnamed_");
 }
 
 
@@ -2352,7 +2352,7 @@ void HqlGram::addField(const attribute &errpos, IIdAtom * name, ITypeInfo *_type
         reportError(ERR_BAD_FIELD_ATTR, errpos, "Virtual can only be specified on a scalar field");
 
     if (!name)
-        name = createUnnamedFieldName();
+        name = createUnnamedFieldId();
 
     checkFieldnameValid(errpos, name);
     if(isUnicodeType(fieldType) && (*fieldType->queryLocale()->str() == 0))
@@ -2386,7 +2386,7 @@ void HqlGram::addField(const attribute &errpos, IIdAtom * name, ITypeInfo *_type
 void HqlGram::addDatasetField(const attribute &errpos, IIdAtom * name, ITypeInfo * fieldType, IHqlExpression *value, IHqlExpression * attrs)
 {
     if (!name)
-        name = createUnnamedFieldName();
+        name = createUnnamedFieldId();
     checkFieldnameValid(errpos, name);
 
     if (fieldType)
@@ -2430,7 +2430,7 @@ void HqlGram::addDatasetField(const attribute &errpos, IIdAtom * name, ITypeInfo
 void HqlGram::addDictionaryField(const attribute &errpos, IIdAtom * name, ITypeInfo  * type, IHqlExpression *value, IHqlExpression * attrs)
 {
     if (!name)
-        name = createUnnamedFieldName();
+        name = createUnnamedFieldId();
     checkFieldnameValid(errpos, name);
 
     Owned<ITypeInfo> dictType = LINK(type);
@@ -2772,7 +2772,7 @@ void HqlGram::processForwardModuleDefinition(const attribute & errpos)
             break;
         case UNKNOWN_ID:
             {
-                IIdAtom * id = nextToken.getName();
+                IIdAtom * id = nextToken.getId();
                 IAtom * name = id->lower();
                 if ((braNesting == 0) && (endNesting == 0))             // last identifier seen, but don't include parameters, or record members
                     prevId = id;
@@ -7918,7 +7918,7 @@ void HqlGram::modifyIndexPayloadRecord(SharedHqlExpr & record, SharedHqlExpr & p
             if (suffix > 1)
                 name.append(suffix);
             name.append("__");
-            implicitFieldName = createIdentifierAtom(name);
+            implicitFieldName = createIdAtom(name);
             OwnedHqlExpr resolved = scope->lookupSymbol(implicitFieldName);
             if (!resolved && payloadScope)
                 resolved.setown(payloadScope->lookupSymbol(implicitFieldName));
@@ -8374,7 +8374,7 @@ IHqlExpression * HqlGram::createScopedSequenceExpr()
     OwnedHqlExpr value = createSequenceExpr();
     HqlExprArray attrs;
     attrs.append(*createAttribute(_hidden_Atom));
-    IHqlExpression * param = createParameter(createIdentifierAtom(paramName.str()), parameters.ordinality(), value->getType(), attrs);
+    IHqlExpression * param = createParameter(createIdAtom(paramName.str()), parameters.ordinality(), value->getType(), attrs);
     parameters.append(*param);
     targetScope.activeDefaults.append(*LINK(value));
     return LINK(param);
@@ -8916,7 +8916,7 @@ void HqlGram::defineSymbolInScope(IHqlScope * scope, DefineIdSt * defineid, IHql
     IHqlExpression * scopeExpr = queryExpression(scope);
     IIdAtom * moduleName = NULL;
     if (!inType)
-        moduleName = createIdentifierAtom(scope->queryFullName());
+        moduleName = createIdAtom(scope->queryFullName());
 
     unsigned symbolFlags = 0;
     if (scopeExpr && scopeExpr->getOperator() == no_virtualscope)
@@ -9793,10 +9793,10 @@ IIdAtom * HqlGram::createFieldNameFromExpr(IHqlExpression * expr)
         case no_indirect:
             return createFieldNameFromExpr(expr->queryChild(0));
         case no_countgroup:
-            name = createUnnamedFieldName("_unnamed_cnt_");
+            name = createUnnamedFieldId("_unnamed_cnt_");
             break;
         case no_existsgroup:
-            name = createUnnamedFieldName("_unnamed_exists_");
+            name = createUnnamedFieldId("_unnamed_exists_");
             break;
         case no_vargroup:
         case no_avegroup:
@@ -9808,7 +9808,7 @@ IIdAtom * HqlGram::createFieldNameFromExpr(IHqlExpression * expr)
                 temp.append("_unnamed_").append(getOpString(expr->getOperator())).append("_");
                 temp.toLowerCase();
                 temp.append(createFieldNameFromExpr(expr->queryChild(0))->lower());
-                name = createUnnamedFieldName(temp.str());
+                name = createUnnamedFieldId(temp.str());
             }
             break;
         case no_covargroup:
@@ -9820,7 +9820,7 @@ IIdAtom * HqlGram::createFieldNameFromExpr(IHqlExpression * expr)
                 temp.append(createFieldNameFromExpr(expr->queryChild(0))->lower());
                 temp.append("_");
                 temp.append(createFieldNameFromExpr(expr->queryChild(1))->lower());
-                name = createUnnamedFieldName(temp.str());
+                name = createUnnamedFieldId(temp.str());
             }
             break;
         }
@@ -11588,7 +11588,7 @@ IHqlExpression *HqlGram::doParse()
     if (!expectedAttribute)
         return actions.getClear();
 
-    IIdAtom * moduleName = createIdentifierAtom(globalScope->queryFullName());
+    IIdAtom * moduleName = createIdAtom(globalScope->queryFullName());
     Owned<IFileContents> contents = LINK(lexObject->query_FileContents());
     unsigned lengthText = 0;
     containerScope->defineSymbol(expectedAttribute, moduleName, actions.getClear(), true, false, 0, contents, 1, 1, 0, 0, lengthText);

+ 2 - 2
ecl/hql/hqllex.l

@@ -90,7 +90,7 @@ int HqlLex::lookupIdentifierToken(YYSTYPE & returnToken, HqlLex * lexer, bool lo
     if ( !lookup  || lexer->macroGathering || lexer->skipping|| !(expr=lexer->lookupSymbol(cname,returnToken)))
     {
         TraceReturnToken(UNKNOWN_ID);
-        returnToken.setName(cname);
+        returnToken.setId(cname);
         return UNKNOWN_ID;
     }
 
@@ -226,7 +226,7 @@ int HqlLex::lookupIdentifierToken(YYSTYPE & returnToken, HqlLex * lexer, bool lo
     if (!lexer->parserExpecting(token, activeState) && lexer->parserExpecting(UNKNOWN_ID, activeState))
     {
         returnToken.release();
-        returnToken.setName(cname);
+        returnToken.setId(cname);
         token = UNKNOWN_ID;
     }
 

+ 10 - 10
ecl/hql/hqlparse.cpp

@@ -474,7 +474,7 @@ void HqlLex::pushMacro(IHqlExpression *expr)
             // no attempt to recover at the end of the file, but cleanup is needed.
             return;
         case UNKNOWN_ID:
-            possibleName = nextToken.getName();
+            possibleName = nextToken.getId();
             //fall through
         default:
             curParam.append(' ');
@@ -774,7 +774,7 @@ void HqlLex::doDeclare(YYSTYPE & returnToken)
             continue;
         }
     
-        name = returnToken.getName();
+        name = returnToken.getId();
         declareXmlSymbol(returnToken, name->getAtomNamePtr());
         
         tok = yyLex(returnToken, false,0);
@@ -847,7 +847,7 @@ void HqlLex::doSet(YYSTYPE & returnToken, bool append)
         returnToken.release();
         return;
     }
-    name = returnToken.getName();
+    name = returnToken.getId();
     if (yyLex(returnToken, false,0) != ',')
     {
         reportError(returnToken, ERR_EXPECTED_COMMA, ", expected"); 
@@ -978,7 +978,7 @@ void HqlLex::doExport(YYSTYPE & returnToken, bool toXml)
         returnToken.release();
         return;
     }
-    exportname = returnToken.getName();
+    exportname = returnToken.getId();
     if (yyLex(returnToken, false,0) != ',')
     {
         reportError(returnToken, ERR_EXPECTED_COMMA, ", expected"); 
@@ -1088,7 +1088,7 @@ void HqlLex::doFor(YYSTYPE & returnToken, bool doAll)
         returnToken.release();
         return;
     }
-    name = returnToken.getName();
+    name = returnToken.getId();
     forFilter.clear();
     // Note - we gather the for filter and body in skip mode (deferring evaluation of #if etc) since the context will be different each time...
     skipping = 1;
@@ -1304,11 +1304,11 @@ static bool isInModule(HqlLookupContext & ctx, const char* moduleName, const cha
         const char* pAttr = attrName;
         while(*pAttr==' ') pAttr++;
 
-        OwnedHqlExpr match = ctx.queryRepository()->queryRootScope()->lookupSymbol(createIdentifierAtom(pModule), LSFpublic, ctx);
+        OwnedHqlExpr match = ctx.queryRepository()->queryRootScope()->lookupSymbol(createIdAtom(pModule), LSFpublic, ctx);
         IHqlScope * scope = match ? match->queryScope() : NULL;
         if (scope)
         {
-            OwnedHqlExpr expr = scope->lookupSymbol(createIdentifierAtom(pAttr), LSFpublic, ctx); 
+            OwnedHqlExpr expr = scope->lookupSymbol(createIdAtom(pAttr), LSFpublic, ctx); 
             if (expr)
                 return true;
         }
@@ -1336,7 +1336,7 @@ void HqlLex::doUniqueName(YYSTYPE & returnToken)
     } 
     else 
     {
-        IIdAtom * name = returnToken.getName();
+        IIdAtom * name = returnToken.getId();
         StringAttr pattern("__#__$__");
 
         tok = yyLex(returnToken, false,0);
@@ -1589,7 +1589,7 @@ bool HqlLex::getDefinedParameter(StringBuffer &curParam, YYSTYPE & returnToken,
                 {
                 case StateStart:
                     {
-                        expr.setown(lookupSymbol(returnToken.getName(), returnToken));
+                        expr.setown(lookupSymbol(returnToken.getId(), returnToken));
                         state = expr ? StateDot : StateFailed;
                         break;
                     }
@@ -1606,7 +1606,7 @@ bool HqlLex::getDefinedParameter(StringBuffer &curParam, YYSTYPE & returnToken,
                         IHqlScope * scope = expr->queryScope();
                         if (scope)
                         {
-                            expr.setown(yyParser->lookupSymbol(scope, returnToken.getName()));
+                            expr.setown(yyParser->lookupSymbol(scope, returnToken.getId()));
                             if (expr)
                                 state = StateDot;
                         }

+ 7 - 7
ecl/hql/hqlrepository.cpp

@@ -116,12 +116,12 @@ IHqlExpression * getResolveAttributeFullPath(const char * attrname, unsigned loo
         IIdAtom * moduleName;
         if (dot)
         {
-            moduleName = createIdentifierAtom(item, dot-item);
+            moduleName = createIdAtom(item, dot-item);
             item = dot + 1;
         }
         else
         {
-            moduleName = createIdentifierAtom(item);
+            moduleName = createIdAtom(item);
         }
 
         OwnedHqlExpr resolved;
@@ -313,10 +313,10 @@ static void getFullName(StringBuffer & fullName, IHqlScope * scope, IIdAtom * at
 
 IHqlExpression * CNewEclRepository::createSymbol(IHqlRemoteScope * rScope, IEclSource * source)
 {
-    IIdAtom * eclName = source->queryEclName();
+    IIdAtom * eclId = source->queryEclId();
     IHqlScope * scope = rScope->queryScope();
     StringBuffer fullName;
-    getFullName(fullName, scope, eclName);
+    getFullName(fullName, scope, eclId);
 
     EclSourceType sourceType = source->queryType();
     IFileContents * contents = source->queryFileContents();
@@ -348,21 +348,21 @@ IHqlExpression * CNewEclRepository::createSymbol(IHqlRemoteScope * rScope, IEclS
             //Slightly ugly create a "delayed" nested scope instead.  But with a NULL owner - so will never be called back
             //Probably should be a difference class instance
             Owned<IProperties> props = source->getProperties();
-            Owned<IHqlRemoteScope> childScope = createRemoteScope(eclName, fullName.str(), NULL, props, contents, true, source);
+            Owned<IHqlRemoteScope> childScope = createRemoteScope(eclId, fullName.str(), NULL, props, contents, true, source);
             body.set(queryExpression(childScope->queryScope()));
             break;
         }
     case ESTcontainer:
         {
             Owned<IProperties> props = source->getProperties();
-            Owned<IHqlRemoteScope> childScope = createRemoteScope(eclName, fullName.str(), this, props, NULL, true, source);
+            Owned<IHqlRemoteScope> childScope = createRemoteScope(eclId, fullName.str(), this, props, NULL, true, source);
             body.set(queryExpression(childScope->queryScope()));
             break;
         }
     default:
         throwUnexpected();
     }
-    return ::createSymbol(eclName, scope->queryId(), body.getClear(), NULL, true, true, symbolFlags, contents, 0, 0, 0, 0, 0);
+    return ::createSymbol(eclId, scope->queryId(), body.getClear(), NULL, true, true, symbolFlags, contents, 0, 0, 0, 0, 0);
 }
 
 

+ 7 - 7
ecl/hql/hqlthql.cpp

@@ -196,7 +196,7 @@ StringBuffer & HqltHql::appendId(StringBuffer & s, IIdAtom * id)
 
 StringBuffer &HqltHql::makeUniqueName(IHqlExpression * expr, StringBuffer &s)
 {
-    IIdAtom * moduleName = expr->queryFullModuleName();
+    IIdAtom * moduleName = expr->queryFullModuleId();
     if (moduleName && !ignoreModuleNames)
     {
         if (isPublicSymbol(expr))
@@ -2766,7 +2766,7 @@ StringBuffer &HqltHql::getTypeString(ITypeInfo * i, StringBuffer &s)
                 clashCounter++;
                 name.append("___").append(clashCounter);
             }
-            OwnedHqlExpr extra = createId(createIdentifierAtom(name.str()));
+            OwnedHqlExpr extra = createId(createIdAtom(name.str()));
             expr->setTransformExtra(extra); // LINKs !
             addVisited(expr);
 
@@ -2960,13 +2960,13 @@ StringBuffer &HqltHql::doAlias(IHqlExpression * expr, StringBuffer &name, bool i
             makeUniqueName(expr, temp);
             clashCounter++;
             temp.append("___").append(clashCounter);
-            OwnedHqlExpr extra = createId(createIdentifierAtom(temp.str()));
+            OwnedHqlExpr extra = createId(createIdAtom(temp.str()));
             expr->setTransformExtra(extra); // LINKs !
         }
 
 #ifdef SHOW_SYMBOL_LOCATION
         if (expandProcessed)
-            newdef.append(expr->queryFullModuleName()).append("(").append(expr->getStartLine()).append(",").append(expr->getStartColumn()).append("):");
+            newdef.append(expr->queryFullModuleId()).append("(").append(expr->getStartLine()).append(",").append(expr->getStartColumn()).append("):");
 #endif
         newdef.append(exports);
         lookupSymbolName(expr, name);
@@ -2982,7 +2982,7 @@ StringBuffer &HqltHql::doAlias(IHqlExpression * expr, StringBuffer &name, bool i
             {
                 if(!expr->queryTransformExtra())
                 {
-                    IHqlExpression * extra = createId(createIdentifierAtom(name.str()));
+                    IHqlExpression * extra = createId(createIdAtom(name.str()));
                     expr->setTransformExtra(extra); // LINKs !
                     extra->Release();
                     addVisited(expr);
@@ -2998,7 +2998,7 @@ StringBuffer &HqltHql::doAlias(IHqlExpression * expr, StringBuffer &name, bool i
         }
         else if(!inType)
         {
-            OwnedHqlExpr extra = createId(createIdentifierAtom(name.str()));
+            OwnedHqlExpr extra = createId(createIdAtom(name.str()));
             expr->setTransformExtra(extra); // LINKs !
             addVisited(expr);
         
@@ -3112,7 +3112,7 @@ void HqltHql::defineCallTarget(IHqlExpression * call, StringBuffer & name)
         StringBuffer newdef;
         m_service_names.append(*new StringBufferItem(name));
 
-        OwnedHqlExpr extra = createId(createIdentifierAtom(name.str()));
+        OwnedHqlExpr extra = createId(createIdAtom(name.str()));
         call->setTransformExtra(extra);
         addVisited(call);
 

+ 1 - 1
ecl/hql/hqltrans.cpp

@@ -4631,7 +4631,7 @@ IHqlExpression * GlobalToParameterTransformer::createTransformedBody(IHqlExpress
     paramName.append("_implicit_hidden_").append(parameters.ordinality());
     HqlExprArray attrs;
     attrs.append(*createAttribute(_hidden_Atom));
-    IHqlExpression * param = createParameter(createIdentifierAtom(paramName.str()), parameters.ordinality(), expr->getType(), attrs);
+    IHqlExpression * param = createParameter(createIdAtom(paramName.str()), parameters.ordinality(), expr->getType(), attrs);
     parameters.append(*param);
     defaults.append(*LINK(expr));
     return LINK(param);

+ 1 - 1
ecl/hql/hqlutil.cpp

@@ -149,7 +149,7 @@ inline IIdAtom * createMangledName(IHqlExpression * module, IHqlExpression * chi
     StringBuffer mangledName;
     mangledName.append(module->queryName()).append(".").append(child->queryName());
 
-    return createIdentifierAtom(mangledName.str());
+    return createIdAtom(mangledName.str());
 }
 
 IHqlExpression * queryDefaultMaxRecordLengthExpr()

+ 66 - 66
ecl/hqlcpp/hqlcatom.cpp

@@ -730,7 +730,7 @@ IIdAtom * xmlEncodeUStrId;
 
 //MORE: Need to change many MAKEATOM to MAKEID in this file, and most of the explicit calls should be removed/changed
 
-#define MAKEID(x)   x##Id = createIdentifierAtom(#x)
+#define MAKEID(x)   x##Id = createIdAtom(#x)
 #define MAKEATOM(x) x##Atom = createLowerCaseAtom(#x)
 #define MAKESYSATOM(x)  _##x##_Atom = createSystemAtom("$_" #x "_")
 
@@ -739,7 +739,7 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(clibExp);
     MAKEID(_fail);
 
-    acosId = createIdentifierAtom("_acos");
+    acosId = createIdAtom("_acos");
     MAKEID(addAggregateRow);
     MAKEID(addAll);
     MAKEID(addRange);
@@ -754,23 +754,23 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(appendRowsToRowset);
     MAKEID(appendSetX);
     MAKEID(ascii2ebcdic);
-    asinId = createIdentifierAtom("_asin");
-    atan2Id = createIdentifierAtom("_atan2");
-    atanId = createIdentifierAtom("_atan");
+    asinId = createIdAtom("_asin");
+    atan2Id = createIdAtom("_atan2");
+    atanId = createIdAtom("_atan");
     MAKEID(bool2Data);
     MAKEID(bool2Str);
     MAKEID(bool2StrX);
     MAKEID(bool2VStr);
     MAKEID(bool2VStrX);
     _clear(castIntId);
-    castIntId[3][true] = createIdentifierAtom("castInt3");
-    castIntId[5][true] = createIdentifierAtom("castInt5");
-    castIntId[6][true] = createIdentifierAtom("castInt6");
-    castIntId[7][true] = createIdentifierAtom("castInt7");
-    castIntId[3][false] = createIdentifierAtom("castUInt3");
-    castIntId[5][false] = createIdentifierAtom("castUInt5");
-    castIntId[6][false] = createIdentifierAtom("castUInt6");
-    castIntId[7][false] = createIdentifierAtom("castUInt7");
+    castIntId[3][true] = createIdAtom("castInt3");
+    castIntId[5][true] = createIdAtom("castInt5");
+    castIntId[6][true] = createIdAtom("castInt6");
+    castIntId[7][true] = createIdAtom("castInt7");
+    castIntId[3][false] = createIdAtom("castUInt3");
+    castIntId[5][false] = createIdAtom("castUInt5");
+    castIntId[6][false] = createIdAtom("castUInt6");
+    castIntId[7][false] = createIdAtom("castUInt7");
     MAKEID(checkFieldOverflow);
     MAKEID(checkPersistMatches);
     MAKEID(checkRowOverflow);
@@ -833,8 +833,8 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(concatVUnicode);
     MAKEID(concatVUnicodeF);
     MAKEID(concatVUnicodeToUnicode);
-    cosId = createIdentifierAtom("_cos");
-    coshId = createIdentifierAtom("_cosh");
+    cosId = createIdAtom("_cos");
+    coshId = createIdAtom("_cosh");
     MAKEID(countProvider);
     MAKEID(countRows);
     MAKEID(countToSize);
@@ -956,15 +956,15 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(ensureCapacity);
     MAKEID(ensureRowAvailable);
     MAKEID(__eog);
-    estr2EStrId = createIdentifierAtom("eStr2EStr");
-    estr2VStrId = createIdentifierAtom("eStr2VStr");
-    estr2VStrXId = createIdentifierAtom("EStr2VStrX");
+    estr2EStrId = createIdAtom("eStr2EStr");
+    estr2VStrId = createIdAtom("eStr2VStr");
+    estr2VStrXId = createIdAtom("EStr2VStrX");
     MAKEID(evaluateChildQueryInstance);
     MAKEID(ex2f);
     MAKEID(executeGraph);
     MAKEID(executeChildQueryInstance);
     MAKEID(f2an);
-    f2axId = createIdentifierAtom("_f2ax");
+    f2axId = createIdAtom("_f2ax");
     MAKEID(f2vn);
     MAKEID(f2vx);
     MAKEID(failDivideByZero);
@@ -1056,7 +1056,7 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(hashVUnicode);
     MAKEID(IIndirectMemberVisitor_visitRow);
     MAKEID(IIndirectMemberVisitor_visitRowset);
-    intFormatId = createIdentifierAtom("_intformat");
+    intFormatId = createIdAtom("_intformat");
     MAKEID(isResult);
     MAKEID(keyUnicodeX);
     MAKEID(keyUnicodeStrengthX);
@@ -1072,10 +1072,10 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(linkdataset2linkdataset);
     MAKEID(linkRow);
     MAKEID(linkRowset);
-    lnId = createIdentifierAtom("_ln");
+    lnId = createIdAtom("_ln");
     MAKEID(loadResource);
     MAKEID(lookupBlob);
-    log10Id = createIdentifierAtom("_log10");
+    log10Id = createIdAtom("_log10");
     MAKEID(ls42an);
     MAKEID(ls42ax);
     MAKEID(ls42vn);
@@ -1114,7 +1114,7 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(outputXmlUInt);
     MAKEID(outputXmlUnicode);
     MAKEID(outputXmlUtf8);
-    powerId = createIdentifierAtom("_power");
+    powerId = createIdAtom("_power");
     MAKEID(prefixDiffStr);
     MAKEID(prefixDiffUnicode);
     MAKEID(processFieldBool);
@@ -1150,23 +1150,23 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(queryLogicalFilename);
     MAKEID(rankedFromOrder);
     MAKEID(rankFromOrder);
-    readIntId[3][true] = createIdentifierAtom("readInt3");
-    readIntId[5][true] = createIdentifierAtom("readInt5");
-    readIntId[6][true] = createIdentifierAtom("readInt6");
-    readIntId[7][true] = createIdentifierAtom("readInt7");
-    readIntId[3][false] = createIdentifierAtom("readUInt3");
-    readIntId[5][false] = createIdentifierAtom("readUInt5");
-    readIntId[6][false] = createIdentifierAtom("readUInt6");
-    readIntId[7][false] = createIdentifierAtom("readUInt7");
-    readSwapIntId[3][true] = createIdentifierAtom("readSwapInt3");
-    readSwapIntId[5][true] = createIdentifierAtom("readSwapInt5");
-    readSwapIntId[6][true] = createIdentifierAtom("readSwapInt6");
-    readSwapIntId[7][true] = createIdentifierAtom("readSwapInt7");
-    readSwapIntId[3][false] = createIdentifierAtom("readSwapUInt3");
-    readSwapIntId[5][false] = createIdentifierAtom("readSwapUInt5");
-    readSwapIntId[6][false] = createIdentifierAtom("readSwapUInt6");
-    readSwapIntId[7][false] = createIdentifierAtom("readSwapUInt7");
-    realFormatId = createIdentifierAtom("_realformat");
+    readIntId[3][true] = createIdAtom("readInt3");
+    readIntId[5][true] = createIdAtom("readInt5");
+    readIntId[6][true] = createIdAtom("readInt6");
+    readIntId[7][true] = createIdAtom("readInt7");
+    readIntId[3][false] = createIdAtom("readUInt3");
+    readIntId[5][false] = createIdAtom("readUInt5");
+    readIntId[6][false] = createIdAtom("readUInt6");
+    readIntId[7][false] = createIdAtom("readUInt7");
+    readSwapIntId[3][true] = createIdAtom("readSwapInt3");
+    readSwapIntId[5][true] = createIdAtom("readSwapInt5");
+    readSwapIntId[6][true] = createIdAtom("readSwapInt6");
+    readSwapIntId[7][true] = createIdAtom("readSwapInt7");
+    readSwapIntId[3][false] = createIdAtom("readSwapUInt3");
+    readSwapIntId[5][false] = createIdAtom("readSwapUInt5");
+    readSwapIntId[6][false] = createIdAtom("readSwapUInt6");
+    readSwapIntId[7][false] = createIdAtom("readSwapUInt7");
+    realFormatId = createIdAtom("_realformat");
     MAKEID(regexFindX);
     MAKEID(regexGetFindStr);
     MAKEID(regexNewSetStrPattern);
@@ -1188,24 +1188,24 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(restoreCluster);
     MAKEID(returnPersistVersion);
 
-    reverseIntId[2][false] = createIdentifierAtom("revUInt2");
-    reverseIntId[3][false] = createIdentifierAtom("revUInt3");
-    reverseIntId[4][false] = createIdentifierAtom("revUInt4");
-    reverseIntId[5][false] = createIdentifierAtom("revUInt5");
-    reverseIntId[6][false] = createIdentifierAtom("revUInt6");
-    reverseIntId[7][false] = createIdentifierAtom("revUInt7");
-    reverseIntId[8][false] = createIdentifierAtom("revUInt8");
-    reverseIntId[2][true] = createIdentifierAtom("revInt2");
-    reverseIntId[3][true] = createIdentifierAtom("revInt3");
-    reverseIntId[4][true] = createIdentifierAtom("revInt4");
-    reverseIntId[5][true] = createIdentifierAtom("revInt5");
-    reverseIntId[6][true] = createIdentifierAtom("revInt6");
-    reverseIntId[7][true] = createIdentifierAtom("revInt7");
-    reverseIntId[8][true] = createIdentifierAtom("revInt8");
+    reverseIntId[2][false] = createIdAtom("revUInt2");
+    reverseIntId[3][false] = createIdAtom("revUInt3");
+    reverseIntId[4][false] = createIdAtom("revUInt4");
+    reverseIntId[5][false] = createIdAtom("revUInt5");
+    reverseIntId[6][false] = createIdAtom("revUInt6");
+    reverseIntId[7][false] = createIdAtom("revUInt7");
+    reverseIntId[8][false] = createIdAtom("revUInt8");
+    reverseIntId[2][true] = createIdAtom("revInt2");
+    reverseIntId[3][true] = createIdAtom("revInt3");
+    reverseIntId[4][true] = createIdAtom("revInt4");
+    reverseIntId[5][true] = createIdAtom("revInt5");
+    reverseIntId[6][true] = createIdAtom("revInt6");
+    reverseIntId[7][true] = createIdAtom("revInt7");
+    reverseIntId[8][true] = createIdAtom("revInt8");
 
-    roundId = createIdentifierAtom("_round");
+    roundId = createIdAtom("_round");
     MAKEID(roundTo);
-    roundupId = createIdentifierAtom("_roundup");
+    roundupId = createIdAtom("_roundup");
     MAKEID(rowset2DatasetX);
     MAKEID(rtlDeserializeDictionary);
     MAKEID(rtlDeserializeDictionaryFromDataset);
@@ -1274,9 +1274,9 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(setResultVarUnicode);
     MAKEID(setWorkflowCondition);
     MAKEID(set2SetX);
-    sinId = createIdentifierAtom("_sin");
-    sinhId = createIdentifierAtom("_sinh");
-    sqrtId = createIdentifierAtom("_sqrt");
+    sinId = createIdAtom("_sin");
+    sinhId = createIdAtom("_sinh");
+    sqrtId = createIdAtom("_sqrt");
     MAKEID(startPersist);
     MAKEID(str2Data);
     MAKEID(str2DataX);
@@ -1298,8 +1298,8 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(subStrFT);
     MAKEID(subStrFTX);
     MAKEID(sysFail);
-    tanId = createIdentifierAtom("_tan");
-    tanhId = createIdentifierAtom("_tanh");
+    tanId = createIdAtom("_tan");
+    tanhId = createIdAtom("_tanh");
     MAKEID(trimAll);
     MAKEID(trimBoth);
     MAKEID(trimLeft);
@@ -1325,7 +1325,7 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(trimVUnicodeLeft);
     MAKEID(trimVUnicodeRight);
     MAKEID(trimVUnicodeStrLen);
-    truncateId = createIdentifierAtom("_truncate");
+    truncateId = createIdAtom("_truncate");
     MAKEID(UChar);
     MAKEID(unicode2Codepage);
     MAKEID(unicode2CodepageX);
@@ -1387,10 +1387,10 @@ MODULE_INIT(INIT_PRIORITY_HQLATOM-1)
     MAKEID(wregexGetFindStr);
     MAKEID(wregexReplaceX);
     MAKEID(writeEbcdic);
-    writeIntId[3] = createIdentifierAtom("writeInt3");
-    writeIntId[5] = createIdentifierAtom("writeInt5");
-    writeIntId[6] = createIdentifierAtom("writeInt6");
-    writeIntId[7] = createIdentifierAtom("writeInt7");
+    writeIntId[3] = createIdAtom("writeInt3");
+    writeIntId[5] = createIdAtom("writeInt5");
+    writeIntId[6] = createIdAtom("writeInt6");
+    writeIntId[7] = createIdAtom("writeInt7");
     MAKEID(writeReal);
     MAKEID(writeSigned);
     MAKEID(writeString);

+ 1 - 1
ecl/hqlcpp/hqlckey.cpp

@@ -794,7 +794,7 @@ IHqlExpression * KeyedJoinInfo::optimizeTransfer(HqlExprArray & fields, HqlExprA
                         //Check same field isn't used in two different nested records.
                         StringBuffer name;
                         name.append("__unnamed__").append(fields.ordinality());
-                        field.setown(createField(createIdentifierAtom(name), field->getType(), NULL, NULL));
+                        field.setown(createField(createIdAtom(name), field->getType(), NULL, NULL));
                     }
 
                     fields.append(*LINK(field));

+ 6 - 3
ecl/hqlcpp/hqlcpp.cpp

@@ -1392,7 +1392,7 @@ HqlCppTranslator::HqlCppTranslator(IErrorReceiver * _errors, const char * _soNam
     litno = 0;
     soName.set(_soName);
     HqlDummyLookupContext dummyctx(NULL);
-    OwnedHqlExpr internalScopeLookup = cppSystemScope->lookupSymbol(createIdentifierAtom("InternalCppService"), LSFsharedOK, dummyctx);
+    OwnedHqlExpr internalScopeLookup = cppSystemScope->lookupSymbol(createIdAtom("InternalCppService"), LSFsharedOK, dummyctx);
     internalScope = internalScopeLookup->queryScope();
     _clear(options);                    // init options is called later, but depends on the workunit.
     startCursorSet = 0;
@@ -1704,6 +1704,7 @@ void HqlCppTranslator::cacheOptions()
         DebugOption(options.matchExistingDistributionForJoin,"matchExistingDistributionForJoin",true),
         DebugOption(options.expandHashJoin,"expandHashJoin",false),
         DebugOption(options.traceIR,"traceIR",false),
+        DebugOption(options.preserveCaseExternalParameter,"preserveCaseExternalParameter",true),
     };
 
     //get options values from workunit
@@ -10097,7 +10098,7 @@ void HqlCppTranslator::doStringTranslation(BuildCtx & ctx, ICharsetInfo * tgtset
     ITranslationInfo * translator = queryDefaultTranslation(tgtset, srcset);
     if (translator)
     {
-        IIdAtom * func = createIdentifierAtom(translator->queryRtlFunction());
+        IIdAtom * func = createIdAtom(translator->queryRtlFunction());
         args.append(*getSizetConstant(tgtlen));
         args.append(*getElementPointer(target));
         args.append(*LINK(srclen));
@@ -10761,7 +10762,7 @@ void HqlCppTranslator::assignCastUnknownLength(BuildCtx & ctx, const CHqlBoundTa
 
                             ITranslationInfo * translator = queryDefaultTranslation(tgtset, srcset);
                             if (translator)
-                                funcName = createIdentifierAtom(translator->queryVarRtlFunction());
+                                funcName = createIdAtom(translator->queryVarRtlFunction());
                             else
                                 funcName = str2StrXId;
                         }
@@ -11502,6 +11503,8 @@ void HqlCppTranslator::buildScriptFunctionDefinition(BuildCtx &funcctx, IHqlExpr
         ITypeInfo *paramType = param->queryType();
         IIdAtom * paramId = param->queryId();
         const char * paramNameText = paramId->str();
+        if (!options.preserveCaseExternalParameter)
+            paramNameText = paramId->lower()->str();
         args.append(*createConstant(paramNameText));
         IIdAtom * bindFunc;
         switch (paramType->getTypeCode())

+ 1 - 0
ecl/hqlcpp/hqlcpp.ipp

@@ -718,6 +718,7 @@ struct HqlCppOptions
     bool                matchExistingDistributionForJoin;
     bool                expandHashJoin;
     bool                traceIR;
+    bool                preserveCaseExternalParameter;
 };
 
 //Any information gathered while processing the query should be moved into here, rather than cluttering up the translator class

+ 5 - 5
ecl/hqlcpp/hqlcppcase.cpp

@@ -51,11 +51,11 @@ static IIdAtom * searchVStringTableAtom;
 
 MODULE_INIT(INIT_PRIORITY_STANDARD)
 {
-    searchDataTableAtom = createIdentifierAtom("searchDataTable");
-    searchEStringTableAtom = createIdentifierAtom("searchEStringTable");
-    searchQStringTableAtom = createIdentifierAtom("searchQStringTable");
-    searchStringTableAtom = createIdentifierAtom("searchStringTable");
-    searchVStringTableAtom = createIdentifierAtom("searchVStringTable");
+    searchDataTableAtom = createIdAtom("searchDataTable");
+    searchEStringTableAtom = createIdAtom("searchEStringTable");
+    searchQStringTableAtom = createIdAtom("searchQStringTable");
+    searchStringTableAtom = createIdAtom("searchStringTable");
+    searchVStringTableAtom = createIdAtom("searchVStringTable");
     return true;
 }
 MODULE_EXIT()

+ 3 - 3
ecl/hqlcpp/hqlcset.cpp

@@ -769,7 +769,7 @@ BoundRow * InlineLinkedDictionaryCursor::buildSelectMap(BuildCtx & ctx, IHqlExpr
         args.add(*LINK(dictionary), 0);
         args.append(*getExtractSelect(searchExpr->queryChild(0), queryFirstField(searchRecord)));
         args.append(*::createRow(no_null, LINK(record))); // the default record
-        lookupFunction = createIdentifierAtom(optimizedLookupFunc);
+        lookupFunction = createIdAtom(optimizedLookupFunc);
     }
     else
     {
@@ -832,7 +832,7 @@ void InlineLinkedDictionaryCursor::buildInDataset(BuildCtx & ctx, IHqlExpression
     {
         args.add(*LINK(dictionary), 0);
         args.append(*getExtractSelect(searchExpr->queryChild(0), queryFirstField(searchRecord)));
-        lookupFunction = createIdentifierAtom(optimizedLookupFunc);
+        lookupFunction = createIdAtom(optimizedLookupFunc);
     }
     else
     {
@@ -1383,7 +1383,7 @@ IHqlExpression * CreateSetCursor::createDatasetSelect(IHqlExpression * indexExpr
     }
     else
     {
-        OwnedHqlExpr field = createField(createIdentifierAtom("__f1__"), value->getType(), NULL);
+        OwnedHqlExpr field = createField(createIdAtom("__f1__"), value->getType(), NULL);
         IHqlExpression * aggregateRecord = createRecord(field);
 
         IHqlExpression * assign = createAssign(createSelectExpr(getSelf(aggregateRecord), LINK(field)), LINK(value));

+ 2 - 2
ecl/hqlcpp/hqlgraph.cpp

@@ -374,7 +374,7 @@ void LogicalGraphCreator::createGraphActivity(IHqlExpression * expr)
     if (symbol)
     {
         addAttribute("name", symbol->queryId()->str());
-        addAttribute("module", symbol->queryFullModuleName()->str());
+        addAttribute("module", symbol->queryFullModuleId()->str());
         addAttributeInt("line", symbol->getStartLine());
         addAttributeInt("column", symbol->getStartColumn());
     }
@@ -564,7 +564,7 @@ const char * LogicalGraphCreator::getActivityText(IHqlExpression * expr, StringB
 {
     if (expr->queryBody() != expr)
     {
-        IIdAtom * module = includeModuleInText ? expr->queryFullModuleName() : NULL;
+        IIdAtom * module = includeModuleInText ? expr->queryFullModuleId() : NULL;
         IIdAtom * name = includeNameInText ? expr->queryId() : NULL;
         StringBuffer header;
         if (module)

+ 1 - 1
ecl/hqlcpp/hqlhtcpp.cpp

@@ -13590,7 +13590,7 @@ ABoundActivity * HqlCppTranslator::doBuildActivityDedup(BuildCtx & ctx, IHqlExpr
             {
                 StringBuffer name;
                 name.append("_expression_").append(idx);
-                field = createField(createIdentifierAtom(name.str()), cur.getType(), NULL);
+                field = createField(createIdAtom(name.str()), cur.getType(), NULL);
             }
             fields.append(*field);
             selects.append(*createSelectExpr(getActiveTableSelector(), LINK(field)));

+ 1 - 1
ecl/hqlcpp/hqlregex.cpp

@@ -168,7 +168,7 @@ IHqlExpression * RegexIdAllocator::createKey(IHqlExpression * expr, IAtom * name
         return NULL;
     IHqlExpression * body = expr->queryBody();
     if (name)
-        return createSymbol(createIdentifierAtom(name->str()), LINK(body), ob_private);
+        return createSymbol(createIdAtom(name->str()), LINK(body), ob_private);
     return LINK(body);
 }
 

+ 1 - 1
ecl/hqlcpp/hqltcppc.cpp

@@ -3459,7 +3459,7 @@ IHqlExpression * SerializationRow::createField(IIdAtom * id, ITypeInfo * type)
     {
         StringBuffer fieldName;
         fieldName.append("__f").append(numFields()).append("__");
-        id = createIdentifierAtom(fieldName);
+        id = createIdAtom(fieldName);
     }
     IHqlExpression * attr = hasLinkCountedModifier(type) ? getLinkCountedAttr() : NULL;
     OwnedHqlExpr newField = ::createField(id, LINK(type), attr, NULL);

+ 5 - 5
ecl/hqlcpp/hqlttcpp.cpp

@@ -1583,7 +1583,7 @@ IHqlExpression * evalNormalizeAggregateExpr(IHqlExpression * selector, IHqlExpre
             {
                 StringBuffer temp;
                 temp.append("_agg_").append(assigns.ordinality());
-                targetField = createField(createIdentifierAtom(temp.str()), expr->getType(), NULL);
+                targetField = createField(createIdAtom(temp.str()), expr->getType(), NULL);
                 extraSelectNeeded = true;
             }
             fields.append(*targetField);
@@ -3152,7 +3152,7 @@ static IHqlExpression * extractPrefetchFields(HqlExprArray & fields, HqlExprArra
         match = fields.ordinality();
         StringBuffer name;
         name.append("_f").append(match).append("_");
-        IHqlExpression * field = createField(createIdentifierAtom(name.str()), expr->getType(), NULL);
+        IHqlExpression * field = createField(createIdAtom(name.str()), expr->getType(), NULL);
         fields.append(*field);
         values.append(*LINK(expr));
     }
@@ -3403,7 +3403,7 @@ IHqlExpression * ThorHqlTransformer::normalizeTableToAggregate(IHqlExpression *
             {
                 StringBuffer temp;
                 temp.append("_agg_").append(aggregateAssigns.ordinality());
-                IHqlExpression * targetField = createField(createIdentifierAtom(temp.str()), curGroup->getType(), NULL);
+                IHqlExpression * targetField = createField(createIdAtom(temp.str()), curGroup->getType(), NULL);
                 aggregateFields.append(*targetField);
                 aggregateAssigns.append(*createAssign(createSelectExpr(getActiveTableSelector(), LINK(targetField)), LINK(curGroup)));
                 extraSelectNeeded = true;
@@ -10217,7 +10217,7 @@ static IIdAtom * simplifySymbolName(IIdAtom * name, bool commonUniqueNameAttribu
     {
         StringAttr truncName;
         truncName.set(nameText, len);
-        return createIdentifierAtom(truncName);
+        return createIdAtom(truncName);
     }
     return NULL;
 }
@@ -10225,7 +10225,7 @@ static IIdAtom * simplifySymbolName(IIdAtom * name, bool commonUniqueNameAttribu
 static IIdAtom * lowerCaseSymbolName(IIdAtom * name)
 {
     if (containsUpperCase(name->str()))
-        return createIdentifierAtom(name->lower()->str());
+        return createIdAtom(name->lower()->str());
     return name;
 }