Changeset: e464c0fe253f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e464c0fe253f
Added Files:
debian/libmonetdb5-server-bam.install
sql/backends/monet5/bam/85_bam.mal
sql/backends/monet5/bam/85_bam.sql
sql/backends/monet5/bam/BAMRecipe.pdf
sql/backends/monet5/bam/Makefile.ag
sql/backends/monet5/bam/Tests/All
sql/backends/monet5/bam/Tests/bam.py
sql/backends/monet5/bam/Tests/bam_export.SQL.py
sql/backends/monet5/bam/Tests/bam_loader_file.SQL.py
sql/backends/monet5/bam/Tests/bam_loader_file.stable.err
sql/backends/monet5/bam/Tests/bam_loader_file.stable.out
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/bam_loader_repos.SQL.py
sql/backends/monet5/bam/Tests/bam_loader_repos.stable.err
sql/backends/monet5/bam/Tests/bam_loader_repos.stable.out
sql/backends/monet5/bam/Tests/check_files.sql
sql/backends/monet5/bam/Tests/check_files.stable.err
sql/backends/monet5/bam/Tests/check_files.stable.out
sql/backends/monet5/bam/Tests/check_files_exact.sql
sql/backends/monet5/bam/Tests/check_files_exact.stable.err
sql/backends/monet5/bam/Tests/check_files_exact.stable.out
sql/backends/monet5/bam/Tests/drop_last_files.SQL.py
sql/backends/monet5/bam/Tests/drop_last_files.stable.err
sql/backends/monet5/bam/Tests/drop_last_files.stable.out
sql/backends/monet5/bam/Tests/files/file1.bam
sql/backends/monet5/bam/Tests/files/file2.sam
sql/backends/monet5/bam/Tests/files/queryname/file1.bam
sql/backends/monet5/bam/Tests/files/queryname/file2.sam
sql/backends/monet5/bam/Tests/query1.1.sql
sql/backends/monet5/bam/Tests/query1.1.stable.err
sql/backends/monet5/bam/Tests/query1.1.stable.out
sql/backends/monet5/bam/Tests/query1.2.sql
sql/backends/monet5/bam/Tests/query1.2.stable.err
sql/backends/monet5/bam/Tests/query1.2.stable.out
sql/backends/monet5/bam/Tests/query1.3.sql
sql/backends/monet5/bam/Tests/query1.3.stable.err
sql/backends/monet5/bam/Tests/query1.3.stable.out
sql/backends/monet5/bam/Tests/query1.4.sql
sql/backends/monet5/bam/Tests/query1.4.stable.err
sql/backends/monet5/bam/Tests/query1.4.stable.out
sql/backends/monet5/bam/Tests/query1.5.sql
sql/backends/monet5/bam/Tests/query1.5.stable.err
sql/backends/monet5/bam/Tests/query1.5.stable.out
sql/backends/monet5/bam/Tests/query1.6.sql
sql/backends/monet5/bam/Tests/query2.1.sql
sql/backends/monet5/bam/Tests/query2.1.stable.err
sql/backends/monet5/bam/Tests/query2.1.stable.out
sql/backends/monet5/bam/Tests/query2.10.sql
sql/backends/monet5/bam/Tests/query2.10.stable.err
sql/backends/monet5/bam/Tests/query2.10.stable.out
sql/backends/monet5/bam/Tests/query2.11.sql
sql/backends/monet5/bam/Tests/query2.11.stable.err
sql/backends/monet5/bam/Tests/query2.11.stable.out
sql/backends/monet5/bam/Tests/query2.12.sql
sql/backends/monet5/bam/Tests/query2.12.stable.err
sql/backends/monet5/bam/Tests/query2.12.stable.out
sql/backends/monet5/bam/Tests/query2.2.sql
sql/backends/monet5/bam/Tests/query2.2.stable.err
sql/backends/monet5/bam/Tests/query2.2.stable.out
sql/backends/monet5/bam/Tests/query2.3.sql
sql/backends/monet5/bam/Tests/query2.3.stable.err
sql/backends/monet5/bam/Tests/query2.3.stable.out
sql/backends/monet5/bam/Tests/query2.4.sql
sql/backends/monet5/bam/Tests/query2.4.stable.err
sql/backends/monet5/bam/Tests/query2.4.stable.out
sql/backends/monet5/bam/Tests/query2.5.sql
sql/backends/monet5/bam/Tests/query2.5.stable.err
sql/backends/monet5/bam/Tests/query2.5.stable.out
sql/backends/monet5/bam/Tests/query2.6.sql
sql/backends/monet5/bam/Tests/query2.6.stable.err
sql/backends/monet5/bam/Tests/query2.6.stable.out
sql/backends/monet5/bam/Tests/query2.7.sql
sql/backends/monet5/bam/Tests/query2.7.stable.err
sql/backends/monet5/bam/Tests/query2.7.stable.out
sql/backends/monet5/bam/Tests/query2.8.sql
sql/backends/monet5/bam/Tests/query2.8.stable.err
sql/backends/monet5/bam/Tests/query2.8.stable.out
sql/backends/monet5/bam/Tests/query2.9.sql
sql/backends/monet5/bam/Tests/query2.9.stable.err
sql/backends/monet5/bam/Tests/query2.9.stable.out
sql/backends/monet5/bam/Tests/sam_export.SQL.py
sql/backends/monet5/bam/Tests/sam_export.stable.err
sql/backends/monet5/bam/Tests/sam_export.stable.out
sql/backends/monet5/bam/Tests/sql/bam_export.sql
sql/backends/monet5/bam/Tests/sql/bam_loader_file.sql
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/drop_last_files.sql
sql/backends/monet5/bam/Tests/sql/sam_export.sql
sql/backends/monet5/bam/Tests/verify_load.sql
sql/backends/monet5/bam/Tests/verify_load.stable.err
sql/backends/monet5/bam/Tests/verify_load.stable.out
sql/backends/monet5/bam/bam.mal
sql/backends/monet5/bam/bam_db_interface.c
sql/backends/monet5/bam/bam_db_interface.h
sql/backends/monet5/bam/bam_export.c
sql/backends/monet5/bam/bam_export.h
sql/backends/monet5/bam/bam_globals.c
sql/backends/monet5/bam/bam_globals.h
sql/backends/monet5/bam/bam_lib.c
sql/backends/monet5/bam/bam_lib.h
sql/backends/monet5/bam/bam_loader.c
sql/backends/monet5/bam/bam_loader.h
sql/backends/monet5/bam/bam_wrapper.c
sql/backends/monet5/bam/bam_wrapper.h
sql/backends/monet5/bam/mykstring.h
sql/jdbc/tests/Tests/Test_Dobjects_bam.SQL.sh
sql/jdbc/tests/Tests/Test_Dobjects_bam.stable.err
sql/jdbc/tests/Tests/Test_Dobjects_bam.stable.out
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-0.Bug-3063_bam.sql.src
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-0.Bug-3063_bam.stable.err
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-0.Bug-3063_bam.stable.out
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-1.Bug-3063_bam.sql.src
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-1.Bug-3063_bam.stable.err
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-1.Bug-3063_bam.stable.out
sql/test/Dependencies/Tests/Dependencies_bam.SQL.py.src
sql/test/Dependencies/Tests/Dependencies_bam.stable.err
sql/test/Dependencies/Tests/Dependencies_bam.stable.out
sql/test/Tests/keys_bam.sql.src
sql/test/Tests/keys_bam.stable.err
sql/test/Tests/keys_bam.stable.out
Modified Files:
MonetDB.spec
NT/monetdb_config.h.in
NT/rules.msc
buildtools/conf/Maddlog
buildtools/conf/Makefile.ag
buildtools/conf/banner.bmp
buildtools/conf/fixlicense.py
buildtools/conf/license.rtf
buildtools/conf/monetdb.ico
buildtools/conf/rules.mk
buildtools/conf/website.html
clients/Tests/All
clients/examples/php/sqlsample.php
clients/mapiclient/mclient.c
configure.ag
debian/control
debian/monetdb5-server.install
debian/rules
monetdb5/modules/mal/Tests/tokenizer00.mal
monetdb5/modules/mal/Tests/tokenizer00.stable.err
monetdb5/modules/mal/Tests/tokenizer00.stable.out
monetdb5/modules/mal/tokenizer.c
monetdb5/modules/mal/tokenizer.h
monetdb5/modules/mal/tokenizer.mal
monetdb5/optimizer/opt_support.c
sql/backends/monet5/Makefile.ag
sql/jdbc/tests/Tests/All
sql/test/BugConstraints/Tests/All
sql/test/BugConstraints/add_constraint_1643522.sql
sql/test/BugDay_2005-10-06_2.8/Tests/All
sql/test/BugDay_2005-11-09_2.8/Tests/All
sql/test/BugTracker-2008/Tests/All
sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.sql
sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.err
sql/test/BugTracker-2008/Tests/sql_command_kills_db.SF-2233677.stable.out
sql/test/BugTracker-2009/Tests/All
sql/test/BugTracker-2010/Tests/All
sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.sql
sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out
sql/test/BugTracker-2011/Tests/All
sql/test/BugTracker-2011/Tests/count-count-distinct.Bug-2808.sql
sql/test/BugTracker-2011/Tests/count-count-distinct.Bug-2808.stable.out
sql/test/BugTracker-2011/Tests/exists-select.Bug-2933.sql
sql/test/BugTracker-2011/Tests/exists-select.Bug-2933.stable.out
sql/test/BugTracker-2012/Tests/All
sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.sql
sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.sql
sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
sql/test/BugTracker-2013/Tests/All
sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.sql
sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
sql/test/BugTracker-2014/Tests/All
sql/test/BugTracker-2014/Tests/select-having.Bug-3458.sql
sql/test/BugTracker-2014/Tests/select-having.Bug-3458.stable.out
sql/test/BugTracker/Tests/All
sql/test/Dependencies/Tests/All
sql/test/DropCascade/Tests/All
sql/test/DropCascade/Tests/drop_columns_cascade.sql
sql/test/DropCascade/Tests/drop_pkey_cascade.sql
sql/test/Dump/Tests/All
sql/test/Tests/All
sql/test/UserDump/Tests/All
sql/test/bugs/Tests/All
sql/test/bugs/Tests/crash_order_by.sql
sql/test/bugs/Tests/crash_order_by.stable.err
sql/test/bugs/Tests/crash_order_by.stable.out
sql/test/bugs/Tests/insert_delete-bug-sf-904025.stable.out
sql/test/bugs/Tests/simple_view.sql
sql/test/bugs/Tests/simple_view.stable.out
sql/test/bugs/insert_delete-bug-sf-904025.sql
sql/test/leaks/Tests/All
sql/test/mapi/Tests/All
sql/test/mapi/Tests/php_monetdb.stable.out
sql/test/testdb/Tests/All
sql/test/testdb/Tests/testdb-load.stable.err
sql/test/testdb/Tests/testdb-load.stable.out
testing/Mtest.py.in
Branch: default
Log Message:
Merged bamloader branch into default branch.
diffs (truncated from 20740 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -36,6 +36,10 @@
%define with_geos 1
%endif
+%if %{?_with_samtools:1}%{!?_with_samtools:0}
+%define with_samtools 1
+%endif
+
Name: %{name}
Version: %{version}
Release: %{release}
@@ -78,6 +82,9 @@ BuildRequires: rubygems-devel
%endif
BuildRequires: unixODBC-devel
BuildRequires: zlib-devel
+%if %{?with_samtools:1}%{!?with_samtools:0}
+BuildRequires: samtools-devel
+%endif
# need to define python_sitelib on RHEL 5 and older
# no need to define python3_sitelib: it's defined by python3-devel
@@ -449,6 +456,29 @@ numerical analysis (gsl).
%{_libdir}/monetdb5/gsl.mal
%{_libdir}/monetdb5/lib_gsl.so
+%if %{?_with_samtools:1}%{!?_with_samtools:0}
+%package bam-MonetDB5
+Summary: MonetDB5 SQL interface to the bam library
+Group: Applications/Databases
+Requires: MonetDB5-server = %{version}-%{release}
+
+%description bam-MonetDB5
+MonetDB is a database management system that is developed from a
+main-memory perspective with use of a fully decomposed storage model,
+automatic index management, extensibility of data types and search
+accelerators. It also has an SQL frontend.
+
+This package contains the interface to load and query BAM (binary
+version of Sequence Alignment/Map) data.
+
+%files bam-MonetDB5
+%defattr(-,root,root)
+%{_libdir}/monetdb5/autoload/*_bam.mal
+%{_libdir}/monetdb5/createdb/*_bam.sql
+%{_libdir}/monetdb5/bam.mal
+%{_libdir}/monetdb5/lib_bam.so
+%endif
+
%package -n MonetDB5-server
Summary: MonetDB - Monet Database Management System
Group: Applications/Databases
@@ -512,6 +542,11 @@ fi
%exclude %{_libdir}/monetdb5/lib_geom.so
%endif
%exclude %{_libdir}/monetdb5/lib_gsl.so
+%if %{?_with_samtools:1}%{!?_with_samtools:0}
+%exclude %{_libdir}/monetdb5/bam.mal
+%exclude %{_libdir}/monetdb5/autoload/*_bam.mal
+%exclude %{_libdir}/monetdb5/lib_bam.so
+%endif
# %exclude %{_libdir}/monetdb5/lib_rdf.so
%exclude %{_libdir}/monetdb5/lib_sql.so
%{_libdir}/monetdb5/*.so
@@ -605,6 +640,9 @@ systemd-tmpfiles --create %{_sysconfdir}
%exclude %{_libdir}/monetdb5/createdb/*_geom.sql
%endif
%exclude %{_libdir}/monetdb5/createdb/*_gsl.sql
+%if %{?_with_samtools:1}%{!?_with_samtools:0}
+%exclude %{_libdir}/monetdb5/createdb/*_bam.sql
+%endif
# %exclude %{_libdir}/monetdb5/createdb/*_rdf.sql
%{_libdir}/monetdb5/createdb/*
%{_libdir}/monetdb5/sql*.mal
@@ -762,6 +800,7 @@ developer, but if you do want to test, t
--with-readline=yes \
--with-rubygem=%{?rhel:no}%{!?rhel:yes} \
--with-rubygem-dir=%{?rhel:no}%{!?rhel:"%{gem_dir}"} \
+ --with-samtools=%{?with_samtools:yes}%{!?with_samtools:no} \
--with-sphinxclient=no \
--with-unixodbc=yes \
--with-valgrind=no \
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -458,6 +458,12 @@
/* Define to 1 if you have the `round' function. */
/* #undef HAVE_ROUND */
+/* Define if you have the samtools (providing the bam library) */
+/* #undef HAVE_SAMTOOLS */
+
+/* Define to 1 if you have the <samtools/kstring.h> header file. */
+/* #undef HAVE_SAMTOOLS_KSTRING_H */
+
/* Define to 1 if you have the `sbrk' function. */
/* #undef HAVE_SBRK */
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -411,6 +411,11 @@ create_winconfig_conds_new_py:
!ELSE
$(ECHO) HAVE_RUBYGEM_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
!ENDIF
+!IFDEF HAVE_SAMTOOLS
+ $(ECHO) HAVE_SAMTOOLS_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ELSE
+ $(ECHO) HAVE_SAMTOOLS_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ENDIF
!IFDEF HAVE_SPHINXCLIENT
$(ECHO) HAVE_SPHINXCLIENT_FALSE='#' >>
"$(TOPDIR)\winconfig_conds_new.py"
!ELSE
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,8 +1,8 @@
exports
-HAVE_GEOM&HAVE_CFITSIO&!HAVE_SPHINXCLIENT&!HAVE_GSL?MAL-signatures
-HAVE_GEOM&HAVE_CFITSIO&!HAVE_SPHINXCLIENT&HAVE_GSL?MAL-signatures_gsl
-HAVE_GEOM&HAVE_CFITSIO&HAVE_SPHINXCLIENT&!HAVE_GSL?MAL-signatures_sphinxclient
-HAVE_GEOM&!HAVE_CFITSIO&!HAVE_SPHINXCLIENT&!HAVE_GSL?MAL-signatures_nocfitsio
-HAVE_GEOM&!HAVE_GSL?SQL-dump
-HAVE_GEOM&HAVE_GSL?SQL-dump_gsl
-!HAVE_GEOM&!HAVE_GSL?SQL-dump_nogeom
+HAVE_GEOM&HAVE_CFITSIO&!HAVE_SPHINXCLIENT&!HAVE_GSL&!HAVE_SAMTOOLS?MAL-signatures
+HAVE_GEOM&HAVE_CFITSIO&!HAVE_SPHINXCLIENT&HAVE_GSL&!HAVE_SAMTOOLS?MAL-signatures_gsl
+HAVE_GEOM&HAVE_CFITSIO&HAVE_SPHINXCLIENT&!HAVE_GSL&!HAVE_SAMTOOLS?MAL-signatures_sphinxclient
+HAVE_GEOM&!HAVE_CFITSIO&!HAVE_SPHINXCLIENT&!HAVE_GSL&!HAVE_SAMTOOLS?MAL-signatures_nocfitsio
+HAVE_GEOM&!HAVE_GSL&!HAVE_SAMTOOLS?SQL-dump
+HAVE_GEOM&HAVE_GSL&!HAVE_SAMTOOLS?SQL-dump_gsl
+!HAVE_GEOM&!HAVE_GSL&!HAVE_SAMTOOLS?SQL-dump_nogeom
diff --git a/clients/examples/php/sqlsample.php
b/clients/examples/php/sqlsample.php
--- a/clients/examples/php/sqlsample.php
+++ b/clients/examples/php/sqlsample.php
@@ -23,12 +23,12 @@
require 'monetdb/php_monetdb.php';
$db = monetdb_connect("sql", "localhost", $argv[1], "monetdb", "monetdb",
$argv[2]);
-$tables = monetdb_query('SELECT name FROM tables');
+$tables = monetdb_query('SELECT name FROM tables LIMIT 10');
for ($i = 0; $line = @monetdb_fetch_assoc($tables); $i++) {
print($line['name']."\n");
}
-$result = monetdb_query('SELECT name, schema_id, query, type, system,
commit_action, readonly, temporary FROM tables');
+$result = monetdb_query('SELECT name, schema_id, query, type, system,
commit_action, readonly, temporary FROM tables LIMIT 10');
$cols = monetdb_num_fields($result);
for ($i = 0; $i < $cols; $i++) {
print(monetdb_field_name($result, $i)."\t");
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -116,7 +116,8 @@ enum formatters {
XMLformatter,
TESTformatter,
CLEANformatter,
- TIMERformatter
+ TIMERformatter,
+ SAMformatter
};
static enum formatters formatter = NOformatter;
char *output = NULL; /* output format as string */
@@ -1040,6 +1041,84 @@ 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;
+
+ /* First, initialize field variables properly */
+ for (i = 0; i < field_count; i++) {
+ char *field_name = mapi_get_name(hdl, i);
+ if (strcmp(field_name, "qname") == 0)
+ field_qname = i;
+ else if (strcmp(field_name, "flag" ) == 0)
+ field_flag = i;
+ else if (strcmp(field_name, "rname") == 0)
+ field_rname = i;
+ else if (strcmp(field_name, "pos" ) == 0)
+ field_pos = i;
+ else if (strcmp(field_name, "mapq" ) == 0)
+ field_mapq = i;
+ else if (strcmp(field_name, "cigar") == 0)
+ field_cigar = i;
+ else if (strcmp(field_name, "rnext") == 0)
+ field_rnext = i;
+ else if (strcmp(field_name, "pnext") == 0)
+ field_pnext = i;
+ else if (strcmp(field_name, "tlen" ) == 0)
+ field_tlen = i;
+ else if (strcmp(field_name, "seq" ) == 0)
+ field_seq = i;
+ else if (strcmp(field_name, "qual" ) == 0)
+ field_qual = i;
+ else
+ 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)
{
@@ -1390,6 +1469,8 @@ setFormatter(char *s)
formatter = TESTformatter;
} else if (strcmp(s, "timer") == 0) {
formatter = TIMERformatter;
+ } else if (strcmp(s, "sam") == 0) {
+ formatter = SAMformatter;
} else {
mnstr_printf(toConsole, "unsupported formatter\n");
}
@@ -1611,6 +1692,9 @@ format_result(Mapi mid, MapiHdl hdl, cha
case TIMERformatter:
TIMERrenderer(hdl);
break;
+ case SAMformatter:
+ SAMrenderer(hdl);
+ break;
default:
RAWrenderer(hdl);
break;
@@ -1826,7 +1910,7 @@ showCommands(void)
mnstr_printf(toConsole, "\\a - disable auto commit\n");
}
mnstr_printf(toConsole, "\\e - echo the query in sql formatting
mode\n");
- mnstr_printf(toConsole, "\\f - format using a built-in renderer
{csv,tab,raw,sql,xml}\n");
+ mnstr_printf(toConsole, "\\f - format using a built-in renderer
{csv,tab,raw,sql,xml,sam}\n");
mnstr_printf(toConsole, "\\w# - set maximal page width
(-1=unlimited, 0=terminal width, >0=limit to num)\n");
mnstr_printf(toConsole, "\\r# - set maximum rows per page
(-1=raw)\n");
mnstr_printf(toConsole, "\\L file - save client/server interaction\n");
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2362,6 +2362,50 @@ AC_SUBST(MSEED_CFLAGS, $MSEED_CFLAGS)
AC_SUBST(MSEED_LIBS, $MSEED_LIBS)
AM_CONDITIONAL(HAVE_MSEED, test x"$have_mseed" != xno)
+# samtools, only used by sql
+org_have_samtools="auto"
+have_samtools=$org_have_samtools
+AC_ARG_WITH(samtools,
+ AS_HELP_STRING([--with-samtools=DIR],
+ [samtools (providing bam library) are installed in DIR]),
+ [have_samtools="$withval"])
+if test "x$have_samtools" != xno; then
+ case "$have_samtools" in
+ auto|yes)
+ ;;
+ *)
+ SAMTOOLS_CFLAGS="-I$have_samtools/include"
+ SAMTOOLS_LIBS="-L$have_samtools/lib -lbam"
+ ;;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list