You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/06/25 22:24:10 UTC

svn commit: r1139612 - in /incubator/jena: Experimental/TxTDB/trunk/src-dev/tx/ Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/ Jena2/ARQ/trunk/ Jena2/ARQ/trunk/src-dev/dev/ Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggreg...

Author: andy
Date: Sat Jun 25 20:24:09 2011
New Revision: 1139612

URL: http://svn.apache.org/viewvc?rev=1139612&view=rev
Log:
Bug fix: SUM and AVG over errors didn't generate an error as they should do.

Modified:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Replay.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
    incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
    incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
    incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvg.java
    incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvgDistinct.java
    incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSum.java
    incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSumDistinct.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java Sat Jun 25 20:24:09 2011
@@ -2,36 +2,19 @@ package tx;
 
 public class DevTx
 {
-    // Build original with necessary indirects at right points 
-    //   1 - gets cache postioning right
-    //   2 - fast to start
-    // => change DatasetGraphTDB, DatasetBuilderStd
-    // See BlockMgrSwitcher(normal, BlockMgrJournal), ObjectFileSwitcher, 
-    //    Prefixes and NodeTupelTables will just work if the BlockMgrs and ObjectFiles at top-of-stack switchover.
-    
+    // DatasetGraphBuilder.
+    //   Call "register(ObjectFile)" / "register(BlockMgr)" on every create.
+    // DatasetGraphTDB : read-only mode (when transaction active)
+    //   Prefixes as well.
     
     // DSG.add(Quad(tripleInQuad, triple)) does not affect default graph.
     
-    // DatasetGraphTxnTDB to graph the NodeTable and it's caches from the dsg wrapped.
-    //   Do this in general to reuse caches - don't build on files.
-    //   Standard DSG builder to collect of BlockMgrs and all ObjectsFiles together
-    //   Txn builder reuses.  Can we do this by taking apart a DSG?
-    
-    // Transaction needs to do FileRef to file. 
     // Every sync hits the NodeTupleTable sync the node table repeatedly - keep dirty flag? 
     
     // Delete BlockMgrFile.
     
-    // Caching of node table
-    //  no W cache needed anywhere, just the write ahead buffer
-    //  Check W c aches uses for indexes.
-    // Cache in front of NodeTable for transactions.
-    
     // In-memory datasets.
     
-    // Add changed flag to DatsetTDB so sync can be skipped.
-    //   Other routes to change?  Prefixes?
-    
     // Config
     //   One config file?
     //   Cache sizes
@@ -39,28 +22,11 @@ public class DevTx
     //   Length of NodeId?
     //   Setting of content properties.
     
-    // Building a dataset.
-    //   Commit and reply?
-    //   Reattach a journal?
-    
-    // Need a clearly defined start/finish 
-    //   start => location, journal and set datastructures.
-    
     // TestObjectFileTrans -- more tests.
     // TestObjectFileBuffering --> make abstract, it stress tests the BufferChannel.
     
-    // One transaction dataset - reuse.  Pool?
-    //   Create the one transaction dataset when the datasetgraph itself is created
-    //   Reset/Reuse -- internal API : TransactionCycle. 
-    // Record BlockMgrs, BlockMgrTx.reset ==> .begin
-    
     // Channel+Adler32
     
-    // Journal
-    // Either entry based, write/read like 
-    //   Or buffer slicing version.
-    //   Allocate space to include the reader.  Seems liek more work for less reason.
-    
     // Tidy up 
     //   See HACK (BPTreeNode)
     //   See [TxTDB:PATCH-UP]
@@ -68,19 +34,10 @@ public class DevTx
     //   See FREE
     //   See [ITER]
     
-    // Caching pages across actions sequences. e.g BPT root block.
-    // Iterators
-    //   Cache in transaction so forgettable?
-    //   Iterator tracking replaces epoch mechanism?
-    //   (No - it's a step of iterator that complains, not the update.) 
-    
-    // ---- ---- ---- ----
-
     // Optimizations:
     //   ByteBuffer.allocateDirect + pooling
     //     http://mail-archives.apache.org/mod_mbox/mina-dev/200804.mbox/%3C47F90DF0.6050101@gmail.com%3E
     //     http://mail-archives.apache.org/mod_mbox/mina-dev/200804.mbox/%3Cloom.20080407T064019-708@post.gmane.org%3E
-    //   ObjectFileTrans - avoid copy!
 
     // Other:
     //   Sort out IndexBulder/IndexFactory/(IndexMaker in test)

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Replay.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Replay.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Replay.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Replay.java Sat Jun 25 20:24:09 2011
@@ -19,7 +19,11 @@ public class Replay
     {
         for ( JournalEntry e : journal )
         {
+            
             ByteBuffer bb = e.getByteBuffer() ;
+            
+            e.getFileRef() ;
+            
             switch (e.getType())
             {
                 case Block:

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java Sat Jun 25 20:24:09 2011
@@ -37,9 +37,14 @@ import com.hp.hpl.jena.tdb.sys.Concurren
 
 public class DatasetBuilderTxn extends DatasetBuilderStd
 {
+    // Track resources for the datsetgraph as built.
+    //    BlockMgr.
+    //    ObjectFile.
+    
+    
     public DatasetBuilderTxn(TransactionManager txnMgr) { setStd() ; this.txnMgr = txnMgr ; }
     
-    // ---- Add tracking
+    // ---- Add logging to a BlockMgr when built.
     static BlockMgrBuilder logging(BlockMgrBuilder other) { return new BlockMgrBuilderLogger(other) ; }
     
     static class BlockMgrBuilderLogger implements BlockMgrBuilder

Modified: incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt (original)
+++ incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt Sat Jun 25 20:24:09 2011
@@ -1,6 +1,10 @@
 ChangeLog for ARQ
 =================
 
+==== ARQ 2.8.10
+
++ Bug fix: SUM and AVG over errors didn't generate an error as they should do.
+
 ==== ARQ 2.8.9
 
 + Add TSVInput processor (JENA-69 / Laurent Pellegrino) 

Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java Sat Jun 25 20:24:09 2011
@@ -127,7 +127,10 @@ public class RunARQ
     
     public static void main(String[] argv) throws Exception
     {
-     
+        arq.sparql.main("--data=D.ttl", "--query=Q.rq") ;
+        exit(0) ;
+        
+        
         {
             Query query = QueryFactory.create("SELECT (count(*) AS ?C) { { SELECT ?s { ?s ?p ?o } LIMIT 100000000} }") ;
             QueryEngineHTTP qExec = QueryExecutionFactory.createServiceRequest("http://dbpedia.org/sparql", query) ;

Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvg.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvg.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvg.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvg.java Sat Jun 25 20:24:09 2011
@@ -9,7 +9,6 @@
 package com.hp.hpl.jena.sparql.expr.aggregate;
 
 import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.expr.Expr ;
 import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
@@ -86,8 +85,8 @@ public class AggAvg extends AggregatorBa
             }
             else
             {
-                ARQ.getExecLogger().warn("Evaluation error: avg() on "+nv) ;
-                throw new ExprEvalException("avg: not a number") ;
+                //ARQ.getExecLogger().warn("Evaluation error: avg() on "+nv) ;
+                throw new ExprEvalException("avg: not a number: "+nv) ;
             }
             
             if ( DEBUG ) System.out.println("avg: ("+total+","+count+")") ;

Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvgDistinct.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvgDistinct.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvgDistinct.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggAvgDistinct.java Sat Jun 25 20:24:09 2011
@@ -11,6 +11,7 @@ package com.hp.hpl.jena.sparql.expr.aggr
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.expr.Expr ;
+import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.expr.nodevalue.XSDFuncOp ;
 import com.hp.hpl.jena.sparql.function.FunctionEnv ;
@@ -78,6 +79,9 @@ public class AggAvgDistinct extends Aggr
                 else
                     total = XSDFuncOp.add(nv, total) ;
             }
+            else
+                throw new ExprEvalException("avg: not a number: "+nv) ;
+
             if ( DEBUG ) System.out.println("avg: ("+total+","+count+")") ;
         }
 

Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSum.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSum.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSum.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSum.java Sat Jun 25 20:24:09 2011
@@ -9,9 +9,9 @@
 package com.hp.hpl.jena.sparql.expr.aggregate;
 
 import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.expr.Expr ;
+import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.expr.nodevalue.XSDFuncOp ;
 import com.hp.hpl.jena.sparql.function.FunctionEnv ;
@@ -74,7 +74,7 @@ public class AggSum  extends AggregatorB
                     total = XSDFuncOp.add(nv, total) ;
             }
             else
-                ARQ.getExecLogger().warn("Evaluation error: sum() on "+nv) ;
+                throw new ExprEvalException("Not a number: "+nv) ;
         }
 
         @Override

Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSumDistinct.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSumDistinct.java?rev=1139612&r1=1139611&r2=1139612&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSumDistinct.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/aggregate/AggSumDistinct.java Sat Jun 25 20:24:09 2011
@@ -8,11 +8,10 @@
 
 package com.hp.hpl.jena.sparql.expr.aggregate;
 
-import org.openjena.atlas.logging.Log ;
-
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.expr.Expr ;
+import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.expr.nodevalue.XSDFuncOp ;
 import com.hp.hpl.jena.sparql.function.FunctionEnv ;
@@ -76,7 +75,7 @@ public class AggSumDistinct  extends Agg
                     total = XSDFuncOp.add(nv, total) ;
             }
             else
-                Log.warn(this, "evaluation error: sum() on "+nv) ;
+                throw new ExprEvalException("Not a number: "+nv) ;
         }
         
         @Override