join on

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值