From: John S. <jp...@us...> - 2007-11-29 16:55:04
|
Update of /cvsroot/xqilla/xqilla/src/functions In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv3265/src/functions Modified Files: FunctionCollection.cpp FunctionDoc.cpp FunctionParseXML.cpp Log Message: Added methods to StaticContext to enable or disable document projection. It is on by default, unless generating the projection information finds that might not be safe. The user can override whether it is used or not at runtime. Index: FunctionParseXML.cpp =================================================================== RCS file: /cvsroot/xqilla/xqilla/src/functions/FunctionParseXML.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FunctionParseXML.cpp 28 Nov 2007 13:13:32 -0000 1.5 --- FunctionParseXML.cpp 29 Nov 2007 16:53:01 -0000 1.6 *************** *** 72,78 **** try { ! QPNVector projection; ! projection.push_back(queryPathTree_); ! return Sequence(context->parseDocument(src, this, queryPathTree_ ? &projection : 0), context->getMemoryManager()); } catch(XMLParseException &e) { --- 72,76 ---- try { ! return Sequence(context->parseDocument(src, this, context->getProjection() ? queryPathTree_ : 0), context->getMemoryManager()); } catch(XMLParseException &e) { Index: FunctionCollection.cpp =================================================================== RCS file: /cvsroot/xqilla/xqilla/src/functions/FunctionCollection.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** FunctionCollection.cpp 28 Nov 2007 13:13:28 -0000 1.23 --- FunctionCollection.cpp 29 Nov 2007 16:53:01 -0000 1.24 *************** *** 70,78 **** //args 0 - URI to resolve if(getNumArgs() == 0) ! return context->resolveDefaultCollection(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) ! return context->resolveDefaultCollection(); const XMLCh *uri = arg->asString(context); --- 70,78 ---- //args 0 - URI to resolve if(getNumArgs() == 0) ! return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) ! return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); const XMLCh *uri = arg->asString(context); *************** *** 80,86 **** XQThrow(FunctionException, X("FunctionCollection::createSequence"), X("Invalid URI format [err:FODC0002]")); ! QPNVector projection; ! projection.push_back(queryPathTree_); ! return context->resolveCollection(uri, this, queryPathTree_ ? &projection : 0); } --- 80,84 ---- XQThrow(FunctionException, X("FunctionCollection::createSequence"), X("Invalid URI format [err:FODC0002]")); ! return context->resolveCollection(uri, this, context->getProjection() ? queryPathTree_ : 0); } Index: FunctionDoc.cpp =================================================================== RCS file: /cvsroot/xqilla/xqilla/src/functions/FunctionDoc.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** FunctionDoc.cpp 28 Nov 2007 13:13:28 -0000 1.21 --- FunctionDoc.cpp 29 Nov 2007 16:53:01 -0000 1.22 *************** *** 102,107 **** XQThrow(FunctionException, X("FunctionDoc::createSequence"), X("Invalid argument to fn:doc function [err:FODC0005]")); ! QPNVector projection; ! projection.push_back(queryPathTree_); ! return context->resolveDocument(uri, this, queryPathTree_ ? &projection : 0); } --- 102,105 ---- XQThrow(FunctionException, X("FunctionDoc::createSequence"), X("Invalid argument to fn:doc function [err:FODC0005]")); ! return context->resolveDocument(uri, this, context->getProjection() ? queryPathTree_ : 0); } |