src\query\parser\Translator.cpp
scidb::parser::Translator::passSelectList
case namedExpr:
{LOG4CXX_TRACE(logger, "Item is named expression");
// If reference is attribute, we must do PROJECT
bool doProject = false;
if ( selItem->get(namedExprArgExpr)->is(reference)
&& !selItem->get(namedExprArgName)
&& !(grwAsClause && grwAsClause->is(redimensionClause)))
{
const Node* refNode = selItem->get(namedExprArgExpr);
const chars name = getStringReferenceArgName(refNode);
const chars alias = getStringReferenceArgArrayName(refNode);
cout<<"name= "<<name<<"alias="<<alias<<endl;
// Strange issue with BOOST_FOREACH infinity loop. Leaving for-loop instead.
for(vector<AttributeDesc>::const_iterator attIt = inputSchema.getAttributes().begin();
attIt != inputSchema.getAttributes().end(); ++attIt)
{
LOG4CXX_TRACE(logger, "Item is named expression");
if (attIt->getName() == name && attIt->hasAlias(alias))
{
cout<<"doProject name="<<name<<endl;
doProject = true;
break;
}
}
}
name= objIDalias=P
doProject name=objID
name= ualias=P
doProject name=u
name= galias=P
doProject name=g
name= ralias=P
doProject name=r
name= ialias=P
doProject name=i
name= zalias=P
doProject name=z
name= objIDalias=P
doProject name=objID
name= ualias=P
doProject name=u
name= galias=P
doProject name=g
name= ralias=P
doProject name=r
name= ialias=P
doProject name=i
name= zalias=P
doProject name=z