Changeset: aed165a30e88 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aed165a30e88
Added Files:
        clients/odbc/samples/arraytest.c
        monetdb5/extras/jaql/30_jaql.mal
        monetdb5/extras/jaql/Makefile.ag
        monetdb5/extras/jaql/Tests/All
        monetdb5/extras/jaql/Tests/expand00.mal
        monetdb5/extras/jaql/Tests/expand00.stable.err
        monetdb5/extras/jaql/Tests/expand00.stable.out
        monetdb5/extras/jaql/Tests/expand01.mal
        monetdb5/extras/jaql/Tests/expand01.stable.err
        monetdb5/extras/jaql/Tests/expand01.stable.out
        monetdb5/extras/jaql/Tests/filter00.mal
        monetdb5/extras/jaql/Tests/filter00.stable.err
        monetdb5/extras/jaql/Tests/filter00.stable.out
        monetdb5/extras/jaql/Tests/filter01.mal
        monetdb5/extras/jaql/Tests/filter01.stable.err
        monetdb5/extras/jaql/Tests/filter01.stable.out
        monetdb5/extras/jaql/Tests/func00.mal
        monetdb5/extras/jaql/Tests/func00.stable.err
        monetdb5/extras/jaql/Tests/func00.stable.out
        monetdb5/extras/jaql/Tests/func01.mal
        monetdb5/extras/jaql/Tests/func01.stable.err
        monetdb5/extras/jaql/Tests/func01.stable.out
        monetdb5/extras/jaql/Tests/group00.mal
        monetdb5/extras/jaql/Tests/group00.stable.err
        monetdb5/extras/jaql/Tests/group00.stable.out
        monetdb5/extras/jaql/Tests/group01.mal
        monetdb5/extras/jaql/Tests/group01.stable.err
        monetdb5/extras/jaql/Tests/group01.stable.out
        monetdb5/extras/jaql/Tests/join00.mal
        monetdb5/extras/jaql/Tests/join00.stable.err
        monetdb5/extras/jaql/Tests/join00.stable.out
        monetdb5/extras/jaql/Tests/join01.mal
        monetdb5/extras/jaql/Tests/join01.stable.err
        monetdb5/extras/jaql/Tests/join01.stable.out
        monetdb5/extras/jaql/Tests/join02.mal
        monetdb5/extras/jaql/Tests/join02.stable.err
        monetdb5/extras/jaql/Tests/join02.stable.out
        monetdb5/extras/jaql/Tests/json00.mal
        monetdb5/extras/jaql/Tests/json00.stable.err
        monetdb5/extras/jaql/Tests/json00.stable.out
        monetdb5/extras/jaql/Tests/json01.mal
        monetdb5/extras/jaql/Tests/json01.stable.err
        monetdb5/extras/jaql/Tests/json01.stable.out
        monetdb5/extras/jaql/Tests/json02.mal
        monetdb5/extras/jaql/Tests/json02.stable.err
        monetdb5/extras/jaql/Tests/json02.stable.out
        monetdb5/extras/jaql/Tests/json03.mal
        monetdb5/extras/jaql/Tests/json03.stable.err
        monetdb5/extras/jaql/Tests/json03.stable.out
        monetdb5/extras/jaql/Tests/json04.mal
        monetdb5/extras/jaql/Tests/json04.stable.err
        monetdb5/extras/jaql/Tests/json04.stable.out
        monetdb5/extras/jaql/Tests/json05.mal
        monetdb5/extras/jaql/Tests/json05.stable.err
        monetdb5/extras/jaql/Tests/json05.stable.out
        monetdb5/extras/jaql/Tests/plan00.mal
        monetdb5/extras/jaql/Tests/plan00.stable.err
        monetdb5/extras/jaql/Tests/plan00.stable.out
        monetdb5/extras/jaql/Tests/plan01.mal
        monetdb5/extras/jaql/Tests/plan01.stable.err
        monetdb5/extras/jaql/Tests/plan01.stable.out
        monetdb5/extras/jaql/Tests/plan02.mal
        monetdb5/extras/jaql/Tests/plan02.stable.err
        monetdb5/extras/jaql/Tests/plan02.stable.out
        monetdb5/extras/jaql/Tests/sort00.mal
        monetdb5/extras/jaql/Tests/sort00.stable.err
        monetdb5/extras/jaql/Tests/sort00.stable.out
        monetdb5/extras/jaql/Tests/sort01.mal
        monetdb5/extras/jaql/Tests/sort01.stable.err
        monetdb5/extras/jaql/Tests/sort01.stable.out
        monetdb5/extras/jaql/Tests/top00.mal
        monetdb5/extras/jaql/Tests/top00.stable.err
        monetdb5/extras/jaql/Tests/top00.stable.out
        monetdb5/extras/jaql/Tests/top01.mal
        monetdb5/extras/jaql/Tests/top01.stable.err
        monetdb5/extras/jaql/Tests/top01.stable.out
        monetdb5/extras/jaql/Tests/transform00.mal
        monetdb5/extras/jaql/Tests/transform00.stable.err
        monetdb5/extras/jaql/Tests/transform00.stable.out
        monetdb5/extras/jaql/Tests/transform01.mal
        monetdb5/extras/jaql/Tests/transform01.stable.err
        monetdb5/extras/jaql/Tests/transform01.stable.out
        monetdb5/extras/jaql/Tests/transform02.mal
        monetdb5/extras/jaql/Tests/transform02.stable.err
        monetdb5/extras/jaql/Tests/transform02.stable.out
        monetdb5/extras/jaql/Tests/variable00.mal
        monetdb5/extras/jaql/Tests/variable00.stable.err
        monetdb5/extras/jaql/Tests/variable00.stable.out
        monetdb5/extras/jaql/jaql.c
        monetdb5/extras/jaql/jaql.h
        monetdb5/extras/jaql/jaql.mal
        monetdb5/extras/jaql/jaqlfunc.mal
        monetdb5/extras/jaql/jaqlgencode.c
        monetdb5/extras/jaql/jaqlgencode.h
        monetdb5/extras/jaql/jaqlscenario.c
        monetdb5/extras/jaql/jaqlscenario.h
        monetdb5/extras/jaql/jaqltests/Tests/All
        monetdb5/extras/jaql/jaqltests/Tests/expand.jaql
        monetdb5/extras/jaql/jaqltests/Tests/expand.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/expand.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/filter.jaql
        monetdb5/extras/jaql/jaqltests/Tests/filter.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/filter.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/group.jaql
        monetdb5/extras/jaql/jaqltests/Tests/group.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/group.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/join.jaql
        monetdb5/extras/jaql/jaqltests/Tests/join.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/join.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/sort.jaql
        monetdb5/extras/jaql/jaqltests/Tests/sort.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/sort.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/top.jaql
        monetdb5/extras/jaql/jaqltests/Tests/top.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/top.stable.out
        monetdb5/extras/jaql/jaqltests/Tests/transform.jaql
        monetdb5/extras/jaql/jaqltests/Tests/transform.stable.err
        monetdb5/extras/jaql/jaqltests/Tests/transform.stable.out
        monetdb5/extras/jaql/json.c
        monetdb5/extras/jaql/json.h
        monetdb5/extras/jaql/json.mal
        monetdb5/extras/jaql/parser/Makefile.ag
        monetdb5/extras/jaql/parser/force-jaql-yy-h-gen.c
        monetdb5/extras/jaql/parser/jaql.l
        monetdb5/extras/jaql/parser/jaql.y
