INT32 rtnSQLAddToSet::_push( const RTN_FUNC_PARAMS ¶m ) { INT32 rc = SDB_OK; SDB_ASSERT( _pArrBuilder != NULL, "_pArrBuilder can't be NULL!" ); try { const BSONElement &ele = *(param.begin()); if ( !ele.eoo() && !ele.isNull() && _fieldSet.find( ele ) == _fieldSet.end() ) { _pArrBuilder->append( ele ); BSONObjBuilder builder; builder.append( ele ); BSONObj obj = builder.obj(); _fieldSet.insert( obj.firstElement() ); _objVec.push_back( obj ); } } catch( std::exception &e ) { PD_LOG( PDERROR, "received unexpected error:%s", e.what() ); rc = SDB_SYS; goto error; } done: return rc; error: goto done; }
INT32 _rtnSQLMax::_push( const RTN_FUNC_PARAMS ¶m ) { INT32 rc = SDB_OK ; try { const BSONElement &ele = *(param.begin()) ; if ( ele.eoo() || ele.isNull() ) { goto done ; } else if ( _ele.eoo() ) { BSONObjBuilder builder ; builder.append( ele ) ; _obj = builder.obj() ; _ele = _obj.firstElement() ; } else if ( 0 > _ele.woCompare( ele, FALSE ) ) { BSONObjBuilder builder ; builder.append( ele ) ; _obj = builder.obj() ; _ele = _obj.firstElement() ; } else { /// do nothing. } } catch ( std::exception &e ) { PD_LOG( PDERROR, "unexcepted err happened:%s", e.what() ) ; rc = SDB_SYS ; goto error ; } done: return rc ; error: goto done ; }