MonetDB: rdf - Improve label quality

2014-03-20 Thread Linnea Passing
Changeset: 3e4ece2b7085 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3e4ece2b7085
Modified Files:
monetdb5/extras/rdf/rdflabels.c
Branch: rdf
Log Message:

Improve label quality

- Computation of similarity between CS's and classes is now based on the 
assumption that all properties of a CS should belong to one ontology class, not 
that the CS has to consist of ALL properties of the corresponding ontology 
class.
- Type values are usually multi-valued properties, the values represent the 
hierarchy the subject belongs to (e.g., if a subject in the dbpedia dataset has 
type 'Athlete', it also has types 'Person', 'Agent', 'Thing'). This hierarchy 
is analyzed and only the most specific type value (the leaf) is added to the 
data structures. This improves the label candidates that are computed using 
type values.


diffs (284 lines):

diff --git a/monetdb5/extras/rdf/rdflabels.c b/monetdb5/extras/rdf/rdflabels.c
--- a/monetdb5/extras/rdf/rdflabels.c
+++ b/monetdb5/extras/rdf/rdflabels.c
@@ -851,19 +851,89 @@ int compareTypeAttributesFreqs (const vo
 #endif
 
 #if USE_TYPE_NAMES
+/* Analyze hierarchy in a list of type values, add all leaf values to the 
histogram. Values that are not present in the hierarchy tree built from the 
ontologies are NOT added to the histogram. */
+static
+void insertLeafsIntoTypeAttributesHistogram(oid* typeList, int typeListLength, 
TypeAttributesFreq*** typeAttributesHistogram, int** 
typeAttributesHistogramCount, int csFreqIdx, int type, BAT *ontmetaBat, 
OntClass *ontclassSet) {
+   int i, j, k;
+   int fit;
+   char*leaf; // flag whether a type value in 'typeList' is a 
leaf (1) or not (0)
+   BUN pos;
+   OntClasshierarchy;
+
+   // start with: every type value is a leaf
+   leaf = GDKmalloc(sizeof(char) * typeListLength);
+   for (i = 0; i  typeListLength; ++i) leaf[i] = 1;
+
+   // analyze hierarchy
+   for (i = 0; i  typeListLength; ++i) {
+   if (!leaf[i]) continue;
+   pos = BUNfnd(BATmirror(ontmetaBat), typeList[i]);
+   if (pos == BUN_NONE) {
+   // no ontology information for this type value, 
therefore it is not added to the hierarchy
+   leaf[i] = 0;
+   continue;
+   }
+
+   // get hierarchy of this type value
+   hierarchy = ontclassSet[pos];
+
+   // loop over superclasses, set leaf=0
+   for (j = 0; j  hierarchy.numsc; ++j) {
+   for (k = 0; k  typeListLength; ++k) {
+   if (i == k) continue;
+   if (ontclassSet[hierarchy.scIdxes[j]].cOid == 
typeList[k]) {
+   // found superclass at position 'k'
+   leaf[k] = 0;
+   }
+   }
+   }
+   }
+
+   // add all leafs to the histogram
+   for (i = 0; i  typeListLength; ++i) {
+   if (!leaf[i]) continue;
+   fit = 0;
+   for (j = 0; j  typeAttributesHistogramCount[csFreqIdx][type]; 
++j) {
+   if (typeAttributesHistogram[csFreqIdx][type][j].value 
== typeList[i]) {
+   // bucket exists
+   
typeAttributesHistogram[csFreqIdx][type][j].freq += 1;
+   fit = 1;
+   break;
+   }
+   }
+   if (!fit) {
+   // bucket does not exist
+   // realloc
+   typeAttributesHistogramCount[csFreqIdx][type] += 1;
+   typeAttributesHistogram[csFreqIdx][type] = 
(TypeAttributesFreq *) realloc(typeAttributesHistogram[csFreqIdx][type], 
sizeof(TypeAttributesFreq) * typeAttributesHistogramCount[csFreqIdx][type]);
+   if (!typeAttributesHistogram[csFreqIdx][type]) 
fprintf(stderr, ERROR: Couldn't realloc memory!\n);
+
+   // insert value
+   
typeAttributesHistogram[csFreqIdx][type][typeAttributesHistogramCount[csFreqIdx][type]
 - 1].value = typeList[i];
+   
typeAttributesHistogram[csFreqIdx][type][typeAttributesHistogramCount[csFreqIdx][type]
 - 1].freq = 1;
+   }
+   }
+
+   GDKfree(leaf);
+}
+
 /* Loop through all subjects to collect frequency statistics for type 
attribute values. */
 static
-void createTypeAttributesHistogram(BAT *sbat, BATiter si, BATiter pi, BATiter 
oi, oid *subjCSMap, CSset *freqCSset, int *csIdFreqIdxMap, int 
typeAttributesCount, TypeAttributesFreq*** typeAttributesHistogram, int** 
typeAttributesHistogramCount, char** typeAttributes) {
+void createTypeAttributesHistogram(BAT *sbat, BATiter si, BATiter pi, BATiter 
oi, oid *subjCSMap, 

MonetDB: default - Approved clients tests.

2014-03-20 Thread Sjoerd Mullender
Changeset: 5d7fe15187f5 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5d7fe15187f5
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures_nocfitsio.stable.out
clients/Tests/MAL-signatures_sphinxclient.stable.out
clients/Tests/SQL-dump.stable.out
clients/Tests/SQL-dump_gsl.stable.out
clients/Tests/SQL-dump_nogeom.stable.out
Branch: default
Log Message:

Approved clients tests.


diffs (truncated from 5076 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -2415,7 +2415,7 @@ address ALGgroupby;
 comment Produces a new BAT with groups identified by the head column. The 
result contains tail times the head value, ie the tail contains the result 
group sizes.
 
 command algebra.ilikesubselect(s:bat[:oid,:str],pat:bat[:oid,:str],esc:str) 
(l:bat[:oid,:oid],r:bat[:oid,:oid]) 
-address PCREilike_join_pcre;
+address PCREilike_join_pcr5;
 function 
algebra.ilikesubselect(b:bat[:oid,:str],cand:bat[:oid,:oid],pat:str,esc:str,anti:bit):bat[:oid,:oid];
 function 
algebra.ilikesubselect(b:bat[:oid,:str],pat:str,esc:str,anti:bit):bat[:oid,:oid];
 command 
algebra.indexjoin(left:bat[:any_1,:any_2],right:bat[:any_2,:any_3]):bat[:any_1,:any_3]
 
@@ -3021,14 +3021,6 @@ command batstr.like(s:bat[:oid,:str],pat
 address BATPCRElike2;
 command batstr.like(s:bat[:oid,:str],pat:str,esc:str):bat[:oid,:bit] 
 address BATPCRElike;
-command batstr.like_uselect(s:bat[:oid,:str],pat:str,esc:str):bat[:oid,:void] 
-address STRbatlike_uselect;
-comment Perform SQL like operation against a string bat
-
-command batstr.like_uselect(s:bat[:oid,:str],pat:str):bat[:oid,:void] 
-address STRbatlike_uselect2;
-comment Perform SQL like operation against a string bat
-
 command batstr.ltrim(s:bat[:oid,:str]):bat[:oid,:str] 
 address STRbatLtrim;
 comment Strip whitespaces from start of a string.
@@ -3049,10 +3041,6 @@ command batstr.nbytes(s:bat[:oid,:str]):
 address STRbatBytes;
 comment Return the string length in bytes.
 
-command batstr.replace(s:bat[:oid,:str],pat:str,s2:str):bat[:oid,:str] 
-address STRbatreplace;
-comment Insert a string into another
-
 command batstr.r_search(s:bat[:oid,:str],c:str):bat[:oid,:int] 
 address STRbatRstrSearchcst;
 comment Reverse search for a substring. Returns position, -1 if not found.
@@ -32082,18 +32070,6 @@ pattern bbp.bind(name:str):bat[:oid,:any
 address CMDbbpbind;
 comment Locate the BAT using its logical name
 
-command bbp.compress(b:bat[:oid,:any_2],fnme:str):bat[:oid,:any_2] 
-address CMDbbpcompress;
-comment Generate a compressed image of the BAT on a specific file
-
-command bbp.decompress(b:bat[:oid,:any_2],fnme:str):bat[:oid,:any_2] 
-address CMDbbpdecompress;
-comment Obtain a temporary decompressed image of a BAT from a specific file
-
-command bbp.expand(b:bat[:oid,:any_2],fnme:str):bat[:oid,:any_2] 
-address CMDbbpexpand;
-comment Expand a compressed image of BAT heaps
-
 command bbp.getPageSize():int 
 address CMDgetPageSize;
 comment Obtain the memory page size
@@ -32158,10 +32134,6 @@ command bbp.getIndex(b:bat[:oid,:any_2])
 address CMDbbpgetIndex;
 comment Retrieve the index in the BBP
 
-command bbp.truncate(b:bat[:oid,:any_2],fnme:str):bat[:oid,:any_2] 
-address CMDbbptruncate;
-comment Truncate the heaps if a compressed image exist
-
 command blob.blob(s:str):blob 
 address BLOBblob_fromstr;
 command blob.blob(s:blob):blob 
@@ -39651,30 +39623,6 @@ pattern language.source(f:str):void
 address CMDevalFile;
 comment Merge the instructions stored in the file with the current program.
 
-command lock.create():lock 
-address LCKcreate;
-comment Create an unset lock
-
-command lock.destroy(l:lock):void 
-address LCKdestroy;
-comment Destroy a lock
-
-command lock.set(l:lock):void 
-address LCKset;
-comment Try to set a lock. If set, block till it is freed
-
-command lock.tostr(l:lock):void 
-address lockToStr;
-comment Overloaded atom function
-
-command lock.try(l:lock):int 
-address LCKtry;
-comment Try a lock. If free set it, if not return EBUSY
-
-command lock.unset(l:lock):void 
-address LCKunset;
-comment Unset a lock
-
 command lsst.angsep(ra1:dbl,dec1:dbl,ra2:dbl,dec2:dbl):dbl 
 address qserv_angSep;
 comment Returns the angular separation in degrees between two 
sphericalcoordinate pairs (ra1,dec1) and (ra2,dec2)
@@ -40758,12 +40706,6 @@ comment Duplicate constant removal optim
 
 pattern optimizer.constants():str 
 address OPTwrapper;
-pattern optimizer.compression(mod:str,fcn:str):str 
-address OPTwrapper;
-comment Compression code injection
-
-pattern optimizer.compression():str 
-address OPTwrapper;
 pattern optimizer.commonTerms(mod:any_1,fcn:any_2):str 
 address OPTwrapper;
 comment Common sub-expression optimizer
@@ -41038,57 +40980,22 @@ comment Collect trace of a specific oper
 
 pattern optimizer.trace():str 
 

MonetDB: bamloader - Finished basic bam loader functionality. Di...

2014-03-20 Thread Robin Cijvat
Changeset: a02498cf33c0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a02498cf33c0
Added Files:
sql/backends/monet5/bamloader/bam_db_interface.c
sql/backends/monet5/bamloader/bam_db_interface.h
sql/backends/monet5/bamloader/bam_wrapper.c
sql/backends/monet5/bamloader/bam_wrapper.h
Removed Files:
sql/backends/monet5/bamloader/bam_sql.c
sql/backends/monet5/bamloader/bam_sql.h
sql/backends/monet5/bamloader/sql/bam_clear.sql
sql/backends/monet5/bamloader/sql/bam_create_alignments_storage_0.sql
sql/backends/monet5/bamloader/sql/bam_create_alignments_storage_1.sql
sql/backends/monet5/bamloader/sql/bam_drop_alignments_storage_0.sql
sql/backends/monet5/bamloader/sql/bam_drop_alignments_storage_1.sql
sql/backends/monet5/bamloader/sql/bam_schema.sql
Modified Files:
sql/backends/monet5/bamloader/85_bam.sql
sql/backends/monet5/bamloader/Makefile.ag
sql/backends/monet5/bamloader/bam.mal
sql/backends/monet5/bamloader/bam_globals.h
sql/backends/monet5/bamloader/bam_loader.c
sql/backends/monet5/bamloader/bam_loader.h
Branch: bamloader
Log Message:

Finished basic bam loader functionality. Divided code nicely over multiple 
files so it will be relatively easy to separate the code between client-side 
code and server-side code at some later point.


diffs (truncated from 4985 to 300 lines):

diff --git a/sql/backends/monet5/bamloader/85_bam.sql 
b/sql/backends/monet5/bamloader/85_bam.sql
--- a/sql/backends/monet5/bamloader/85_bam.sql
+++ b/sql/backends/monet5/bamloader/85_bam.sql
@@ -1,10 +1,13 @@
-CREATE PROCEDURE bam_loader_repos(bam_repos STRING, dbschema INT, storage_mask 
STRING, nr_threads INT)
+CREATE PROCEDURE bam_loader_repos(bam_repos STRING, dbschema SMALLINT, 
nr_threads SMALLINT)
 EXTERNAL NAME bam.bam_loader_repos;
 
-CREATE PROCEDURE bam_loader_file(bam_file STRING, dbschema INT, storage_mask 
STRING)
+CREATE PROCEDURE bam_loader_files(bam_files STRING, dbschema SMALLINT, 
nr_threads SMALLINT)
+EXTERNAL NAME bam.bam_loader_files;
+
+CREATE PROCEDURE bam_loader_file(bam_file STRING, dbschema SMALLINT)
 EXTERNAL NAME bam.bam_loader_file;
 
-CREATE PROCEDURE bam_drop_file(file_id SMALLINT, dbschema SMALLINT)
+CREATE PROCEDURE bam_drop_file(file_id BIGINT, dbschema SMALLINT)
 EXTERNAL NAME bam.bam_drop_file;
 
 
diff --git a/sql/backends/monet5/bamloader/Makefile.ag 
b/sql/backends/monet5/bamloader/Makefile.ag
--- a/sql/backends/monet5/bamloader/Makefile.ag
+++ b/sql/backends/monet5/bamloader/Makefile.ag
@@ -29,12 +29,14 @@ INCLUDES = .. \
../../../../common/options \
../../../../common/stream \
../../../../gdk \
+../../../../tools/merovingian \
+../../../../tools/merovingian/daemon \
$(SAMTOOLS_CFLAGS)
 
 lib__bam = {
MODULE
DIR = libdir/monetdb5
-   SOURCES = bam_loader.c bam_loader.h bam_lib.h bam_lib.c bam_sql.h 
bam_sql.c
+   SOURCES = bam_loader.c bam_loader.h bam_wrapper.c bam_wrapper.h 
bam_db_interface.c bam_db_interface.h bam_globals.h bam_lib.h bam_lib.c
LIBS = ../../../../monetdb5/tools/libmonetdb5 \
   ../../../../gdk/libbat \
$(SAMTOOLS_LIBS)
diff --git a/sql/backends/monet5/bamloader/bam.mal 
b/sql/backends/monet5/bamloader/bam.mal
--- a/sql/backends/monet5/bamloader/bam.mal
+++ b/sql/backends/monet5/bamloader/bam.mal
@@ -1,19 +1,23 @@
 module bam;
 
 
-# Bam_loader related signatures
+# Bam loader related signatures
 
-pattern bam_loader_repos(bam_repos_list:str, dbschema:int, storage_mask:str, 
nr_threads:int):void
+pattern bam_loader_repos(bam_repos:str, dbschema:sht, nr_threads:sht):void
 address bam_loader_repos
-comment Read the files in the given list of bam files and store them in the 
database;
+comment Read all bam files in the given bam_repos directory (non-recursive) 
and store them in the given dbschema;
 
-pattern bam_loader_file(bam_file:str, dbschema:int, storage_mask:str):void
+pattern bam_loader_files(bam_files:str, dbschema:sht, nr_threads:sht):void
+address bam_loader_files
+comment Read all bam files in the file list stored in the file bam_files 
(separated by a newline) and store them in the given dbschema;
+
+pattern bam_loader_file(bam_file:str, dbschema:sht):void
 address bam_loader_file
-comment Read the bam file given as the first parameter and store it in the 
database;
+comment Read bam_file and store it in the given dbschema;
 
-pattern bam_drop_file(file_id:sht, dbschema:sht):void
+pattern bam_drop_file(file_id:lng, dbschema:sht):void
 address bam_drop_file
-comment Drop alignment tables and header data for the given file
+comment Drop alignment tables and header data for the bam file with the given 
file_id
 
 
 # Scalar signatures for bam_lib
diff --git a/sql/backends/monet5/bamloader/bam_db_interface.c 
b/sql/backends/monet5/bamloader/bam_db_interface.c
new file mode 100644
--- /dev/null
+++ 

MonetDB: bamloader - Finished BAM loader code, added BAM recipe.

2014-03-20 Thread Robin Cijvat
Changeset: c303c0dd237e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c303c0dd237e
Added Files:
sql/backends/monet5/bamloader/BAMRecipe.pdf
sql/backends/monet5/bamloader/Tests/All
sql/backends/monet5/bamloader/Tests/bam/queryname/toy.bam
sql/backends/monet5/bamloader/Tests/bam/toy.bam
sql/backends/monet5/bamloader/Tests/bam/toy_coordinate.bam
sql/backends/monet5/bamloader/Tests/bam/toy_coordinate.bam.bai
sql/backends/monet5/bamloader/Tests/benchmarks.py
sql/backends/monet5/bamloader/Tests/load.sql.src
sql/backends/monet5/bamloader/Tests/sort.cmd.src
Removed Files:
sql/backends/monet5/bamloader/README

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/benchmark1.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/benchmark2.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query1.1.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query1.2.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query1.3.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query1.4.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query1.5.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.10.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.11.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.12.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.3.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.4.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.6.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.7.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.8.sql

sql/backends/monet5/bamloader/Tests/benchmarks_0_minimaloutput/query2.9.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/benchmark1.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/benchmark2.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query1.1.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query1.2.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query1.3.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query1.4.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query1.5.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.10.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.11.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.12.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.3.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.4.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.6.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.7.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.8.sql

sql/backends/monet5/bamloader/Tests/benchmarks_1_minimaloutput/query2.9.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/benchmark1.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/benchmark2.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query1.1.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query1.2.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query1.3.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query1.4.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query1.5.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.1.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.10.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.11.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.12.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.2.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.3.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.4.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.5.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.6.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.7.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.8.sql
sql/backends/monet5/bamloader/Tests/benchmarks_2/query2.9.sql

sql/backends/monet5/bamloader/Tests/benchmarks_2_minimaloutput/benchmark1.sql

sql/backends/monet5/bamloader/Tests/benchmarks_2_minimaloutput/benchmark2.sql


MonetDB: bamloader - dded SAMrenderer to mclient. Some minor cha...

2014-03-20 Thread Robin Cijvat
Changeset: b40553856fac for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b40553856fac
Modified Files:
clients/mapiclient/mclient.c
sql/backends/monet5/bamloader/bam_db_interface.c
sql/backends/monet5/bamloader/bam_db_interface.h
sql/backends/monet5/bamloader/bam_loader.c
sql/backends/monet5/bamloader/bam_wrapper.c
Branch: bamloader
Log Message:

dded SAMrenderer to mclient. Some minor changes in bam loader code.


diffs (230 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -75,6 +75,12 @@
 #endif
 #endif
 
+/* Samtools is not needed for the SAMrenderer, so commented out
+#ifdef HAVE_SAMTOOLS
+#include bam.h
+#endif
+*/
+
 #ifndef S_ISCHR
 #define S_ISCHR(m) (((m)  S_IFMT) == S_IFCHR)
 #endif
@@ -116,7 +122,8 @@ enum formatters {
XMLformatter,
TESTformatter,
CLEANformatter,
-   TIMERformatter
+   TIMERformatter,
+SAMformatter
 };
 static enum formatters formatter = NOformatter;
 char *output = NULL;   /* output format as string */
@@ -1030,6 +1037,79 @@ TIMERrenderer(MapiHdl hdl)
printf(%s\n, timerHuman());
 }
 
+
+static void
+SAMrenderer(MapiHdl hdl)
+{
+/* Variables keeping track of which result set fields map to qname, flag 
etc. (-1 means that it does not occur in result set) */
+int field_qname = -1;
+int field_flag = -1;
+int field_rname = -1;
+int field_pos = -1;
+int field_mapq = -1;
+int field_cigar = -1;
+int field_rnext = -1;
+int field_pnext = -1;
+int field_tlen = -1;
+int field_seq = -1;
+int field_qual = -1;
+
+int field_count = mapi_get_field_count(hdl); 
+int t_fields;
+
+int i;
+
+/* Samtools is not needed for rendering to SAM, so this is commented out
+#ifndef HAVE_SAMTOOLS
+mnstr_printf(toConsole, Result set can not be rendered to BAM file, since 
Samtools could not be found during compilation of mclient\n);
+return;
+#endif
+*/
+
+/* First, initialize field variables properly */
+for(i=0; ifield_count; ++i) {
+char *field_name = mapi_get_name(hdl, i);
+if(strcmp(field_name, qname) == 0) { field_qname = i; continue; }
+if(strcmp(field_name, flag ) == 0) { field_flag  = i; continue; }
+if(strcmp(field_name, rname) == 0) { field_rname = i; continue; }
+if(strcmp(field_name, pos  ) == 0) { field_pos   = i; continue; }
+if(strcmp(field_name, mapq ) == 0) { field_mapq  = i; continue; }
+if(strcmp(field_name, cigar) == 0) { field_cigar = i; continue; }
+if(strcmp(field_name, rnext) == 0) { field_rnext = i; continue; }
+if(strcmp(field_name, pnext) == 0) { field_pnext = i; continue; }
+if(strcmp(field_name, tlen ) == 0) { field_tlen  = i; continue; }
+if(strcmp(field_name, seq  ) == 0) { field_seq   = i; continue; }
+if(strcmp(field_name, qual ) == 0) { field_qual  = i; continue; }
+
+mnstr_printf(stderr_stream, Unexpected column name in result set: 
'%s'. Data in this column is not used.\n, field_name);
+}
+
+/* Write all alignments */
+while (!mnstr_errnr(toConsole)  (t_fields = fetch_row(hdl)) != 0) {
+if (t_fields != field_count) {
+   mnstr_printf(stderr_stream,
+   invalid tuple received from server, 
+   got %d columns, expected %d, 
ignoring\n, t_fields, field_count);
+   continue;
+}
+
+/* Write fields to SAM line */
+mnstr_printf(toConsole, %s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n,
+(field_qname == -1 ? *   : mapi_fetch_field(hdl, field_qname)),
+(field_flag  == -1 ? 0   : mapi_fetch_field(hdl, field_flag )),
+(field_rname == -1 ? *   : mapi_fetch_field(hdl, field_rname)),
+(field_pos   == -1 ? 0   : mapi_fetch_field(hdl, field_pos  )),
+(field_mapq  == -1 ? 255 : mapi_fetch_field(hdl, field_mapq )),
+(field_cigar == -1 ? *   : mapi_fetch_field(hdl, field_cigar)),
+(field_rnext == -1 ? *   : mapi_fetch_field(hdl, field_rnext)),
+(field_pnext == -1 ? 0   : mapi_fetch_field(hdl, field_pnext)),
+(field_tlen  == -1 ? 0   : mapi_fetch_field(hdl, field_tlen )),
+(field_seq   == -1 ? *   : mapi_fetch_field(hdl, field_seq  )),
+(field_qual  == -1 ? *   : mapi_fetch_field(hdl, field_qual)));
+}
+}
+
+
 static void
 SQLheader(MapiHdl hdl, int *len, int fields, char more)
 {
@@ -1381,7 +1461,9 @@ setFormatter(char *s)
formatter = TESTformatter;
} else if (strcmp(s, timer) == 0) {
formatter = TIMERformatter;
-   } else {
+} else if (strcmp(s, sam) == 0) {
+formatter = SAMformatter;
+} else {

MonetDB: default - Fixed Open Geospatial Consortium (OGC) tests.

2014-03-20 Thread Sjoerd Mullender
Changeset: 521596f93598 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=521596f93598
Added Files:
geom/sql/Tests/T1.reqtests
geom/sql/Tests/T1.stable.err
geom/sql/Tests/T1.stable.out
geom/sql/Tests/T10.reqtests
geom/sql/Tests/T11.reqtests
geom/sql/Tests/T12.reqtests
geom/sql/Tests/T13.reqtests
geom/sql/Tests/T13.stable.err
geom/sql/Tests/T13.stable.out
geom/sql/Tests/T14.reqtests
geom/sql/Tests/T14.stable.err
geom/sql/Tests/T14.stable.out
geom/sql/Tests/T15.reqtests
geom/sql/Tests/T15.stable.err
geom/sql/Tests/T15.stable.out
geom/sql/Tests/T16.reqtests
geom/sql/Tests/T17.reqtests
geom/sql/Tests/T17.stable.err
geom/sql/Tests/T17.stable.out
geom/sql/Tests/T18.reqtests
geom/sql/Tests/T18.stable.err
geom/sql/Tests/T18.stable.out
geom/sql/Tests/T19.reqtests
geom/sql/Tests/T19.stable.err
geom/sql/Tests/T19.stable.out
geom/sql/Tests/T2.reqtests
geom/sql/Tests/T2.stable.err
geom/sql/Tests/T2.stable.out
geom/sql/Tests/T20.reqtests
geom/sql/Tests/T20.stable.err
geom/sql/Tests/T20.stable.out
geom/sql/Tests/T21.reqtests
geom/sql/Tests/T22.reqtests
geom/sql/Tests/T22.stable.err
geom/sql/Tests/T22.stable.out
geom/sql/Tests/T23.reqtests
geom/sql/Tests/T23.stable.err
geom/sql/Tests/T23.stable.out
geom/sql/Tests/T24.reqtests
geom/sql/Tests/T24.stable.err
geom/sql/Tests/T24.stable.out
geom/sql/Tests/T25.reqtests
geom/sql/Tests/T25.stable.err
geom/sql/Tests/T25.stable.out
geom/sql/Tests/T26.reqtests
geom/sql/Tests/T27.reqtests
geom/sql/Tests/T27.stable.err
geom/sql/Tests/T27.stable.out
geom/sql/Tests/T28.reqtests
geom/sql/Tests/T28.stable.err
geom/sql/Tests/T28.stable.out
geom/sql/Tests/T29.reqtests
geom/sql/Tests/T29.stable.err
geom/sql/Tests/T29.stable.out
geom/sql/Tests/T3.reqtests
geom/sql/Tests/T3.stable.err
geom/sql/Tests/T3.stable.out
geom/sql/Tests/T30.reqtests
geom/sql/Tests/T30.stable.err
geom/sql/Tests/T30.stable.out
geom/sql/Tests/T31.reqtests
geom/sql/Tests/T31.stable.err
geom/sql/Tests/T31.stable.out
geom/sql/Tests/T32.reqtests
geom/sql/Tests/T32.stable.err
geom/sql/Tests/T32.stable.out
geom/sql/Tests/T33.reqtests
geom/sql/Tests/T34.reqtests
geom/sql/Tests/T34.stable.err
geom/sql/Tests/T34.stable.out
geom/sql/Tests/T35.reqtests
geom/sql/Tests/T35.stable.err
geom/sql/Tests/T35.stable.out
geom/sql/Tests/T36.reqtests
geom/sql/Tests/T36.sql
geom/sql/Tests/T36.stable.err
geom/sql/Tests/T36.stable.out
geom/sql/Tests/T37.reqtests
geom/sql/Tests/T38.reqtests
geom/sql/Tests/T39.reqtests
geom/sql/Tests/T4.reqtests
geom/sql/Tests/T4.stable.err
geom/sql/Tests/T4.stable.out
geom/sql/Tests/T40.reqtests
geom/sql/Tests/T41.reqtests
geom/sql/Tests/T42.reqtests
geom/sql/Tests/T43.reqtests
geom/sql/Tests/T43.stable.err
geom/sql/Tests/T43.stable.out
geom/sql/Tests/T44.reqtests
geom/sql/Tests/T45.reqtests
geom/sql/Tests/T46.reqtests
geom/sql/Tests/T47.reqtests
geom/sql/Tests/T48.reqtests
geom/sql/Tests/T49.reqtests
geom/sql/Tests/T49.stable.err
geom/sql/Tests/T49.stable.out
geom/sql/Tests/T5.reqtests
geom/sql/Tests/T50.reqtests
geom/sql/Tests/T51.reqtests
geom/sql/Tests/T52.reqtests
geom/sql/Tests/T6.reqtests
geom/sql/Tests/T7.reqtests
geom/sql/Tests/T7.stable.err
geom/sql/Tests/T7.stable.out
geom/sql/Tests/T8.reqtests
geom/sql/Tests/T9.reqtests
geom/sql/Tests/T9.stable.err
geom/sql/Tests/T9.stable.out
geom/sql/Tests/binary.sql
geom/sql/Tests/binary.stable.err
geom/sql/Tests/binary.stable.out
geom/sql/Tests/conformance_drop.sql
geom/sql/Tests/conformance_drop.stable.err
geom/sql/Tests/conformance_drop.stable.out
geom/sql/Tests/conformance_load.sql
geom/sql/Tests/conformance_load.stable.err
geom/sql/Tests/conformance_load.stable.out
geom/sql/Tests/normalized.sql
geom/sql/Tests/normalized.stable.err
geom/sql/Tests/normalized.stable.out
Removed Files:
geom/sql/Tests/ogc_conformance.sql
geom/sql/Tests/ogc_conformance.stable.err
geom/sql/Tests/ogc_conformance.stable.out
geom/sql/Tests/ogc_destroy.sql
geom/sql/Tests/ogc_destroy.stable.err
geom/sql/Tests/ogc_destroy.stable.out

MonetDB: newstorage - merge with default

2014-03-20 Thread Niels Nes
Changeset: 09dcf82952ce for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=09dcf82952ce
Added Files:
geom/sql/Tests/T1.reqtests
geom/sql/Tests/T1.stable.err
geom/sql/Tests/T1.stable.out
geom/sql/Tests/T10.reqtests
geom/sql/Tests/T11.reqtests
geom/sql/Tests/T12.reqtests
geom/sql/Tests/T13.reqtests
geom/sql/Tests/T13.stable.err
geom/sql/Tests/T13.stable.out
geom/sql/Tests/T14.reqtests
geom/sql/Tests/T14.stable.err
geom/sql/Tests/T14.stable.out
geom/sql/Tests/T15.reqtests
geom/sql/Tests/T15.stable.err
geom/sql/Tests/T15.stable.out
geom/sql/Tests/T16.reqtests
geom/sql/Tests/T17.reqtests
geom/sql/Tests/T17.stable.err
geom/sql/Tests/T17.stable.out
geom/sql/Tests/T18.reqtests
geom/sql/Tests/T18.stable.err
geom/sql/Tests/T18.stable.out
geom/sql/Tests/T19.reqtests
geom/sql/Tests/T19.stable.err
geom/sql/Tests/T19.stable.out
geom/sql/Tests/T2.reqtests
geom/sql/Tests/T2.stable.err
geom/sql/Tests/T2.stable.out
geom/sql/Tests/T20.reqtests
geom/sql/Tests/T20.stable.err
geom/sql/Tests/T20.stable.out
geom/sql/Tests/T21.reqtests
geom/sql/Tests/T22.reqtests
geom/sql/Tests/T22.stable.err
geom/sql/Tests/T22.stable.out
geom/sql/Tests/T23.reqtests
geom/sql/Tests/T23.stable.err
geom/sql/Tests/T23.stable.out
geom/sql/Tests/T24.reqtests
geom/sql/Tests/T24.stable.err
geom/sql/Tests/T24.stable.out
geom/sql/Tests/T25.reqtests
geom/sql/Tests/T25.stable.err
geom/sql/Tests/T25.stable.out
geom/sql/Tests/T26.reqtests
geom/sql/Tests/T27.reqtests
geom/sql/Tests/T27.stable.err
geom/sql/Tests/T27.stable.out
geom/sql/Tests/T28.reqtests
geom/sql/Tests/T28.stable.err
geom/sql/Tests/T28.stable.out
geom/sql/Tests/T29.reqtests
geom/sql/Tests/T29.stable.err
geom/sql/Tests/T29.stable.out
geom/sql/Tests/T3.reqtests
geom/sql/Tests/T3.stable.err
geom/sql/Tests/T3.stable.out
geom/sql/Tests/T30.reqtests
geom/sql/Tests/T30.stable.err
geom/sql/Tests/T30.stable.out
geom/sql/Tests/T31.reqtests
geom/sql/Tests/T31.stable.err
geom/sql/Tests/T31.stable.out
geom/sql/Tests/T32.reqtests
geom/sql/Tests/T32.stable.err
geom/sql/Tests/T32.stable.out
geom/sql/Tests/T33.reqtests
geom/sql/Tests/T34.reqtests
geom/sql/Tests/T34.stable.err
geom/sql/Tests/T34.stable.out
geom/sql/Tests/T35.reqtests
geom/sql/Tests/T35.stable.err
geom/sql/Tests/T35.stable.out
geom/sql/Tests/T36.reqtests
geom/sql/Tests/T36.sql
geom/sql/Tests/T36.stable.err
geom/sql/Tests/T36.stable.out
geom/sql/Tests/T37.reqtests
geom/sql/Tests/T38.reqtests
geom/sql/Tests/T39.reqtests
geom/sql/Tests/T4.reqtests
geom/sql/Tests/T4.stable.err
geom/sql/Tests/T4.stable.out
geom/sql/Tests/T40.reqtests
geom/sql/Tests/T41.reqtests
geom/sql/Tests/T42.reqtests
geom/sql/Tests/T43.reqtests
geom/sql/Tests/T43.stable.err
geom/sql/Tests/T43.stable.out
geom/sql/Tests/T44.reqtests
geom/sql/Tests/T45.reqtests
geom/sql/Tests/T46.reqtests
geom/sql/Tests/T47.reqtests
geom/sql/Tests/T48.reqtests
geom/sql/Tests/T49.reqtests
geom/sql/Tests/T49.stable.err
geom/sql/Tests/T49.stable.out
geom/sql/Tests/T5.reqtests
geom/sql/Tests/T50.reqtests
geom/sql/Tests/T51.reqtests
geom/sql/Tests/T52.reqtests
geom/sql/Tests/T6.reqtests
geom/sql/Tests/T7.reqtests
geom/sql/Tests/T7.stable.err
geom/sql/Tests/T7.stable.out
geom/sql/Tests/T8.reqtests
geom/sql/Tests/T9.reqtests
geom/sql/Tests/T9.stable.err
geom/sql/Tests/T9.stable.out
geom/sql/Tests/binary.sql
geom/sql/Tests/binary.stable.err
geom/sql/Tests/binary.stable.out
geom/sql/Tests/conformance_drop.sql
geom/sql/Tests/conformance_drop.stable.err
geom/sql/Tests/conformance_drop.stable.out
geom/sql/Tests/conformance_load.sql
geom/sql/Tests/conformance_load.stable.err
geom/sql/Tests/conformance_load.stable.out
geom/sql/Tests/normalized.sql
geom/sql/Tests/normalized.stable.err
geom/sql/Tests/normalized.stable.out
Removed Files:
geom/sql/Tests/ogc_conformance.sql
geom/sql/Tests/ogc_conformance.stable.err
geom/sql/Tests/ogc_conformance.stable.out
geom/sql/Tests/ogc_destroy.sql
geom/sql/Tests/ogc_destroy.stable.err
geom/sql/Tests/ogc_destroy.stable.out