Removed Files:
        monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid32
Modified Files:
        NT/rules.msc
        buildtools/Mx/Sys.c
        buildtools/autogen/autogen/codegen.py
        buildtools/conf/rules.mk
        clients/mapiclient/Makefile.ag
        clients/mapiclient/mclient.c
        clients/mapiclient/stethoscope.c
        clients/mapilib/mapi.c
        clients/mapilib/mapi.h
        clients/odbc/driver/ODBCConvert.c
        clients/odbc/driver/ODBCDbc.c
        clients/odbc/driver/ODBCDbc.h
        clients/odbc/driver/ODBCEnv.c
        clients/odbc/driver/ODBCEnv.h
        clients/odbc/driver/ODBCError.c
        clients/odbc/driver/ODBCError.h
        clients/odbc/driver/ODBCGlobal.h
        clients/odbc/driver/ODBCStmt.c
        clients/odbc/driver/ODBCStmt.h
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/ODBCUtil.h
        clients/odbc/driver/SQLAllocConnect.c
        clients/odbc/driver/SQLAllocEnv.c
        clients/odbc/driver/SQLAllocHandle.c
        clients/odbc/driver/SQLAllocStmt.c
        clients/odbc/driver/SQLBindCol.c
        clients/odbc/driver/SQLBindParameter.c
        clients/odbc/driver/SQLBrowseConnect.c
        clients/odbc/driver/SQLBulkOperations.c
        clients/odbc/driver/SQLCancel.c
        clients/odbc/driver/SQLCloseCursor.c
        clients/odbc/driver/SQLColAttribute.c
        clients/odbc/driver/SQLColAttributes.c
        clients/odbc/driver/SQLColumnPrivileges.c
        clients/odbc/driver/SQLConnect.c
        clients/odbc/driver/SQLCopyDesc.c
        clients/odbc/driver/SQLDataSources.c
        clients/odbc/driver/SQLDescribeCol.c
        clients/odbc/driver/SQLDescribeParam.c
        clients/odbc/driver/SQLDisconnect.c
        clients/odbc/driver/SQLDriverConnect.c
        clients/odbc/driver/SQLEndTran.c
        clients/odbc/driver/SQLError.c
        clients/odbc/driver/SQLExecDirect.c
        clients/odbc/driver/SQLExecute.c
        clients/odbc/driver/SQLExtendedFetch.c
        clients/odbc/driver/SQLFetch.c
        clients/odbc/driver/SQLFetchScroll.c
        clients/odbc/driver/SQLForeignKeys.c
        clients/odbc/driver/SQLFreeConnect.c
        clients/odbc/driver/SQLFreeEnv.c
        clients/odbc/driver/SQLFreeHandle.c
        clients/odbc/driver/SQLFreeStmt.c
        clients/odbc/driver/SQLGetConnectAttr.c
        clients/odbc/driver/SQLGetConnectOption.c
        clients/odbc/driver/SQLGetCursorName.c
        clients/odbc/driver/SQLGetData.c
        clients/odbc/driver/SQLGetDescField.c
        clients/odbc/driver/SQLGetDescRec.c
        clients/odbc/driver/SQLGetDiagField.c
        clients/odbc/driver/SQLGetDiagRec.c
        clients/odbc/driver/SQLGetEnvAttr.c
        clients/odbc/driver/SQLGetFunctions.c
        clients/odbc/driver/SQLGetInfo.c
        clients/odbc/driver/SQLGetStmtAttr.c
        clients/odbc/driver/SQLGetStmtOption.c
        clients/odbc/driver/SQLGetTypeInfo.c
        clients/odbc/driver/SQLMoreResults.c
        clients/odbc/driver/SQLNativeSql.c
        clients/odbc/driver/SQLNumParams.c
        clients/odbc/driver/SQLNumResultCols.c
        clients/odbc/driver/SQLParamData.c
        clients/odbc/driver/SQLParamOptions.c
        clients/odbc/driver/SQLPrepare.c
        clients/odbc/driver/SQLPrimaryKeys.c
        clients/odbc/driver/SQLProcedureColumns.c
        clients/odbc/driver/SQLProcedures.c
        clients/odbc/driver/SQLPutData.c
        clients/odbc/driver/SQLRowCount.c
        clients/odbc/driver/SQLSetConnectAttr.c
        clients/odbc/driver/SQLSetConnectOption.c
        clients/odbc/driver/SQLSetCursorName.c
        clients/odbc/driver/SQLSetDescField.c
        clients/odbc/driver/SQLSetDescRec.c
        clients/odbc/driver/SQLSetEnvAttr.c
        clients/odbc/driver/SQLSetParam.c
        clients/odbc/driver/SQLSetPos.c
        clients/odbc/driver/SQLSetScrollOptions.c
        clients/odbc/driver/SQLSetStmtAttr.c
        clients/odbc/driver/SQLSetStmtOption.c
        clients/odbc/driver/SQLSpecialColumns.c
        clients/odbc/driver/SQLStatistics.c
        clients/odbc/driver/SQLTablePrivileges.c
        clients/odbc/driver/SQLTables.c
        clients/odbc/driver/SQLTransact.c
        clients/odbc/samples/Makefile.ag
        configure.ag
        gdk/gdk_atoms.mx
        gdk/gdk_utils.mx
        monetdb5/extras/Makefile.ag
        monetdb5/mal/mal_interpreter.mx
        monetdb5/mal/mal_resolve.c
        monetdb5/modules/kernel/algebra.mx
        monetdb5/modules/mal/Tests/inspect05.stable.out
        monetdb5/modules/mal/mat.mx
        monetdb5/optimizer/Tests/All
        monetdb5/optimizer/Tests/mat00.stable.out
        monetdb5/optimizer/Tests/mat01.mal
        monetdb5/optimizer/Tests/mat01.stable.out
        monetdb5/optimizer/opt_centipede.mx
        monetdb5/optimizer/opt_groups.mx
        monetdb5/optimizer/opt_pipes.c
        monetdb5/scheduler/srvpool.c
        monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows
        monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64
        sql/backends/monet5/UDF/udf.c
        sql/backends/monet5/UDF/udf.h
        sql/backends/monet5/datacell/basket.c
        sql/backends/monet5/datacell/datacell.c
        sql/backends/monet5/sql.mx
        sql/backends/monet5/sql_emptyset.c
        sql/backends/monet5/vaults/fits.c
        sql/test/bugs/Tests/crash_order_by.stable.out
        testing/Mfilter.py.in
        testing/Mtest.py.in
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/merovingian.c
Branch: DVframework
Log Message:

