SELECT P.objID,P.u,P.g,P.r, P.i,P.z FROM Galaxy$num AS P JOIN Star$num AS S ON P.parentID=S.parentID WHERE P.parentID>0;
src\query\parser\Translator.cpp:1673
scidb::parser::Translator::passGeneralizedJoin
for (size_t i = 0; pureDDJoin && (i < opParams.size()); i += 2)
{LOG4CXX_TRACE(logger, "Probably pure DD join");
bool isLeftDimension = resolveParamDimensionReference(inputSchemas, opParams[i], false);
bool isLeftAttribute = resolveParamAttributeReference(inputSchemas, opParams[i], false);
bool isRightDimension = resolveParamDimensionReference(inputSchemas, opParams[i + 1], false);
bool isRightAttribute = resolveParamAttributeReference(inputSchemas, opParams[i + 1], false);
const string leftFullName = str(boost::format("%s%s") % (opParams[i]->getArrayName() != "" ?
opParams[i]->getArrayName() + "." : "") % opParams[i]->getObjectName() );
const string rightFullName = str(boost::format("%s%s") % (opParams[i + 1]->getArrayName() != "" ?
opParams[i + 1]->getArrayName() + "." : "") % opParams[i + 1]->getObjectName() );
(gdb) p leftFullName
$24 = "P.parentID"
(gdb) p rightFullName
$26 = "S.parentID"
cout<<"leftFullName opParams[i]->getObjectNo()="<<opParams[i]->_objectNo<<endl;
cout<<"rightFullName opParams[i]->getObjectNo()="<<opParams[i+ 1]->_objectNo<<endl;
cout<<"leftFullName opParams[i]->_inputNo()="<<opParams[i]->_inputNo<<endl;
cout<<"rightFullName opParams[i]->_inputNo()="<<opParams[i+ 1]->_inputNo<<endl;
属性编号从0开始的。
attidset= 0attidset= 467attidset= 468attidset= 469attidset= 470attidset= 471
leftFullName opParams[i]->getObjectNo()=465
rightFullName opParams[i]->getObjectNo()=465
leftFullName opParams[i]->_inputNo()=0
rightFullName opParams[i]->_inputNo()=1