virtual string toString() const { stringstream ss ; ss << "Type:" << qgmPlanType( _type ) << '\n'; ss << "Updator:" << _updater.toString() << '\n'; ss << "Condition:" << _condition.toString() << '\n'; return ss.str() ; }
string _qgmPlDelete::toString() const { stringstream ss ; ss << "Type:" << qgmPlanType( _type ) << '\n'; ss << "Collection:" << _collection.toString() << '\n'; if ( !_condition.isEmpty() ) { ss << "Condition:" << _condition.toString() << '\n'; } return ss.str() ; }
string _qgmPlScan::toString() const { stringstream ss ; ss << "Type:" << qgmPlanType( _type ) << '\n'; ss << "Collection:" << _collection.toString() << '\n' ; if ( !_alias.empty() ) { ss << "Alias:" << _alias.toString() << '\n'; } if ( !_selector.empty() ) { ss << "Selector:" << _selector.toString() << '\n'; } if ( NULL != _conditionNode ) { qgmConditionNodeHelper tree( _conditionNode ) ; ss << "Condition:" << tree.toJson() << '\n'; } if ( !_orderby.isEmpty() ) { ss << "Sort:" << _orderby.toString() << '\n'; } if ( !_hint.isEmpty() ) { ss << "Hint:" << _hint.toString() << '\n'; } if ( 0 != _skip ) { ss << "Skip:" << _skip << '\n'; } if ( -1 != _return ) { ss << "Limit:" << _return << '\n'; } return ss.str() ; }