Changeset: 1cd2e21d1783 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1cd2e21d1783 Modified Files: sql/backends/monet5/bam/Makefile.ag sql/backends/monet5/bam/Tests/benchmarks_0/benchmark2.sql sql/backends/monet5/bam/Tests/benchmarks_0/query2.10a.sql sql/backends/monet5/bam/Tests/benchmarks_0/query2.1a.sql sql/backends/monet5/bam/Tests/benchmarks_1/benchmark2.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.1.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.10.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.12.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.2.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.3.sql sql/backends/monet5/bam/Tests/benchmarks_1/query2.8.sql sql/backends/monet5/bam/Tests/common/common.h sql/backends/monet5/bam/Tests/common/stats.c sql/backends/monet5/bam/Tests/db_exec/db_exec sql/backends/monet5/bam/Tests/db_exec/db_exec.c sql/backends/monet5/bam/Tests/db_exec/makefile sql/backends/monet5/bam/Tests/usecase_exec/usecase_exec sql/backends/monet5/bam/bam_loader.c sql/backends/monet5/bam/bam_sql.c sql/backends/monet5/bam/bam_sql.h Branch: DVframework_bam Log Message:
Fixed some errors in the benchmark queries and some other small things. diffs (truncated from 4923 to 300 lines): diff --git a/sql/backends/monet5/bam/Makefile.ag b/sql/backends/monet5/bam/Makefile.ag --- a/sql/backends/monet5/bam/Makefile.ag +++ b/sql/backends/monet5/bam/Makefile.ag @@ -34,7 +34,7 @@ INCLUDES = .. \ lib__bam = { MODULE DIR = libdir/monetdb5 - SOURCES = bam_loader.c bam_loader.h bam_lib.h bam_lib.c + SOURCES = bam_loader.c bam_loader.h bam_lib.h bam_lib.c bam_sql.h bam_sql.c LIBS = ../../../../monetdb5/tools/libmonetdb5 \ ../../../../gdk/libbat \ $(SAMTOOLS_LIBS) diff --git a/sql/backends/monet5/bam/Tests/benchmarks_0/benchmark2.sql b/sql/backends/monet5/bam/Tests/benchmarks_0/benchmark2.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_0/benchmark2.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_0/benchmark2.sql @@ -5,7 +5,7 @@ WITH qnames AS ( SELECT qname FROM bam.alignments_i - AND seq <> '*' + WHERE seq <> '*' AND qual <> '*' AND bam_flag(flag, 'firs_segm') <> bam_flag(flag, 'last_segm') AND bam_flag(flag, 'seco_alig') = False diff --git a/sql/backends/monet5/bam/Tests/benchmarks_0/query2.10a.sql b/sql/backends/monet5/bam/Tests/benchmarks_0/query2.10a.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_0/query2.10a.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_0/query2.10a.sql @@ -19,7 +19,7 @@ FROM ( AND rname = rname_2_10 AND bam_flag(flag, 'seco_alig') = False AND bam_flag(flag, 'firs_segm') = True - AND qnames IN ( + AND qname IN ( SELECT * FROM qnames ) @@ -30,7 +30,7 @@ FROM ( AND rname = rname_2_10 AND bam_flag(flag, 'seco_alig') = False AND bam_flag(flag, 'last_segm') = True - AND qnames IN ( + AND qname IN ( SELECT * FROM qnames ) diff --git a/sql/backends/monet5/bam/Tests/benchmarks_0/query2.1a.sql b/sql/backends/monet5/bam/Tests/benchmarks_0/query2.1a.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_0/query2.1a.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_0/query2.1a.sql @@ -1,7 +1,7 @@ WITH qnames AS ( SELECT qname FROM bam.alignments_i - AND seq <> '*' + WHERE seq <> '*' AND qual <> '*' AND bam_flag(flag, 'firs_segm') <> bam_flag(flag, 'last_segm') AND bam_flag(flag, 'seco_alig') = False diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/benchmark2.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/benchmark2.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/benchmark2.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/benchmark2.sql @@ -9,9 +9,12 @@ SELECT qname, CASE WHEN bam_flag(r_flag, 'segm_reve') THEN reverse_seq(r_seq) ELSE r_seq END AS r_seq, CASE WHEN bam_flag(r_flag, 'segm_reve') THEN reverse_qual(r_qual) ELSE r_qual END AS r_qual FROM bam.paired_primary_alignments_i -WHERE seq <> '*' - AND qual <> '*' - AND mapq < mapq_2_1 +WHERE l_seq <> '*' + AND l_qual <> '*' + AND l_mapq < mapq_2_1 + AND r_seq <> '*' + AND r_qual <> '*' + AND r_mapq < mapq_2_1 ORDER BY qname; @@ -34,7 +37,7 @@ SELECT ELSE l_pos - (r_pos + seq_length(r_cigar)) END AS distance, COUNT(*) AS nr_alignments -FROM paired_primary_alignments_i +FROM bam.paired_primary_alignments_i WHERE l_rname = r_rname GROUP BY distance ORDER BY nr_alignments DESC; @@ -57,7 +60,7 @@ SELECT qname, flag, rname, pos, mapq, ci FROM bam.unpaired_all_alignments_i WHERE qname IN ( SELECT qname - FROM bam.unpaired_all_alignments + FROM bam.unpaired_all_alignments_i GROUP BY qname HAVING SUM(bam_flag(flag, 'firs_segm')) = 0 OR SUM(bam_flag(flag, 'last_segm')) = 0 @@ -230,7 +233,7 @@ FROM ( SELECT * FROM bam.unpaired_primary_alignments_j ) AS f2 - ON l.qname = r.qname + ON f1.qname = f2.qname AND bam_flag(f1.flag, 'firs_segm') = bam_flag(f2.flag, 'firs_segm') AND (f1.rname <> f2.rname OR f1.pos <> f2.pos) ORDER BY qname; @@ -275,8 +278,8 @@ FROM bam.paired_primary_alignments_i WHERE l_rname = rname_2_10 AND r_rname = rname_2_10 AND CASE WHEN l_pos < r_pos - THEN (pos_2_10 >= l.pos + seq_length(l.cigar) AND pos_2_10 < r.pos) - ELSE (pos_2_10 >= r.pos + seq_length(r.cigar) AND pos_2_10 < l.pos) + THEN (pos_2_10 >= l_pos + seq_length(l_cigar) AND pos_2_10 < r_pos) + ELSE (pos_2_10 >= r_pos + seq_length(r_cigar) AND pos_2_10 < l_pos) END ORDER BY l_pos @@ -317,7 +320,7 @@ ORDER BY qname; WITH alig AS ( SELECT * - FROM unpaired_alignments_i + FROM bam.unpaired_alignments_i WHERE bam_flag(flag, 'firs_segm') <> bam_flag(flag, 'last_segm') AND bam_flag(flag, 'seco_alig') = True AND rnext = '*' diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.1.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.1.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.1.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.1.sql @@ -4,7 +4,10 @@ SELECT qname, CASE WHEN bam_flag(r_flag, 'segm_reve') THEN reverse_seq(r_seq) ELSE r_seq END AS r_seq, CASE WHEN bam_flag(r_flag, 'segm_reve') THEN reverse_qual(r_qual) ELSE r_qual END AS r_qual FROM bam.paired_primary_alignments_i -WHERE seq <> '*' - AND qual <> '*' - AND mapq < mapq_2_1 +WHERE l_seq <> '*' + AND l_qual <> '*' + AND l_mapq < mapq_2_1 + AND r_seq <> '*' + AND r_qual <> '*' + AND r_mapq < mapq_2_1 ORDER BY qname; diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.10.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.10.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.10.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.10.sql @@ -4,7 +4,7 @@ FROM bam.paired_primary_alignments_i WHERE l_rname = rname_2_10 AND r_rname = rname_2_10 AND CASE WHEN l_pos < r_pos - THEN (pos_2_10 >= l.pos + seq_length(l.cigar) AND pos_2_10 < r.pos) - ELSE (pos_2_10 >= r.pos + seq_length(r.cigar) AND pos_2_10 < l.pos) + THEN (pos_2_10 >= l_pos + seq_length(l_cigar) AND pos_2_10 < r_pos) + ELSE (pos_2_10 >= r_pos + seq_length(r_cigar) AND pos_2_10 < l_pos) END ORDER BY l_pos diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.12.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.12.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.12.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.12.sql @@ -1,6 +1,6 @@ WITH alig AS ( SELECT * - FROM unpaired_alignments_i + FROM bam.unpaired_alignments_i WHERE bam_flag(flag, 'firs_segm') <> bam_flag(flag, 'last_segm') AND bam_flag(flag, 'seco_alig') = True AND rnext = '*' @@ -30,4 +30,4 @@ FROM ( ) AS alig WHERE distance > 0 AND distance < distance_2_12 -ORDER BY rname; +ORDER BY rname; \ No newline at end of file diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.2.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.2.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.2.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.2.sql @@ -4,7 +4,7 @@ SELECT ELSE l_pos - (r_pos + seq_length(r_cigar)) END AS distance, COUNT(*) AS nr_alignments -FROM paired_primary_alignments_i +FROM bam.paired_primary_alignments_i WHERE l_rname = r_rname GROUP BY distance ORDER BY nr_alignments DESC; diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.3.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.3.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.3.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.3.sql @@ -2,7 +2,7 @@ SELECT qname, flag, rname, pos, mapq, ci FROM bam.unpaired_all_alignments_i WHERE qname IN ( SELECT qname - FROM bam.unpaired_all_alignments + FROM bam.unpaired_all_alignments_i GROUP BY qname HAVING SUM(bam_flag(flag, 'firs_segm')) = 0 OR SUM(bam_flag(flag, 'last_segm')) = 0 diff --git a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.8.sql b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.8.sql --- a/sql/backends/monet5/bam/Tests/benchmarks_1/query2.8.sql +++ b/sql/backends/monet5/bam/Tests/benchmarks_1/query2.8.sql @@ -9,7 +9,7 @@ FROM ( SELECT * FROM bam.unpaired_primary_alignments_j ) AS f2 - ON l.qname = r.qname + ON f1.qname = f2.qname AND bam_flag(f1.flag, 'firs_segm') = bam_flag(f2.flag, 'firs_segm') AND (f1.rname <> f2.rname OR f1.pos <> f2.pos) ORDER BY qname; diff --git a/sql/backends/monet5/bam/Tests/common/common.h b/sql/backends/monet5/bam/Tests/common/common.h --- a/sql/backends/monet5/bam/Tests/common/common.h +++ b/sql/backends/monet5/bam/Tests/common/common.h @@ -8,7 +8,8 @@ #define UNSORTED 0 #define QUERYNAME 1 #define COORDINATE 2 -#define DB 0 /* Always either UNSORTED, QUERYNAME and COORDINATE or DB will be used by either usecase_exec or db_exec respectively */ +#define DB_A 0 /* Always either (UNSORTED, QUERYNAME and COORDINATE) or (DB_A or DB_B) will be used by either usecase_exec or db_exec respectively */ +#define DB_B 1 #define BAM_REPOS "/export/scratch2/robin/bam" #define DIR_OUTPUT "/export/scratch2/robin/output" diff --git a/sql/backends/monet5/bam/Tests/common/stats.c b/sql/backends/monet5/bam/Tests/common/stats.c --- a/sql/backends/monet5/bam/Tests/common/stats.c +++ b/sql/backends/monet5/bam/Tests/common/stats.c @@ -17,21 +17,24 @@ void init_usecase_timestats(usecase_time void initialize_timestats(timestats *stats, bit benchmark1, bit benchmark2, bit usecase_exec) { int i, j; - int nr_methods; + int nr_methods_init, nr_methods_bm1, nr_methods_bm2; stats->benchmark1 = benchmark1; stats->benchmark2 = benchmark2; stats->usecase_exec = usecase_exec; - nr_methods = usecase_exec ? 3 : 1; - for(i=0; i<nr_methods; ++i) + nr_methods_init = usecase_exec ? 3 : 1; /* In this case, only DB_A will be used */ + nr_methods_bm1 = usecase_exec ? 3 : 1; /* In this case, only DB_A will be used */ + nr_methods_bm2 = usecase_exec ? 3 : 2; + + for(i=0; i<nr_methods_init; ++i) { stats->init_stats[i].init_times_sec = (double *)calloc(NR_BAMFILES, sizeof(double)); } if(benchmark1) { - for(i=0; i<nr_methods; ++i) + for(i=0; i<nr_methods_bm1; ++i) { stats->usecase_stats_bm1[i] = (usecase_timestats *)malloc(5 * sizeof(usecase_timestats)); for(j=0; j<5; ++j) @@ -42,7 +45,7 @@ void initialize_timestats(timestats *sta } if(benchmark2) { - for(i=0; i<nr_methods; ++i) + for(i=0; i<nr_methods_bm2; ++i) { stats->usecase_stats_bm2[i] = (usecase_timestats *)malloc(12 * sizeof(usecase_timestats)); for(j=0; j<4; ++j) @@ -63,17 +66,19 @@ void initialize_timestats(timestats *sta void clear_timestats(timestats *stats) { + int nr_methods_init = stats->usecase_exec ? 3 : 1; /* In this case, only DB_A will be used */ + int nr_methods_bm1 = stats->usecase_exec ? 3 : 1; /* In this case, only DB_A will be used */ + int nr_methods_bm2 = stats->usecase_exec ? 3 : 2; int i, j; - int nr_methods = stats->usecase_exec ? 3 : 1; - for(i=0; i<nr_methods; ++i) + for(i=0; i<nr_methods_init; ++i) { free(stats->init_stats[i].init_times_sec); } if(stats->benchmark1) { - for(i=0; i<nr_methods; ++i) + for(i=0; i<nr_methods_bm1; ++i) { for(j=0; j<5; ++j) { @@ -91,7 +96,7 @@ void clear_timestats(timestats *stats) } if(stats->benchmark2) { - for(i=0; i<nr_methods; ++i) + for(i=0; i<nr_methods_bm2; ++i) { for(j=0; j<12; ++j) { @@ -142,7 +147,8 @@ void write_init_timestats(FILE *output, } else { - write_times_sec(output, "bam_loader_file", stats[DB].init_times_sec, NR_BAMFILES); + write_times_sec(output, "bam_loader_file", stats[DB_A].init_times_sec, NR_BAMFILES); + write_times_sec(output, "bam_loader_file", stats[DB_B].init_times_sec, NR_BAMFILES); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list