Changeset: d119cd118788 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d119cd118788 Added Files: sql/backends/monet5/bam/Tests/bam_lib.reqtests sql/backends/monet5/bam/Tests/bam_lib.sql sql/backends/monet5/bam/Tests/bam_lib.stable.err sql/backends/monet5/bam/Tests/bam_lib.stable.out sql/backends/monet5/bam/Tests/bam_lib_mal.mal sql/backends/monet5/bam/Tests/bam_lib_mal.stable.err sql/backends/monet5/bam/Tests/bam_lib_mal.stable.out sql/backends/monet5/bam/Tests/coverage_usecase.reqtests sql/backends/monet5/bam/Tests/coverage_usecase.sql sql/backends/monet5/bam/Tests/mergetable.reqtests sql/backends/monet5/bam/Tests/mergetable.sql Removed Files: sql/backends/monet5/bam/Tests/mergetable.SQL.py sql/backends/monet5/bam/Tests/sql/drop_last_files.sql sql/backends/monet5/bam/Tests/sql/mergetable.sql Modified Files: clients/Tests/MAL-signatures.malC clients/Tests/SQL-dump.sql clients/Tests/SQL-dump.stable.out monetdb5/modules/mal/Tests/remote07.malC sql/backends/monet5/bam/85_bam.sql sql/backends/monet5/bam/Tests/All sql/backends/monet5/bam/Tests/bam_loader_files.SQL.py sql/backends/monet5/bam/Tests/bam_loader_files.stable.err sql/backends/monet5/bam/Tests/bam_loader_files.stable.out sql/backends/monet5/bam/Tests/check_files.sql sql/backends/monet5/bam/Tests/check_files.stable.out sql/backends/monet5/bam/Tests/drop_last_files.SQL.py sql/backends/monet5/bam/Tests/sql/bam_loader_files.sql sql/backends/monet5/bam/Tests/sql/bam_loader_repos.sql sql/backends/monet5/bam/Tests/sql/sam_export.sql sql/backends/monet5/bam/bam.mal sql/backends/monet5/bam/bam_lib.c sql/backends/monet5/bam/bam_loader.c sql/backends/monet5/bam/bam_wrapper.c sql/backends/monet5/bam/bam_wrapper.h sql/benchmarks/tpch/c.sql-primary sql/benchmarks/tpch/c.sql-primary-foreign sql/jdbc/tests/Tests/Test_Dobjects.stable.out sql/scripts/41_md5sum.sql sql/test/BugTracker-2012/Tests/currenttime.Bug-2781.SQL.py sql/test/Tests/systemfunctions.stable.out sql/test/leaks/Tests/check0.stable.out sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check5.stable.out sql/test/leaks/Tests/drop3.stable.out sql/test/leaks/Tests/select1.stable.out sql/test/leaks/Tests/select2.stable.out sql/test/leaks/Tests/temp1.stable.out sql/test/leaks/Tests/temp2.stable.out sql/test/leaks/Tests/temp3.stable.out sql/test/mergetables/Tests/forex.stable.err sql/test/mergetables/Tests/forex.stable.out Branch: default Log Message:
Merge bamload into defautl diffs (truncated from 5290 to 300 lines): diff --git a/sql/backends/monet5/bam/85_bam.sql b/sql/backends/monet5/bam/85_bam.sql --- a/sql/backends/monet5/bam/85_bam.sql +++ b/sql/backends/monet5/bam/85_bam.sql @@ -1,9 +1,9 @@ CREATE SCHEMA bam; -CREATE PROCEDURE bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT, nr_threads SMALLINT) +CREATE PROCEDURE bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT) EXTERNAL NAME bam.bam_loader_repos; -CREATE PROCEDURE bam.bam_loader_files(bam_files STRING, dbschema SMALLINT, nr_threads SMALLINT) +CREATE PROCEDURE bam.bam_loader_files(bam_files STRING, dbschema SMALLINT) EXTERNAL NAME bam.bam_loader_files; CREATE PROCEDURE bam.bam_loader_file(bam_file STRING, dbschema SMALLINT) @@ -25,6 +25,9 @@ RETURNS STRING EXTERNAL NAME bam.reverse CREATE FUNCTION bam.seq_length(cigar STRING) RETURNS INT EXTERNAL NAME bam.seq_length; +CREATE FUNCTION bam.seq_char(ref_pos INT, alg_seq STRING, alg_pos INT, alg_cigar STRING) +RETURNS CHAR(1) EXTERNAL NAME bam.seq_char; + CREATE PROCEDURE bam.sam_export(output_path STRING) EXTERNAL NAME bam.sam_export; diff --git a/sql/backends/monet5/bam/Tests/All b/sql/backends/monet5/bam/Tests/All --- a/sql/backends/monet5/bam/Tests/All +++ b/sql/backends/monet5/bam/Tests/All @@ -25,3 +25,6 @@ HAVE_SAMTOOLS?query2.10 HAVE_SAMTOOLS?query2.11 HAVE_SAMTOOLS?query2.12 HAVE_SAMTOOLS?mergetable +HAVE_SAMTOOLS?bam_lib_mal +HAVE_SAMTOOLS?bam_lib +#HAVE_SAMTOOLS?coverage_usecase diff --git a/sql/backends/monet5/bam/Tests/bam_lib.reqtests b/sql/backends/monet5/bam/Tests/bam_lib.reqtests new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/bam/Tests/bam_lib.reqtests @@ -0,0 +1,1 @@ +bam_loader_file diff --git a/sql/backends/monet5/bam/Tests/bam_lib.sql b/sql/backends/monet5/bam/Tests/bam_lib.sql new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/bam/Tests/bam_lib.sql @@ -0,0 +1,133 @@ +SET SCHEMA bam; + +# BAM_FLAG + +# Should all give 'true' +SELECT bam_flag(1, 'mult_segm'); +SELECT bam_flag(2, 'prop_alig'); +SELECT bam_flag(4, 'segm_unma'); +SELECT bam_flag(8, 'next_unma'); +SELECT bam_flag(16, 'segm_reve'); +SELECT bam_flag(32, 'next_reve'); +SELECT bam_flag(64, 'firs_segm'); +SELECT bam_flag(128, 'last_segm'); +SELECT bam_flag(256, 'seco_alig'); +SELECT bam_flag(512, 'qual_cont'); +SELECT bam_flag(1024, 'opti_dupl'); +SELECT bam_flag(2048, 'supp_alig'); + +# Should all give 'false' +SELECT bam_flag(2, 'mult_segm'); +SELECT bam_flag(4, 'prop_alig'); +SELECT bam_flag(8, 'segm_unma'); +SELECT bam_flag(16, 'next_unma'); +SELECT bam_flag(4, 'segm_reve'); +SELECT bam_flag(2, 'next_reve'); +SELECT bam_flag(4, 'firs_segm'); +SELECT bam_flag(8, 'last_segm'); +SELECT bam_flag(16, 'seco_alig'); +SELECT bam_flag(32, 'qual_cont'); +SELECT bam_flag(64, 'opti_dupl'); +SELECT bam_flag(128, 'supp_alig'); + +# Should all give 'true' +SELECT bam_flag(2047, 'mult_segm'); +SELECT bam_flag(2047, 'prop_alig'); +SELECT bam_flag(2047, 'segm_unma'); +SELECT bam_flag(2047, 'next_unma'); +SELECT bam_flag(2047, 'segm_reve'); +SELECT bam_flag(2047, 'next_reve'); +SELECT bam_flag(2047, 'firs_segm'); +SELECT bam_flag(2047, 'last_segm'); +SELECT bam_flag(2047, 'seco_alig'); +SELECT bam_flag(2047, 'qual_cont'); +SELECT bam_flag(2047, 'opti_dupl'); +SELECT bam_flag(4095, 'supp_alig'); + +# Should fail +SELECT bam_flag(111, 'Fail-hard'); + +# Bulk +SELECT flag, + bam_flag(flag, 'mult_segm') AS mult_segm, + bam_flag(flag, 'prop_alig') AS prop_alig, + bam_flag(flag, 'segm_unma') AS segm_unma, + bam_flag(flag, 'next_unma') AS next_unma, + bam_flag(flag, 'segm_reve') AS segm_reve, + bam_flag(flag, 'next_reve') AS next_reve, + bam_flag(flag, 'firs_segm') AS firs_segm, + bam_flag(flag, 'last_segm') AS last_segm, + bam_flag(flag, 'seco_alig') AS seco_alig, + bam_flag(flag, 'qual_cont') AS qual_cont, + bam_flag(flag, 'opti_dupl') AS opti_dupl, + bam_flag(flag, 'supp_alig') AS supp_alig +FROM bam.alignments_1; + + + + +# REVERSE_SEQ +SELECT reverse_seq('A'); +SELECT reverse_seq('T'); +SELECT reverse_seq('C'); +SELECT reverse_seq('G'); +SELECT reverse_seq('R'); +SELECT reverse_seq('Y'); +SELECT reverse_seq('S'); +SELECT reverse_seq('W'); +SELECT reverse_seq('K'); +SELECT reverse_seq('M'); +SELECT reverse_seq('H'); +SELECT reverse_seq('D'); +SELECT reverse_seq('V'); +SELECT reverse_seq('B'); +SELECT reverse_seq('N'); +SELECT reverse_seq('ATCGRYSWKMHDVBN'); +SELECT reverse_seq('invalidchars'); + +# Bulk +SELECT seq, reverse_seq(seq) AS reverse_seq +FROM bam.alignments_1; + + +# REVERSE_QUAL +SELECT reverse_qual('Should be reversed'); + +# Bulk +SELECT qual, reverse_qual(qual) AS reverse_qual +FROM bam.alignments_1; + + + + +# SEQ_LENGTH +SELECT seq_length('18M'); +SELECT seq_length('3I5D6N'); +SELECT seq_length('3=1X1=1X43=1X16=1X33='); + +# Bulk +SELECT cigar, seq_length(cigar) AS seq_length +FROM bam.alignments_1; + + + +# SEQ_CHAR + +# Some simple cases +SELECT seq_char(5000, 'ACTGAG', 0, '6M'); +SELECT seq_char(5000, 'ACTGAG', 4995, '6M'); +SELECT seq_char(5000, 'ACTGAG', 4994, '6M'); +SELECT seq_char(5000, 'ACTGAG', 5000, '6M'); +SELECT seq_char(5000, 'ACTGAG', 5001, '6M'); + +# Cases inspired by http://genome.sph.umich.edu/wiki/SAM#What_is_a_CIGAR.3F +SELECT seq_char(7, 'ACTAGAATGGCT', 5, '3M1I3M1D5M'); +SELECT seq_char(8, 'ACTAGAATGGCT', 5, '3M1I3M1D5M'); +SELECT seq_char(11, 'ACTAGAATGGCT', 5, '3M1I3M1D5M'); +SELECT seq_char(16, 'ACTAGAATGGCT', 5, '3M1I3M1D5M'); +SELECT seq_char(17, 'ACTAGAATGGCT', 5, '3M1I3M1D5M'); + +# Bulk +SELECT 17922987 AS ref_pos, seq, pos, cigar, seq_char(17922987, seq, pos, cigar) AS seq_char +FROM bam.alignments_1 +WHERE seq_char(17922987, seq, pos, cigar) IS NOT NULL; diff --git a/sql/backends/monet5/bam/Tests/bam_lib.stable.err b/sql/backends/monet5/bam/Tests/bam_lib.stable.err new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/bam/Tests/bam_lib.stable.err @@ -0,0 +1,39 @@ +stderr of test 'bam_lib` in directory 'sql/backends/monet5/bam` itself: + + +# 14:48:31 > +# 14:48:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35990" "--set" "mapi_usock=/var/tmp/mtest-20228/.s.monetdb.35990" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/robin/MonetDB/PREFIX/var/MonetDB/mTests_sql_backends_monet5_bam" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 14:48:31 > + +# builtin opt gdk_dbpath = /home/robin/MonetDB/PREFIX/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 35990 +# cmdline opt mapi_usock = /var/tmp/mtest-20228/.s.monetdb.35990 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /home/robin/MonetDB/PREFIX/var/MonetDB/mTests_sql_backends_monet5_bam +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = yes +# cmdline opt gdk_debug = 536870922 + +# 14:48:31 > +# 14:48:31 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-20228" "--port=35990" +# 14:48:31 > + +MAPI = (monetdb) /var/tmp/mtest-20228/.s.monetdb.35990 +QUERY = SELECT bam_flag(111, 'Fail-hard'); +ERROR = !Unknown flag name given: Fail-hard + +# 14:48:32 > +# 14:48:32 > "Done." +# 14:48:32 > diff --git a/sql/backends/monet5/bam/Tests/bam_lib.stable.out b/sql/backends/monet5/bam/Tests/bam_lib.stable.out new file mode 100644 --- /dev/null +++ b/sql/backends/monet5/bam/Tests/bam_lib.stable.out @@ -0,0 +1,760 @@ +stdout of test 'bam_lib` in directory 'sql/backends/monet5/bam` itself: + + +# 14:48:31 > +# 14:48:31 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35990" "--set" "mapi_usock=/var/tmp/mtest-20228/.s.monetdb.35990" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/robin/MonetDB/PREFIX/var/MonetDB/mTests_sql_backends_monet5_bam" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 14:48:31 > + +# MonetDB 5 server v11.20.0 +# This is an unreleased version +# Serving database 'mTests_sql_backends_monet5_bam', using 4 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 7.333 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://robin-xps13:35990/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-20228/.s.monetdb.35990 +# MonetDB/SQL module loaded +# MonetDB/R module loaded + +Ready. + +# 14:48:31 > +# 14:48:31 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-20228" "--port=35990" +# 14:48:31 > + +#SET SCHEMA bam; +#SELECT bam_flag(1, 'mult_segm'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(2, 'prop_alig'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(4, 'segm_unma'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(8, 'next_unma'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(16, 'segm_reve'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(32, 'next_reve'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(64, 'firs_segm'); +% .L # table_name +% bam_flag_single_value # name +% boolean # type +% 5 # length +[ true ] +#SELECT bam_flag(128, 'last_segm'); +% .L # table_name +% bam_flag_single_value # name _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list