Ejemplo n.º 1
0
 INT32 rtnSQLAddToSet::_push( const RTN_FUNC_PARAMS &param )
 {
    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;
 }
Ejemplo n.º 2
0
 INT32 _rtnSQLMax::_push( const RTN_FUNC_PARAMS &param )
 {
    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 ;
 }