merge with default.


diffs (truncated from 23330 to 300 lines):

diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -385,6 +385,11 @@ create_winconfig_conds_new_py:
 !ELSE
        $(ECHO) HAVE_SQL_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
 !ENDIF
+!IFDEF HAVE_JAQL
+       $(ECHO) HAVE_JAQL_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ELSE
+       $(ECHO) HAVE_JAQL_FALSE='' >> "$(TOPDIR)\winconfig_conds_new.py"
+!ENDIF
 !IFDEF HAVE_TESTING
        $(ECHO) HAVE_TESTING_FALSE='#' >> "$(TOPDIR)\winconfig_conds_new.py"
 !ELSE
diff --git a/buildtools/Mx/Sys.c b/buildtools/Mx/Sys.c
--- a/buildtools/Mx/Sys.c
+++ b/buildtools/Mx/Sys.c
@@ -30,7 +30,6 @@
 int mx_out = 1;
 extern int somethingPrinted;   /* used for preventing to empty display lines */
 
-/* VARARGS */
 void
 ofile_printf(const char *format, ...)
 {
diff --git a/buildtools/autogen/autogen/codegen.py 
b/buildtools/autogen/autogen/codegen.py
--- a/buildtools/autogen/autogen/codegen.py
+++ b/buildtools/autogen/autogen/codegen.py
@@ -77,7 +77,7 @@ end_code_extract = { 'mx': e_mx, 'mx.in'
 # direct rules
 code_gen = {'y':        [ '.tab.c', '.tab.h' ],
             'tab.c':    [ '.tab.o' ],
-            'l':        [ '.yy.c' ],
+            'l':        [ '.yy.c', '.yy.h' ],
             'yy.c':     [ '.yy.o' ],
             'mt':       [ '.symbols.h', '.c' ],
             'brg':      [ '.c' ],
diff --git a/buildtools/conf/rules.mk b/buildtools/conf/rules.mk
--- a/buildtools/conf/rules.mk
+++ b/buildtools/conf/rules.mk
@@ -51,6 +51,14 @@ MX = $(top_builddir)/buildtools/Mx/Mx
        echo '#include <'"$(CONFIG_H)"'>' > $*.yy.c
        grep -v '^#include.*[<"]'"$(CONFIG_H)"'[">]' $*.yy.c.tmp >> $*.yy.c
        $(RM) $*.yy.c.tmp
+       [ -f $(LEX_OUTPUT_ROOT).h ] && $(RM) $(LEX_OUTPUT_ROOT).h
+       $(RM) waiting
+
+%.yy.h: %.l
+       touch waiting.$$$$ && until ln waiting.$$$$ waiting 2>/dev/null; do 
sleep 1; done && rm waiting.$$$$
+       $(LEX) $(LFLAGS) $(AM_LFLAGS) $< || { $(RM) waiting ; exit 1 ; }
+       if [ -f $(LEX_OUTPUT_ROOT).h ]; then $(MV) $(LEX_OUTPUT_ROOT).h $*.yy.h 
; fi
+       [ -f $(LEX_OUTPUT_ROOT).c ] && $(RM) $(LEX_OUTPUT_ROOT).c
        $(RM) waiting
 
 %.def: %.syms
diff --git a/clients/mapiclient/Makefile.ag b/clients/mapiclient/Makefile.ag
--- a/clients/mapiclient/Makefile.ag
+++ b/clients/mapiclient/Makefile.ag
@@ -42,7 +42,7 @@ bin_stethoscope = {
        SOURCES = stethoscope.c
        LIBS = libmcutil ../mapilib/libmapi \
                ../../common/stream/libstream \
-               $(curl_LIBS) $(MALLOC_LIBS) $(PTHREAD_LIBS)
+               $(curl_LIBS) $(MALLOC_LIBS) $(PTHREAD_LIBS) $(SOCKET_LIBS)
 }
 
 bin_mnc = {
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -83,7 +83,8 @@
 
 enum modes {
        MAL,
-       SQL
+       SQL,
+       JAQL
 };
 
 static enum modes mode = SQL;
@@ -112,7 +113,8 @@ enum formatters {
        TABLEformatter,
        CSVformatter,
        XMLformatter,
-       TESTformatter
+       TESTformatter,
+       CLEANformatter
 };
 static enum formatters formatter = NOformatter;
 char *output = NULL;           /* output format as string */
@@ -654,7 +656,9 @@ CSVrenderer(MapiHdl hdl)
                        s = mapi_fetch_field(hdl, i);
                        if (s == NULL)
                                s = nullstring == default_nullstring ? "" : 
nullstring;
-                       if (strchr(s, *sep) != NULL || strchr(s, '\n') != NULL 
|| strchr(s, '"') != NULL) {
+                       if (strchr(s, *sep) != NULL ||
+                           strchr(s, '\n') != NULL ||
+                           strchr(s, '"') != NULL) {
                                mnstr_printf(toConsole, "%s\"",
                                              i == 0 ? "" : sep);
                                while (*s) {
@@ -675,8 +679,6 @@ CSVrenderer(MapiHdl hdl)
                                                mnstr_write(toConsole, "\"\"", 
1, 2);
                                                break;
                                        default:
-                                               if (*s == *sep)
-                                                       mnstr_write(toConsole, 
"\\", 1, 1);
                                                mnstr_write(toConsole, s, 1, 1);
                                                break;
                                        }
@@ -969,6 +971,21 @@ TESTrenderer(MapiHdl hdl)
 }
 
 static void
+CLEANrenderer(MapiHdl hdl)
+{
+       char *reply;
+
+       SQLqueryEcho(hdl);
+       while (!mnstr_errnr(toConsole) && (reply = fetch_line(hdl)) != 0) {
+               if (*reply == '%')
+                       continue;
+               if (*reply == '=')
+                       reply++;
+               mnstr_printf(toConsole, "%s\n", reply);
+       }
+}
+
+static void
 RAWrenderer(MapiHdl hdl)
 {
        char *line;
@@ -1304,6 +1321,8 @@ setFormatter(char *s)
 #endif
        if (strcmp(s, "sql") == 0) {
                formatter = TABLEformatter;
+       } else if (strcmp(s, "jaql") == 0) {
+               formatter = CLEANformatter;
        } else if (strcmp(s, "csv") == 0) {
                formatter = CSVformatter;
                separator = strdup(",");
@@ -1414,7 +1433,7 @@ format_result(Mapi mid, MapiHdl hdl, cha
                /* handle errors first */
                if ((reply = mapi_result_error(hdl)) != NULL) {
                        mnstr_flush(toConsole);
-                       if (formatter == TABLEformatter) {
+                       if (formatter == TABLEformatter || formatter == 
CLEANformatter) {
                                fprintf(stderr, "%s", reply);
                        } else {
                                mapi_explain_result(hdl, stderr);
@@ -1527,6 +1546,9 @@ format_result(Mapi mid, MapiHdl hdl, cha
                        case TESTformatter:
                                TESTrenderer(hdl);
                                break;
+                       case CLEANformatter:
+                               CLEANrenderer(hdl);
+                               break;
                        case TABLEformatter:
                                switch (specials) {
                                case DEBUGmodifier:
@@ -2411,6 +2433,9 @@ doFile(Mapi mid, const char *file, int u
                                                case TESTformatter:
                                                        mnstr_printf(toConsole, 
"test\n");
                                                        break;
+                                               case CLEANformatter:
+                                                       mnstr_printf(toConsole, 
"jaql\n");
+                                                       break;
                                                case XMLformatter:
                                                        mnstr_printf(toConsole, 
"xml\n");
                                                        break;
@@ -2699,6 +2724,9 @@ main(int argc, char **argv)
                                } else if (strcmp(language, "mal") == 0) {
                                        mode = MAL;
                                        q = NULL;
+                               } else if (strcmp(language, "jaql") == 0) {
+                                       mode = JAQL;
+                                       q = NULL;
                                } else {
                                        /* make sure we don't set garbage */
                                        mnstr_printf(stderr_stream,
@@ -2775,14 +2803,22 @@ main(int argc, char **argv)
                case 'l':
                        /* accept unambiguous prefix of language */
                        if (strcmp(optarg, "sql") == 0 ||
-                           strcmp(optarg, "sq") == 0 || strcmp(optarg, "s") == 
0 ||
-                               strcmp(optarg, "sql") == 0) {
+                           strcmp(optarg, "sq") == 0 ||
+                               strcmp(optarg, "s") == 0)
+                       {
                                language = optarg;
                                mode = SQL;
                        } else if (strcmp(optarg, "mal") == 0 ||
                                   strcmp(optarg, "ma") == 0) {
                                language = "mal";
                                mode = MAL;
+                       } else if (strcmp(optarg, "jaql") == 0 ||
+                                       strcmp(optarg, "jaq") == 0 ||
+                                       strcmp(optarg, "ja") == 0 ||
+                                       strcmp(optarg, "j") == 0)
+                       {
+                               language = "jaql";
+                               mode = JAQL;
                        } else if (strcmp(optarg, "msql") == 0) {
                                language = "msql";
                                mode = MAL;
@@ -2968,6 +3004,8 @@ main(int argc, char **argv)
        } else {
                if (mode == SQL) {
                        setFormatter("sql");
+               } else if (mode == JAQL) {
+                       setFormatter("jaql");
                } else {
                        setFormatter("raw");
                }
@@ -2977,10 +3015,13 @@ main(int argc, char **argv)
        if (!has_fileargs && command == NULL && isatty(fileno(stdin))) {
                char *lang;
 
-               if (mode == SQL)
+               if (mode == SQL) {
                        lang = "/SQL";
-               else
+               } else if (mode == JAQL) {
+                       lang = "/JAQL";
+               } else {
                        lang = "";
+               }
 
                mnstr_printf(toConsole,
                              "Welcome to mclient, the MonetDB%s "
diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c
--- a/clients/mapiclient/stethoscope.c
+++ b/clients/mapiclient/stethoscope.c
@@ -17,11 +17,6 @@
  * All Rights Reserved.
  */
 
-/**
- * stethoscope
- * author Martin Kersten
- */
-
 #include "monetdb_config.h"
 #include "monet_options.h"
 #include <mapi.h>
@@ -107,6 +102,7 @@ typedef struct _wthread {
 } wthread;
 
 static wthread *thds = NULL;
+static char hostname[128];
 
 static void
 usage(void)
@@ -243,10 +239,11 @@ doProfile(void *d)
                goto stop_cleanup;
        }
 
-       printf("-- %sopened UDP profile stream for %s:%d\n", id, host, portnr);
+       printf("-- %sopened UDP profile stream %s:%d for %s\n",
+                       id, hostname, portnr, host);
 
        snprintf(buf, BUFSIZ, "port := profiler.openStream(\"%s\", %d);",
-                       host, portnr);
+                       hostname, portnr);
        doQ(buf);
 
        /* Set Filters */
@@ -452,6 +449,9 @@ main(int argc, char **argv)
 
        close(0); /* get rid of stdin */
 
+       /* our hostname, how remote servers have to contact us */
+       gethostname(hostname, sizeof(hostname));
+
        /* try and find multiple options, we assume that we always need a
         * local merovingian for that, in the future we probably need to fix
         * this in a decent manner */
@@ -507,7 +507,6 @@ main(int argc, char **argv)
                        if (*alts == NULL)
                                break;
                        walk = walk->next = malloc(sizeof(wthread));
-                       printf("Alternative route created '%s'\n",walk->uri);
                }
                walk->next = NULL;
                free(oalts);
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -1373,6 +1373,9 @@ mapi_ping(Mapi mid)
        case LANG_MAL:
                hdl = mapi_query(mid, "io.print(1);");
                break;
+       case LANG_JAQL:
+               hdl = mapi_query(mid, "[1];");
+               break;
        }
        if (hdl)
                mapi_close_handle(hdl);
@@ -1912,6 +1915,8 @@ mapi_mapiuri(const char *url, const char
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to