rpms/dbxml/devel dbxml-bash-include.patch, NONE, 1.1 patch.2.4.16.1, NONE, 1.1 dbxml.spec, 1.7, 1.8 import.log, 1.2, 1.3
Milan Zazrivec
mzazrive at fedoraproject.org
Mon Feb 23 09:39:28 UTC 2009
- Previous message: rpms/corosync/devel corosync-trunk_r1767.diff, NONE, 1.1 corosync-trunk_r1774.diff, NONE, 1.1 corosync.spec, 1.14, 1.15 gcc-44-fix.diff, 1.1, NONE
- Next message: rpms/openais/devel openais-trunk_r1717.diff, NONE, 1.1 openais.spec, 1.37, 1.38 add-SaTmr-pkgconfig.diff, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mzazrive
Update of /cvs/pkgs/rpms/dbxml/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25648/devel
Modified Files:
dbxml.spec import.log
Added Files:
dbxml-bash-include.patch patch.2.4.16.1
Log Message:
- add patch from oracle
- build for dist-f11
dbxml-bash-include.patch:
--- NEW FILE dbxml-bash-include.patch ---
diff -up ./dist/s_java.orig ./dist/s_java
--- ./dist/s_java.orig 2009-02-23 10:27:21.000000000 +0100
+++ ./dist/s_java 2009-02-23 10:27:28.000000000 +0100
@@ -7,7 +7,7 @@ t=/tmp/__t
trap 'rm -f $t; exit 0' 0 1 2 3 13 15
msgjava="/* DO NOT EDIT: automatically built by dist/s_java. */"
-. RELEASE
+. ./RELEASE
JAVA_SRCTOP=../src/java
JAVA_PKGDIR=com/sleepycat/dbxml
diff -up ./dist/s_paths.orig ./dist/s_paths
--- ./dist/s_paths.orig 2009-02-23 10:28:03.000000000 +0100
+++ ./dist/s_paths 2009-02-23 10:28:08.000000000 +0100
@@ -3,7 +3,7 @@
#
# Build lib_paths.sed from a template file
-. RELEASE
+. ./RELEASE
TMP=/tmp/s_paths$$a
trap "rm -f $TMPA; exit 1" 1 2 3 15
diff -up ./dist/s_perl.orig ./dist/s_perl
--- ./dist/s_perl.orig 2009-02-23 10:28:22.000000000 +0100
+++ ./dist/s_perl 2009-02-23 10:28:33.000000000 +0100
@@ -3,9 +3,9 @@
#
# Build config for the Perl API with our default paths.
-. RELEASE
+. ./RELEASE
-. s_process
+. ./s_process
PERL_SRCDIR=../src/perl
PERL_DBDIR=$PERL_SRCDIR/Db
diff -up ./dist/s_php.orig ./dist/s_php
--- ./dist/s_php.orig 2009-02-23 10:29:01.000000000 +0100
+++ ./dist/s_php 2009-02-23 10:29:10.000000000 +0100
@@ -3,7 +3,7 @@
#
# Build config.m4 for the PHP API using current configuration.
-. s_process
+. ./s_process
PHP_SRCDIR=../src/php
d=$PHP_SRCDIR/config.m4
diff -up ./dist/s_process.orig ./dist/s_process
--- ./dist/s_process.orig 2008-10-21 23:27:22.000000000 +0200
+++ ./dist/s_process 2009-02-23 10:29:30.000000000 +0100
@@ -2,7 +2,7 @@
#
# shell function to process a single template
-. RELEASE
+. ./RELEASE
TMP=/tmp/s_process$$a
trap "rm -f $TMPA; exit 1" 1 2 3 15
diff -up ./dist/s_python.orig ./dist/s_python
--- ./dist/s_python.orig 2008-10-21 23:27:14.000000000 +0200
+++ ./dist/s_python 2009-02-23 10:26:48.000000000 +0100
@@ -4,7 +4,7 @@
# Build setup.py.in for the Python API with our default library paths.
# It requires further processing via configure to create setup.py
-. s_process
+. ./s_process
PYTHON_SRCDIR=../src/python
d=$PYTHON_SRCDIR/setup.py.windows
diff -up ./dist/s_readme.orig ./dist/s_readme
--- ./dist/s_readme.orig 2008-10-21 23:27:14.000000000 +0200
+++ ./dist/s_readme 2009-02-23 10:26:02.000000000 +0100
@@ -6,7 +6,7 @@
t=/tmp/__t
trap 'rm -f $t; exit 0' 0 1 2 3 13 15
-. RELEASE
+. ./RELEASE
(echo "$DBXML_VERSION_STRING" &&
echo "" &&
diff -up ./dist/s_release.orig ./dist/s_release
--- ./dist/s_release.orig 2009-02-23 10:29:59.000000000 +0100
+++ ./dist/s_release 2009-02-23 10:30:05.000000000 +0100
@@ -5,9 +5,9 @@
./s_paths
-. RELEASE
+. ./RELEASE
-. s_process
+. ./s_process
process buildall.sh.template buildall.sh
process reltools/build.template reltools/build
--- NEW FILE patch.2.4.16.1 ---
diff -ru dist/swig/dbxml_python.i dist/swig/dbxml_python.i
--- dist/swig/dbxml_python.i 2008-10-21 14:27:14.000000000 -0700
+++ dist/swig/dbxml_python.i 2008-12-30 11:57:20.000000000 -0800
@@ -316,7 +316,15 @@
if ($1)
$result = PyString_FromString((const char*)$1);
else
- $result = NULL;
+ $result = Py_None;
+}
+
+%typemap(typecheck,precedence=SWIG_TYPECHECK_STRING) const unsigned char * {
+ $1 = PyString_Check($input) ? 1 : 0;
+}
+
+%typemap(typecheck,precedence=SWIG_TYPECHECK_STRING) const unsigned char * {
+ $1 = PyString_Check($input) ? 1 : 0;
}
%typemap(in) Dbt *, Dbt & (Dbt dbt) {
@@ -329,7 +337,7 @@
if ($1)
$result = PyString_FromStringAndSize((char *)$1->get_data(), $1->get_size());
else
- $result = NULL;
+ $result = Py_None;
}
%typemap(in) XmlData *, XmlData & (XmlData xml_data) {
@@ -345,7 +353,7 @@
$1->get_size());
delete $1; // done with new XmlData
} else
- $result = NULL;
+ $result = Py_None;
}
%{
@@ -468,14 +476,14 @@
%pythoncode %{
class XmlException(Exception):
- """Base class for BDB XML exceptions.
+ """Base class for BDB XML exceptions. It should never be called directly, and
+ if it is, it's an unknown error
Attributes:
- exceptionCode -- integer value
what -- the exception message
"""
- def __init__(self, ec, msg):
- self.exceptionCode = ec
- self.what = msg
+ def __init__(self, msg):
+ self.exceptionCode = INTERNAL_ERROR
+ self.what = "Unknown exception thrown: ",msg
def __str__(self):
return "XmlException %d, %s"%(self.exceptionCode,self.what)
def getexceptionCode(self):
@@ -488,7 +496,7 @@
Attributes:
dbError -- the Berkeley DB errno
"""
- def __init__(self, dberr, msg):
+ def __init__(self, msg, dberr):
self.exceptionCode = DATABASE_ERROR
self.what = msg
self.dbError = dberr
diff -ru src/dbxml/ConfigurationDatabase.cpp src/dbxml/ConfigurationDatabase.cpp
--- src/dbxml/ConfigurationDatabase.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/ConfigurationDatabase.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -52,7 +52,7 @@
dbtxn = txn->getDbTxn();
// always set DB_CREATE and DB_THREAD
- flags &= ~(DB_TXN_NOSYNC);
+ flags &= ~(DB_TXN_NOSYNC|DBXML_ENCRYPT|DBXML_CHKSUM);
flags |= DB_CREATE|DB_THREAD;
DbSequence *seq = new DbSequence(&db, 0);
if (seq) {
diff -ru src/dbxml/Document.cpp src/dbxml/Document.cpp
--- src/dbxml/Document.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/Document.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -571,6 +571,10 @@
consumed(getName(), consumed_);
ret = new MemBufInputStream(0, 0, getName().c_str(),false);
}
+ if(definitiveContent_ == DBT) {
+ dbtContent_ = 0;
+ definitiveContent_ = NONE;
+ }
return ret;
}
@@ -680,6 +684,7 @@
{
changeContentToNsDom(isns);
+ if (!nsDocument_) return 0; //empty document
if (nid.isDocRootNid())
return nsDocument_->getDocumentNode();
NsNode *nsNode = nsDocument_->getNode(nid, /*getNext*/false);
diff -ru src/dbxml/DocumentDatabase.cpp src/dbxml/DocumentDatabase.cpp
--- src/dbxml/DocumentDatabase.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/DocumentDatabase.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -184,9 +184,6 @@
id = ((Document&)old_document).getID();
new_document.getIDToSet() = id;
resetId = true;
- // clear modified flag if set on name
- const_cast<Document*>(&new_document)->
- clearModified(Name(metaDataName_uri_name));
}
} else {
err = indexer.getContainer()->getDocument(
diff -ru src/dbxml/nodeStore/NsDocumentDatabase.cpp src/dbxml/nodeStore/NsDocumentDatabase.cpp
--- src/dbxml/nodeStore/NsDocumentDatabase.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/nodeStore/NsDocumentDatabase.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -173,9 +173,6 @@
id = ((Document&)old_document).getID();
new_document.getIDToSet() = id;
resetId = true;
- // clear modified flag if set on name
- const_cast<Document*>(&new_document)->
- clearModified(Name(metaDataName_uri_name));
}
} else {
diff -ru src/dbxml/nodeStore/NsNid.cpp src/dbxml/nodeStore/NsNid.cpp
--- src/dbxml/nodeStore/NsNid.cpp 2008-10-21 14:27:17.000000000 -0700
+++ src/dbxml/nodeStore/NsNid.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -62,9 +62,9 @@
* 3. Between "1a0" and "1ab" ==> 1aam (cannot use "1aa")
*/
-const NsFullNid NsFullNid::docRootFullNid = NsFullNid();
-const NsNid NsNid::docRootNid;
-const NsNid NsNid::docMetaDataNid;
+NsFullNid NsFullNid::docRootFullNid;
+NsNid NsNid::docRootNid;
+NsNid NsNid::docMetaDataNid;
#define NID_BETW_INITIAL_SIZE 4 // must be two or more
#define NID_INITIAL_DIGIT 0
diff -ru src/dbxml/nodeStore/NsNid.hpp src/dbxml/nodeStore/NsNid.hpp
--- src/dbxml/nodeStore/NsNid.hpp 2008-10-21 14:27:17.000000000 -0700
+++ src/dbxml/nodeStore/NsNid.hpp 2008-12-30 11:57:20.000000000 -0800
@@ -108,23 +108,23 @@
// static methods
static void initDocRoot() {
- const_cast<NsNid&>(docRootNid) = rootNid;
- const_cast<NsNid&>(docMetaDataNid) = metadataNid;
+ docRootNid = rootNid;
+ docMetaDataNid = metadataNid;
}
static void displayNid(std::ostream &out, const char *buf, uint32_t len);
static const NsNid *getRootNid() {
- return &docRootNid;
+ return const_cast<NsNid*>(&docRootNid);
}
static const NsNid *getMetaDataNid() {
- return &docMetaDataNid;
+ return const_cast<NsNid*>(&docMetaDataNid);
}
static int compare(const unsigned char *n1,
const unsigned char *n2);
protected:
const unsigned char *nid_;
- static const NsNid docRootNid;
- static const NsNid docMetaDataNid;
+ static NsNid docRootNid;
+ static NsNid docMetaDataNid;
};
class NsFullNid {
@@ -215,15 +215,15 @@
return 4;
}
static const NsFullNid *getRootNid() {
- return &docRootFullNid;
+ return const_cast<const NsFullNid*>(&docRootFullNid);
}
static void initDocRootNid() {
- const_cast<NsFullNid&>(docRootFullNid).setDocRootNid();
+ docRootFullNid.setDocRootNid();
NsNid::initDocRoot();
}
static void initNid(xmlbyte_t *buf, xmlbyte_t id);
private:
- static const NsFullNid docRootFullNid;
+ static NsFullNid docRootFullNid;
};
class DBXML_EXPORT NsNidGen {
diff -ru src/dbxml/query/DecisionPointQP.cpp src/dbxml/query/DecisionPointQP.cpp
--- src/dbxml/query/DecisionPointQP.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/query/DecisionPointQP.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -3,7 +3,6 @@
//
// Copyright (c) 2002,2008 Oracle. All rights reserved.
//
-// $Id$
//
#include "../DbXmlInternal.hpp"
@@ -274,7 +273,7 @@
// **** IMPORTANT - This algorithm is very carefully arranged to avoid
// **** deadlocks and race-conditions. Don't rearrange things unless you
// **** know what you are doing!
-
+
// Get the runtime configuration
DbXmlConfiguration *conf = GET_CONFIGURATION(context);
@@ -354,7 +353,8 @@
}
{
OptimizationContext opt(OptimizationContext::ALTERNATIVES, context, 0, container);
- qp = qp->chooseAlternative(opt, "decision point", container->getContainerID() == 0);
+ opt.setCheckForSS(container->getContainerID() == 0);
+ qp = qp->chooseAlternative(opt, "decision point");
qp->logQP(opt.getLog(), "OQP", qp, opt.getPhase());
}
{
@@ -395,16 +395,27 @@
{
if(arg_ != 0)
_src.add(arg_->getStaticAnalysis());
+
+ bool checkForSS = opt.checkForSS();
+
+ try {
+ ListItem **li = &qpList_;
+ for(ListItem *oli = o->qpList_; oli != 0; oli = oli->next) {
+ opt.setCheckForSS(oli->container->getContainerID() == 0);
+
+ *li = new (mm) ListItem(oli->container, 0);
+ (*li)->qp = oli->qp->chooseAlternative(opt, "decision point");
- ListItem **li = &qpList_;
- for(ListItem *oli = o->qpList_; oli != 0; oli = oli->next) {
- *li = new (mm) ListItem(oli->container, 0);
- (*li)->qp = oli->qp->chooseAlternative(opt, "decision point", oli->container->getContainerID() == 0);
+ _src.add((*li)->qp->getStaticAnalysis());
- _src.add((*li)->qp->getStaticAnalysis());
-
- li = &(*li)->next;
+ li = &(*li)->next;
+ }
+ }
+ catch(...) {
+ opt.setCheckForSS(checkForSS);
+ throw;
}
+ opt.setCheckForSS(checkForSS);
}
DecisionPointQP::DecisionPointQP(const DecisionPointQP *o, XPath2MemoryManager *mm)
diff -ru src/dbxml/query/QueryPlan.cpp src/dbxml/query/QueryPlan.cpp
--- src/dbxml/query/QueryPlan.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/query/QueryPlan.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -3,7 +3,6 @@
//
// Copyright (c) 2002,2008 Oracle. All rights reserved.
//
-// $Id$
//
#include "../DbXmlInternal.hpp"
@@ -133,13 +132,44 @@
}
}
-CostSortItem::CostSortItem(QueryPlan *qp, OperationContext &oc, QueryExecutionContext &qec)
- : qp_(qp), cost_(qp->cost(oc, qec))
+class ContainsSequentialScan : public NodeVisitingOptimizer
+{
+public:
+ bool run(QueryPlan *qp)
+ {
+ found = false;
+ optimizeQP(qp);
+ return found;
+ }
+
+private:
+ virtual void resetInternal() {}
+
+ virtual ASTNode *optimize(ASTNode *item)
+ {
+ // Don't look inside ASTNode objects
+ return item;
+ }
+ virtual QueryPlan *optimizeSequentialScan(SequentialScanQP *item)
+ {
+ found = true;
+ return item;
+ }
+
+ bool found;
+};
+
+CostSortItem::CostSortItem(QueryPlan *qp, OperationContext &oc, QueryExecutionContext &qec, bool checkForSS)
+ : qp_(qp), cost_(qp->cost(oc, qec)),
+ hasSS_(false)
{
+ if(checkForSS) hasSS_ = ContainsSequentialScan().run(qp);
}
bool CostSortItem::operator<(const CostSortItem &o) const
{
+ if(hasSS_ != o.hasSS_) return !hasSS_;
+
if(cost_.totalPages() < o.cost_.totalPages()) return true;
if(cost_.totalPages() > o.cost_.totalPages()) return false;
@@ -194,12 +224,12 @@
}
++alternativesCount;
- costSortSet.insert(CostSortItem(*it, oc, qec));
+ costSortSet.insert(CostSortItem(*it, oc, qec, opt.checkForSS()));
if(costSortSet.size() > ALTERNATIVES_THRESHOLD) {
// Trim all QueryPlans outside of a factor of the cost of the lowest cost QueryPlan
// TBD Make the specific factor configurable - jpcs
- set<CostSortItem>::iterator cutPoint = costSortSet.lower_bound(costSortSet.begin()->cost_.totalPages() * cutOffFactor);
+ set<CostSortItem>::iterator cutPoint = costSortSet.lower_bound(CostSortItem(costSortSet.begin()->cost_.totalPages() * cutOffFactor, false));
if(cutPoint != costSortSet.begin() && cutPoint != costSortSet.end()) {
for(i = cutPoint; i != costSortSet.end(); ++i) {
if(Log::isLogEnabled(Log::C_OPTIMIZER, Log::L_DEBUG)) {
@@ -252,36 +282,9 @@
}
}
-class ContainsSequentialScan : public NodeVisitingOptimizer
-{
-public:
- bool run(QueryPlan *qp)
- {
- found = false;
- optimizeQP(qp);
- return found;
- }
-
-private:
- virtual void resetInternal() {}
-
- virtual ASTNode *optimize(ASTNode *item)
- {
- // Don't look inside ASTNode objects
- return item;
- }
- virtual QueryPlan *optimizeSequentialScan(SequentialScanQP *item)
- {
- found = true;
- return item;
- }
-
- bool found;
-};
-
-static bool betterAlternativeCost(const Cost &costA, bool ssA, const Cost &costB, bool ssB, bool noSequentialScan)
+static bool betterAlternativeCost(const Cost &costA, bool ssA, const Cost &costB, bool ssB, bool checkForSS)
{
- if(ssA != ssB && noSequentialScan) return ssB;
+ if(ssA != ssB && checkForSS) return ssB;
if(costA.totalPages() < costB.totalPages()) return true;
if(costA.totalPages() > costB.totalPages()) return false;
@@ -289,7 +292,7 @@
return costA.pagesOverhead < costB.pagesOverhead;
}
-QueryPlan *QueryPlan::chooseAlternative(OptimizationContext &opt, const char *name, bool noSequentialScan) const
+QueryPlan *QueryPlan::chooseAlternative(OptimizationContext &opt, const char *name) const
{
QueryPlans combinations;
createCombinations(MAX_ALTERNATIVES, opt, combinations);
@@ -318,7 +321,7 @@
Cost itCost = qp->cost(opt.getOperationContext(), qec);
bool itSS = ContainsSequentialScan().run(qp);
- if(bestQP == 0 || betterAlternativeCost(itCost, itSS, bestCost, bestSS, noSequentialScan)) {
+ if(bestQP == 0 || betterAlternativeCost(itCost, itSS, bestCost, bestSS, opt.checkForSS())) {
if(bestQP != 0) {
log(qec, "Rejected Alternative (not best)");
bestQP->logCost(qec, bestCost, 0);
diff -ru src/dbxml/query/QueryPlan.hpp src/dbxml/query/QueryPlan.hpp
--- src/dbxml/query/QueryPlan.hpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/query/QueryPlan.hpp 2008-12-30 11:57:20.000000000 -0800
@@ -3,7 +3,6 @@
//
// Copyright (c) 2002,2008 Oracle. All rights reserved.
//
-// $Id$
//
#ifndef __QUERYPLAN_HPP
@@ -65,7 +64,7 @@
};
OptimizationContext(Phase ph, DynamicContext *cn, QueryPlanOptimizer *qpo, ContainerBase *c = 0)
- : phase_(ph), context_(cn), qpo_(qpo), container_(c), isFetched_(false) {}
+ : phase_(ph), context_(cn), qpo_(qpo), container_(c), isFetched_(false), checkForSS_(false) {}
Phase getPhase() const { return phase_; }
@@ -82,6 +81,9 @@
const IndexSpecification &getIndexSpecification() const;
const Log &getLog() const;
+ bool checkForSS() const { return checkForSS_; }
+ void setCheckForSS(bool val) { checkForSS_ = val; }
+
private:
Phase phase_;
DynamicContext *context_;
@@ -89,6 +91,7 @@
ContainerBase *container_;
mutable IndexSpecification is_;
mutable bool isFetched_;
+ bool checkForSS_;
};
class QueryPlan : public LocationInfo
@@ -181,7 +184,7 @@
void createAlternatives(unsigned int maxAlternatives, OptimizationContext &opt, QueryPlans &alternatives) const;
void createReducedAlternatives(double cutOffFactor, unsigned int maxAlternatives, OptimizationContext &opt, QueryPlans &alternatives) const;
- QueryPlan *chooseAlternative(OptimizationContext &opt, const char *name, bool noSequentialScan = false) const;
+ QueryPlan *chooseAlternative(OptimizationContext &opt, const char *name) const;
virtual NodeIterator *createNodeIterator(DynamicContext *context) const = 0;
virtual Cost cost(OperationContext &context, QueryExecutionContext &qec) const = 0;
@@ -541,13 +544,14 @@
};
struct CostSortItem {
- CostSortItem(double cost) : qp_(0), cost_(0, cost) {}
- CostSortItem(QueryPlan *qp, OperationContext &oc, QueryExecutionContext &qec);
+ CostSortItem(double cost, bool hasSS) : qp_(0), cost_(0, cost), hasSS_(hasSS) {}
+ CostSortItem(QueryPlan *qp, OperationContext &oc, QueryExecutionContext &qec, bool checkForSS);
bool operator<(const CostSortItem &o) const;
QueryPlan *qp_;
Cost cost_;
+ bool hasSS_;
};
}
diff -ru src/dbxml/query/SequentialScanQP.cpp src/dbxml/query/SequentialScanQP.cpp
--- src/dbxml/query/SequentialScanQP.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/query/SequentialScanQP.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -3,7 +3,6 @@
//
// Copyright (c) 2002,2008 Oracle. All rights reserved.
//
-// $Id$
//
#include "../DbXmlInternal.hpp"
@@ -139,6 +138,7 @@
NodeIterator *SequentialScanQP::createNodeIterator(DynamicContext *context) const
{
+ DBXML_ASSERT(container_->getContainerID() != 0);
if(nodeType_ == ImpliedSchemaNode::METADATA) {
return container_->createDocumentIterator(context, this);
} else {
diff -ru src/dbxml/query/StructuralJoinQP.cpp src/dbxml/query/StructuralJoinQP.cpp
--- src/dbxml/query/StructuralJoinQP.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/query/StructuralJoinQP.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -1070,15 +1070,6 @@
if(!SuitableForPredicate().check(sj->getLeftArg()))
return 0;
- switch(sj->getRightArg()->getType()) {
-// case QueryPlan::PRESENCE:
-// case QueryPlan::VALUE:
-// case QueryPlan::RANGE:
-// case QueryPlan::SEQUENTIAL_SCAN:
- case QueryPlan::VARIABLE: return 0;
- default: break;
- }
-
if((sj->getFlags() & QueryPlan::SKIP_LEFT_TO_PREDICATE) != 0) return 0;
const XMLCh *varName = GET_CONFIGURATION(opt.getContext())->allocateTempVarName(mm);
@@ -1119,15 +1110,6 @@
if(!SuitableForPredicate().check(l))
return 0;
- switch(r->getType()) {
- case QueryPlan::PRESENCE:
- case QueryPlan::VALUE:
- case QueryPlan::RANGE:
- case QueryPlan::SEQUENTIAL_SCAN:
- case QueryPlan::VARIABLE: return 0;
- default: break;
- }
-
if((flags & QueryPlan::SKIP_LEFT_TO_PREDICATE) != 0) return 0;
const XMLCh *varName = GET_CONFIGURATION(opt.getContext())->allocateTempVarName(mm);
diff -ru src/dbxml/RawNodeValue.cpp src/dbxml/RawNodeValue.cpp
--- src/dbxml/RawNodeValue.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/RawNodeValue.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -84,6 +84,12 @@
// it comes from the Container.
DbWrapper *RawNodeValue::getDocDB() const
{
+ //Make sure the doc db of this node and the document are the same
+ if (!xdoc_.isNull()) {
+ DbWrapper *docDb = (*xdoc_).getDocDb();
+ if (docDb) return docDb;
+ }
+
Results &res = GET_RESULTS();
XmlManager &mgr = res.getManager();
CacheDatabaseMinder &minder = res.getDbMinder();
diff -ru src/dbxml/Results.cpp src/dbxml/Results.cpp
--- src/dbxml/Results.cpp 2008-10-21 14:27:22.000000000 -0700
+++ src/dbxml/Results.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -241,12 +241,13 @@
if (contextItem && (contextItem->getType() == XmlValue::NODE)) {
XmlDocument &xdoc = (XmlDocument&)contextItem->asDocument();
CacheDatabaseMinder &minder = ((Document *)xdoc)->getDbMinder();
- if (minder.isNull()) {
+ if (minder.isNull() && !((Document*)xdoc)->getContainerID()) {
dbMinder_.findOrAllocate((Manager&)(context->getManager()),
((Document *)xdoc)->getContainerID());
minder = dbMinder_;
}else
dbMinder_ = minder;
+ if ((*xdoc).isUninitialized()) (*xdoc).changeContentToNsDom(0);
}
oc_.set(txn);
conf_.setMinder(&evaluationMinder_);
diff -ru src/java/com/sleepycat/dbxml/dbxml_javaJNI.java src/java/com/sleepycat/dbxml/dbxml_javaJNI.java
--- src/java/com/sleepycat/dbxml/dbxml_javaJNI.java 2008-10-21 14:28:16.000000000 -0700
+++ src/java/com/sleepycat/dbxml/dbxml_javaJNI.java 2008-12-30 11:57:20.000000000 -0800
@@ -100,7 +100,6 @@
public final static native void XmlManager_setDefaultContainerType(long jarg1, XmlManager jarg1_, int jarg2);
public final static native int XmlManager_getDefaultContainerType(long jarg1, XmlManager jarg1_);
public final static native String XmlManager_getHome(long jarg1, XmlManager jarg1_);
- public final static native void XmlManager_registerResolver(long jarg1, XmlManager jarg1_, long jarg2, XmlResolver jarg2_);
public final static native int XmlManager_getImplicitTimezone(long jarg1, XmlManager jarg1_);
public final static native void XmlManager_setImplicitTimezone(long jarg1, XmlManager jarg1_, int jarg2);
public final static native int XmlManager_existsContainer(long jarg1, XmlManager jarg1_, String jarg2);
@@ -159,6 +158,7 @@
public final static native int XmlManager_get_version_patch();
public final static native String XmlManager_get_version_string();
public final static native XmlDocument XmlManager_createDocumentInternal(long jarg1, XmlManager jarg1_);
+ public final static native void XmlManager_registerResolverInternal(long jarg1, XmlManager jarg1_, long jarg2, XmlResolver jarg2_);
public final static native void delete_XmlIndexLookup(long jarg1);
public final static native boolean XmlIndexLookup_isNull(long jarg1, XmlIndexLookup jarg1_);
public final static native String XmlIndexLookup_getIndex(long jarg1, XmlIndexLookup jarg1_);
diff -ru src/java/com/sleepycat/dbxml/XmlDocument.java src/java/com/sleepycat/dbxml/XmlDocument.java
--- src/java/com/sleepycat/dbxml/XmlDocument.java 2008-10-21 14:27:22.000000000 -0700
+++ src/java/com/sleepycat/dbxml/XmlDocument.java 2008-12-30 11:57:20.000000000 -0800
@@ -115,9 +115,7 @@
content.stream = null;
content.type = NONE;
return ins;
- }else if (!content.hasContent() && docID == 0)
- return null;
- else
+ } else
return HelperFunctions.getContentAsXmlInputStream(this);
}
@@ -127,9 +125,7 @@
content.reader = null;
content.type = NONE;
return xer;
- }else if (!content.hasContent() && docID == 0)
- return null;
- else
+ } else
return HelperFunctions.getContentAsEventReader(this);
}
@@ -214,6 +210,13 @@
}
//The rest of this class is for internal use.
+ protected boolean isConstructed()
+ {
+ if(results == null && docID == 0)
+ return true;
+ return false;
+ }
+
/* If both modified and removed are set to false then the meta data is
* only being added if it does not already exist.
*/
@@ -259,11 +262,6 @@
content = new Content();
}
- protected void finalize() throws XmlException {
- metaData.clear();
- content.clear();
- }
-
protected void copy(XmlDocument o) throws XmlException {
docID = o.docID;
cid = o.cid;
@@ -360,6 +358,10 @@
protected void setEventWriter(long writer){
eventWriter = writer;
}
+
+ protected Content getEmptyContent() {
+ return new Content();
+ }
class Content {
public XmlEventReader reader;
diff -ru src/java/com/sleepycat/dbxml/XmlInputStream.java src/java/com/sleepycat/dbxml/XmlInputStream.java
--- src/java/com/sleepycat/dbxml/XmlInputStream.java 2008-10-21 14:28:16.000000000 -0700
+++ src/java/com/sleepycat/dbxml/XmlInputStream.java 2008-12-30 11:57:20.000000000 -0800
@@ -21,10 +21,6 @@
return (obj == null) ? 0 : obj.swigCPtr;
}
- protected void finalize() {
- delete();
- }
-
public void delete() /* no exception */ {
if(swigCPtr != 0 && swigCMemOwn) {
swigCMemOwn = false;
diff -ru src/java/com/sleepycat/dbxml/XmlManager.java src/java/com/sleepycat/dbxml/XmlManager.java
--- src/java/com/sleepycat/dbxml/XmlManager.java 2008-10-21 14:28:16.000000000 -0700
+++ src/java/com/sleepycat/dbxml/XmlManager.java 2008-12-30 11:57:20.000000000 -0800
@@ -16,6 +16,7 @@
import com.sleepycat.db.internal.DbEnv;
import com.sleepycat.db.internal.DbConstants;
import com.sleepycat.db.XmlHelper;
+ import java.util.LinkedList;
public class XmlManager {
private long swigCPtr;
@@ -49,6 +50,7 @@
private boolean threaded = true; // default on if no Environment
private boolean adopted = false;
private XmlManagerConfig config = null;
+ private LinkedList<XmlResolver> resolverStore;
public XmlManager(final Environment dbenv,
XmlManagerConfig config)
@@ -385,6 +387,18 @@
public void close() throws XmlException {
delete();
}
+
+ private synchronized void setResolver(XmlResolver resolver)
+ {
+ if (resolverStore == null) resolverStore = new LinkedList<XmlResolver>();
+ resolverStore.add(resolver); //prevents premature garbage collection
+ }
+
+ public void registerResolver(XmlResolver resolver) throws XmlException
+ {
+ setResolver(resolver);
+ registerResolverInternal(resolver);
+ }
public final static int LEVEL_NONE = dbxml_java.LEVEL_NONE;
public final static int LEVEL_DEBUG = dbxml_java.LEVEL_DEBUG;
@@ -438,10 +452,6 @@
return dbxml_javaJNI.XmlManager_getHome(swigCPtr, this);
}
- public void registerResolver(XmlResolver resolver) throws XmlException {
- dbxml_javaJNI.XmlManager_registerResolver(swigCPtr, this, XmlResolver.getCPtr(resolver), resolver);
- }
-
public int getImplicitTimezone() throws XmlException {
return dbxml_javaJNI.XmlManager_getImplicitTimezone(swigCPtr, this);
}
@@ -703,4 +713,8 @@
public XmlDocument createDocumentInternal() throws XmlException { return dbxml_javaJNI.XmlManager_createDocumentInternal(swigCPtr, this); }
+ public void registerResolverInternal(XmlResolver resolver) throws XmlException {
+ dbxml_javaJNI.XmlManager_registerResolverInternal(swigCPtr, this, XmlResolver.getCPtr(resolver), resolver);
+ }
+
}
diff -ru src/java/com/sleepycat/dbxml/XmlValue.java src/java/com/sleepycat/dbxml/XmlValue.java
--- src/java/com/sleepycat/dbxml/XmlValue.java 2008-10-21 14:27:22.000000000 -0700
+++ src/java/com/sleepycat/dbxml/XmlValue.java 2008-12-30 11:57:20.000000000 -0800
@@ -10,6 +10,8 @@
import java.util.*;
+import com.sleepycat.dbxml.XmlDocument.Content;
+
public class XmlValue {
protected Value value;
protected int valueType;
@@ -69,7 +71,10 @@
public XmlValue(XmlDocument document) throws XmlException
{
- XmlValue xmlvalue = HelperFunctions.createDocumentValue(document);
+ Content con = document.content;
+ document.content = document.getEmptyContent(); //Prevents the content from being consumed
+ XmlValue xmlvalue = HelperFunctions.createDocumentValue(document);
+ document.content = con;
valueType = xmlvalue.getType();
value = new NodeValue((NodeValue)xmlvalue.value);
((NodeValue)value).setDocument(document);
diff -ru src/java/dbxml_java_wrap.cpp src/java/dbxml_java_wrap.cpp
--- src/java/dbxml_java_wrap.cpp 2008-10-21 14:28:16.000000000 -0700
+++ src/java/dbxml_java_wrap.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -1516,10 +1516,8 @@
XmlValue value((XmlValue::Type)type, v);
}
SWIGINTERN XmlInputStream *HelperFunctions_getContentAsXmlInputStream(XmlDocument &doc){
- XmlEventReader &reader = doc.getContentAsEventReader();
- doc.setContentAsEventReader(reader);
- return doc.getContentAsXmlInputStream();
- }
+ return doc.getContentAsXmlInputStream();
+ }
SWIGINTERN XmlEventReader &HelperFunctions_getContentAsEventReader(XmlDocument &doc){
return doc.getContentAsEventReader();
}
@@ -1790,6 +1788,9 @@
SWIGINTERN XmlDocument XmlManager_createDocumentInternal(XmlManager *self){
return self->createDocument();
}
+SWIGINTERN void XmlManager_registerResolverInternal(XmlManager *self,XmlResolver *resolver){
+ self->registerResolver(*resolver);
+ }
SWIGINTERN XmlResults *XmlIndexLookup_execute__SWIG_0(XmlIndexLookup const *self,XmlQueryContext &context,u_int32_t flags=0){
return new XmlResults(self->execute(context, flags));
}
@@ -4365,55 +4366,6 @@
}
-SWIGEXPORT void JNICALL Java_com_sleepycat_dbxml_dbxml_1javaJNI_XmlManager_1registerResolver(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- XmlManager *arg1 = (XmlManager *) 0 ;
- XmlResolver *arg2 = 0 ;
-
- (void)jenv;
- (void)jcls;
- (void)jarg1_;
- (void)jarg2_;
- arg1 = *(XmlManager **)&jarg1;
- arg2 = *(XmlResolver **)&jarg2;
- if(!arg2) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "XmlResolver const & reference is null");
- return ;
- }
-
- if (!jarg1) {
- jenv->Throw((jthrowable)jenv->NewObject(xmlex_class, xmlex_construct,
- XmlException::INTERNAL_ERROR,
- jenv->NewStringUTF("null object - call after object destroyed?"),
- 0, 0, 0, 0));
- return ;
- }
-
- {
- jthrowable t = NULL;
- try {
- (arg1)->registerResolver((XmlResolver const &)*arg2);
- }
- catch (std::exception &se) {
- t = createException(jenv, &se);
- }
- catch(JavaException & /* je */) {
- // This means there's already an exception waiting in the JVM
- return ;
- }
- catch (...) {
- t = (jthrowable)jenv->NewObject(xmlex_class, xmlex_construct,
- XmlException::INTERNAL_ERROR,
- jenv->NewStringUTF("Uncaught exception from C++ API"), 0, 0, 0, 0);
- }
-
- if (t) {
- jenv->Throw(t);
- return ;
- }
- }
-}
-
-
SWIGEXPORT jint JNICALL Java_com_sleepycat_dbxml_dbxml_1javaJNI_XmlManager_1getImplicitTimezone(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
XmlManager *arg1 = (XmlManager *) 0 ;
@@ -8088,6 +8040,51 @@
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_dbxml_dbxml_1javaJNI_XmlManager_1registerResolverInternal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ XmlManager *arg1 = (XmlManager *) 0 ;
+ XmlResolver *arg2 = (XmlResolver *) 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ arg1 = *(XmlManager **)&jarg1;
+ arg2 = *(XmlResolver **)&jarg2;
+
+ if (!jarg1) {
+ jenv->Throw((jthrowable)jenv->NewObject(xmlex_class, xmlex_construct,
+ XmlException::INTERNAL_ERROR,
+ jenv->NewStringUTF("null object - call after object destroyed?"),
+ 0, 0, 0, 0));
+ return ;
+ }
+
+ {
+ jthrowable t = NULL;
+ try {
+ XmlManager_registerResolverInternal(arg1,arg2);
+ }
+ catch (std::exception &se) {
+ t = createException(jenv, &se);
+ }
+ catch(JavaException & /* je */) {
+ // This means there's already an exception waiting in the JVM
+ return ;
+ }
+ catch (...) {
+ t = (jthrowable)jenv->NewObject(xmlex_class, xmlex_construct,
+ XmlException::INTERNAL_ERROR,
+ jenv->NewStringUTF("Uncaught exception from C++ API"), 0, 0, 0, 0);
+ }
+
+ if (t) {
+ jenv->Throw(t);
+ return ;
+ }
+ }
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_dbxml_dbxml_1javaJNI_delete_1XmlIndexLookup(JNIEnv *jenv, jclass jcls, jlong jarg1) {
XmlIndexLookup *arg1 = (XmlIndexLookup *) 0 ;
diff -ru src/python/dbxml.py src/python/dbxml.py
--- src/python/dbxml.py 2008-10-21 14:28:13.000000000 -0700
+++ src/python/dbxml.py 2008-12-30 11:57:20.000000000 -0800
@@ -56,14 +56,14 @@
class XmlException(Exception):
- """Base class for BDB XML exceptions.
+ """Base class for BDB XML exceptions. It should never be called directly, and
+ if it is, it's an unknown error
Attributes:
- exceptionCode -- integer value
what -- the exception message
"""
- def __init__(self, ec, msg):
- self.exceptionCode = ec
- self.what = msg
+ def __init__(self, msg):
+ self.exceptionCode = INTERNAL_ERROR
+ self.what = "Unknown exception thrown: ",msg
def __str__(self):
return "XmlException %d, %s"%(self.exceptionCode,self.what)
def getexceptionCode(self):
@@ -76,7 +76,7 @@
Attributes:
dbError -- the Berkeley DB errno
"""
- def __init__(self, dberr, msg):
+ def __init__(self, msg, dberr):
self.exceptionCode = DATABASE_ERROR
self.what = msg
self.dbError = dberr
diff -ru src/python/dbxml_python_wrap.cpp src/python/dbxml_python_wrap.cpp
--- src/python/dbxml_python_wrap.cpp 2008-10-21 14:28:16.000000000 -0700
+++ src/python/dbxml_python_wrap.cpp 2008-12-30 11:57:20.000000000 -0800
@@ -2994,9 +2994,8 @@
#define SWIGTYPE_p_XmlValue swig_types[22]
#define SWIGTYPE_p_char swig_types[23]
#define SWIGTYPE_p_int swig_types[24]
-#define SWIGTYPE_p_unsigned_char swig_types[25]
-static swig_type_info *swig_types[27];
-static swig_module_info swig_module = {swig_types, 26, 0, 0, 0, 0};
+static swig_type_info *swig_types[26];
+static swig_module_info swig_module = {swig_types, 25, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -23335,7 +23334,7 @@
result->get_size());
delete result; // done with new XmlData
} else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -23408,7 +23407,7 @@
result->get_size());
delete result; // done with new XmlData
} else
- resultobj = NULL;
+ resultobj = Py_None;
}
if (SWIG_IsNewObj(res2)) delete arg2;
if (SWIG_IsNewObj(res3)) delete arg3;
@@ -34216,7 +34215,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34258,7 +34257,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34300,7 +34299,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34342,7 +34341,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34513,7 +34512,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34564,7 +34563,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34615,7 +34614,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34666,7 +34665,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34708,7 +34707,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34750,7 +34749,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -34792,7 +34791,7 @@
if (result)
resultobj = PyString_FromString((const char*)result);
else
- resultobj = NULL;
+ resultobj = Py_None;
}
SWIG_PYTHON_THREAD_END_BLOCK;
return resultobj;
@@ -35564,9 +35563,9 @@
_v = SWIG_CheckState(res);
}
if (_v) {
- void *vptr = 0;
- int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_unsigned_char, 0);
- _v = SWIG_CheckState(res);
+ {
+ _v = PyString_Check(argv[2]) ? 1 : 0;
+ }
if (_v) {
SWIG_PYTHON_THREAD_END_BLOCK;
return _wrap_XmlEventWriter_writeText__SWIG_1(self, args);
@@ -35585,9 +35584,9 @@
_v = SWIG_CheckState(res);
}
if (_v) {
- void *vptr = 0;
- int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_unsigned_char, 0);
- _v = SWIG_CheckState(res);
+ {
+ _v = PyString_Check(argv[2]) ? 1 : 0;
+ }
if (_v) {
{
int res = SWIG_AsVal_size_t(argv[3], NULL);
@@ -35674,9 +35673,9 @@
int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XmlEventWriter, 0);
_v = SWIG_CheckState(res);
if (_v) {
- void *vptr = 0;
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_unsigned_char, 0);
- _v = SWIG_CheckState(res);
+ {
+ _v = PyString_Check(argv[1]) ? 1 : 0;
+ }
if (_v) {
SWIG_PYTHON_THREAD_END_BLOCK;
return _wrap_XmlEventWriter_writeDTD__SWIG_1(self, args);
@@ -35689,9 +35688,9 @@
int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XmlEventWriter, 0);
_v = SWIG_CheckState(res);
if (_v) {
- void *vptr = 0;
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_unsigned_char, 0);
- _v = SWIG_CheckState(res);
+ {
+ _v = PyString_Check(argv[1]) ? 1 : 0;
+ }
if (_v) {
{
int res = SWIG_AsVal_size_t(argv[2], NULL);
@@ -36782,7 +36781,6 @@
static swig_type_info _swigt__p_XmlValue = {"_p_XmlValue", "XmlValue *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_int = {"_p_int", "int *|int32_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *", 0, 0, (void*)0, 0};
static swig_type_info *swig_type_initial[] = {
&_swigt__p_DbTxn,
@@ -36810,7 +36808,6 @@
&_swigt__p_XmlValue,
&_swigt__p_char,
&_swigt__p_int,
- &_swigt__p_unsigned_char,
};
static swig_cast_info _swigc__p_DbTxn[] = { {&_swigt__p_DbTxn, 0, 0, 0},{0, 0, 0, 0}};
@@ -36838,7 +36835,6 @@
static swig_cast_info _swigc__p_XmlValue[] = { {&_swigt__p_XmlValue, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info *swig_cast_initial[] = {
_swigc__p_DbTxn,
@@ -36866,7 +36862,6 @@
_swigc__p_XmlValue,
_swigc__p_char,
_swigc__p_int,
- _swigc__p_unsigned_char,
};
Index: dbxml.spec
===================================================================
RCS file: /cvs/pkgs/rpms/dbxml/devel/dbxml.spec,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- dbxml.spec 29 Nov 2008 16:36:49 -0000 1.7
+++ dbxml.spec 23 Feb 2009 09:38:57 -0000 1.8
@@ -4,7 +4,7 @@
Summary: An embeddable XML database with XQuery-based access to documents
Group: System Environment/Libraries
Version: 2.4.16
-Release: 0.2%{?dist}
+Release: 0.3%{?dist}
License: BSD
URL: http://www.oracle.com/technology/software/products/berkeley-db/xml/index.html
# Source tarball from Oracle containing sources of db4, xercesc, xqilla
@@ -15,6 +15,9 @@
Source0: dbxml-2.4.16-fedora.tar.gz
# Fedora specific patches
Patch1: dbxml-standalone-build.patch
+Patch2: dbxml-bash-include.patch
+# Patches from Oracle
+Patch100: http://www.oracle.com/technology/products/berkeley-db/xml/update/2.4.16/patch.2.4.16.1
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build
@@ -118,6 +121,8 @@
%prep
%setup -q -n dbxml-%{version}
%patch1
+%patch2
+%patch100 -p0
%build
export CPPFLAGS="-I%{_includedir}/xqilla"
@@ -244,6 +249,9 @@
%{_defaultdocdir}/dbxml-python-%{version}
%changelog
+* Sat Feb 22 2009 Milan Zazrivec <mzazrivec at redhat.com> - 2.4.16-1.2
+- Add patch from Oracle
+
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm at gmail.com> - 2.4.16-0.2
- Rebuild for Python 2.6
Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/dbxml/devel/import.log,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- import.log 24 Nov 2008 15:32:35 -0000 1.2
+++ import.log 23 Feb 2009 09:38:57 -0000 1.3
@@ -1,2 +1,3 @@
dbxml-2_4_13-2_1_fc10:HEAD:dbxml-2.4.13-2.1.fc10.src.rpm:1220176927
dbxml-2_4_16-0_1:HEAD:dbxml-2.4.16-0.1.src.rpm:1227540633
+dbxml-2_4_16-0_3:HEAD:dbxml-2.4.16-0.3.src.rpm:1235381889
- Previous message: rpms/corosync/devel corosync-trunk_r1767.diff, NONE, 1.1 corosync-trunk_r1774.diff, NONE, 1.1 corosync.spec, 1.14, 1.15 gcc-44-fix.diff, 1.1, NONE
- Next message: rpms/openais/devel openais-trunk_r1717.diff, NONE, 1.1 openais.spec, 1.37, 1.38 add-SaTmr-pkgconfig.diff, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list