SDB ToDo list (and general notes)
=================================

** Graph management
    And OpDatasetNames
** prefixes per model (related) 


** OpQuadPattern ==> Track OpGraph and OpBGP (common visitor/transform base pattern?) 
** OpDatasetNames (and check GRAPH ?g {})

** SELECT DISTINCT ?p { ?s ?p ?o }
   Can push in DISTINCT through the project if the SelectBlock has the project
   else just put on the project?
     TransformSDB 

** Tidy the assembler descriptions on wiki.
   Currently two pages: make reference and tutorial.

** Check update tests - why is fork needed in ant for Pg and MS-SQL, but not MySQL? 

** Connection pooling (Apache DBCP) which will also cope with MySQL timeouts   

** Store .isClosed, isFormatted

==== Wiki
** StoreFormatter.isFormatted()

+ Break out the merge query section into a separate wiki page.

==== Tests

?? Restruct as run-per-store
?? Run-per-store for all non-Q tests.
   May need to hack JUnit 4 to get naming to work.
   TestEnv.getStore() -> Store
   For load-general?
+ Test: Dataset description + JDBC connection for pooling.

== Major

+ Graph management:
    Graphs loaded
    Delete graph (can we make this anymore efficient?)
      Delete by quad pattern
    Add new graph (and load of unknown graph fails?)
    Replace graph
      Delete model, Clear model, Create model
      Only load is model exists?
      Check in GraphSDB
    Need a "graph ids" table
    
== Minor

+ StoreLoader => StoreLoaderPlus.
+ LoaderTuplesNodes uses reflection on constructors.  OneTuple loader broken by this.
   Each loader has many TupleLoader instances - per table to be loaded.
   ==> TupleLoaderFactory 
 
+ Tests with SDB.getContext().setTrue(SDB.unionDefaultGraph) ;
  --set in manifest?

+ OpUnion

==== Notes
   
+ QueryEngineSDB has duplication with QueryEngineMain - eliminate!
