Changeset: cfa6946025e2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cfa6946025e2
Added Files:
        clients/ruby/Tests/All
        clients/ruby/Tests/rubytest.rb
        clients/ruby/Tests/rubytest.stable.err
        clients/ruby/Tests/rubytest.stable.out
        clients/ruby/doc/readme.txt
        clients/ruby/lib/example.rb
        clients/ruby/ruby-monetdb-sql-0.2.gemspec
        sql/backends/monet5/Tests/rapi18.stable.err
        sql/backends/monet5/Tests/rapi18.stable.out
        
sql/test/BugTracker-2015/Tests/msqldump_generates_incorrect_syntax_ON_UPDATE_null.Bug-3839.sql
        
sql/test/BugTracker-2015/Tests/msqldump_generates_incorrect_syntax_ON_UPDATE_null.Bug-3839.stable.err
        
sql/test/BugTracker-2015/Tests/msqldump_generates_incorrect_syntax_ON_UPDATE_null.Bug-3839.stable.out
        
sql/test/BugTracker-2015/Tests/update_with_without_parenthesis.Bug-3838.sql
        
sql/test/BugTracker-2015/Tests/update_with_without_parenthesis.Bug-3838.stable.err
        
sql/test/BugTracker-2015/Tests/update_with_without_parenthesis.Bug-3838.stable.out
Removed Files:
        clients/ruby/README
        clients/ruby/adapter/Makefile.ag
        
clients/ruby/adapter/active_record/connection_adapters/monetdb_adapter.rb
        clients/ruby/adapter/activerecord-monetdb-adapter-0.1.gemspec
        
clients/ruby/adapter/lib/active_record/connection_adapters/monetdb_adapter.rb
        clients/ruby/doc/rails.txt
        clients/ruby/examples/activerecord.rb
        clients/ruby/examples/standalone.rb
        clients/ruby/lib/demo.rb
        clients/ruby/lib/test/test_capabilities.rb
        clients/ruby/ruby-monetdb-sql-0.1.gemspec
        monetdb5/mal/Tests/tst062.stable.err
        monetdb5/mal/Tests/tst062.stable.out
Modified Files:
        .hgignore
        NT/monetdb_config.h.in
        clients/R/Tests/install.R
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        clients/mapiclient/mclient.c
        clients/mapilib/mapi.c
        clients/ruby/Makefile.ag
        clients/ruby/lib/MonetDB.rb
        clients/ruby/lib/MonetDBConnection.rb
        clients/ruby/lib/MonetDBData.rb
        common/stream/stream.c
        common/stream/stream.h
        gdk/gdk_join.c
        gdk/gdk_logger.c
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        monetdb5/mal/mal.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/optimizer/Tests/All
        monetdb5/optimizer/Tests/dataflow.mal
        monetdb5/optimizer/Tests/dataflow.stable.out
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_support.h
        sql/backends/monet5/Tests/All
        sql/backends/monet5/Tests/rapi18.sql
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/benchmarks/ssbm/Tests/01-explain.stable.out
        sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/02-explain.stable.out
        sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/03-explain.stable.out
        sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/04-explain.stable.out
        sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/05-explain.stable.out
        sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/06-explain.stable.out
        sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/07-explain.stable.out
        sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/08-explain.stable.out
        sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/09-explain.stable.out
        sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/10-explain.stable.out
        sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/01-explain.stable.out
        sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/01-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/02-explain.stable.out
        sql/benchmarks/tpch/Tests/03-explain.stable.out
        sql/benchmarks/tpch/Tests/03-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/05-explain.stable.out
        sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/05-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/06-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/08-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/09-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/10-explain.stable.out
        sql/benchmarks/tpch/Tests/10-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/12-explain.stable.out
        sql/benchmarks/tpch/Tests/12-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.sql
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.stable.out
        sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.SQL.py
        sql/test/BugTracker-2015/Tests/useless_casts.Bug-3756.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/pg_regress/Tests/horology.sql
        sql/test/pg_regress/Tests/horology.stable.out
        sql/test/remote/Tests/partition_elim.stable.out
        testing/Mtest.py.in
Branch: embedded
Log Message:

merge with default


diffs (truncated from 10370 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -100,6 +100,9 @@ NT/unistd.h
 MacOSX/build
 MacOSX/usr
 
+# Build directory
+BUILD
+
 syntax: regexp
 ^java/build$
 syntax: regexp
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
@@ -688,6 +688,9 @@
 /* Define if you have valgrind installed and want to use it */
 /* #undef HAVE_VALGRIND */
 
+/* Define to 1 if you have the `_wfopen' function. */
+#define HAVE__WFOPEN 1
+
 /* Define to 1 if you have the <winsock2.h> header file. */
 #define HAVE_WINSOCK2_H 1
 
diff --git a/clients/R/Tests/install.R b/clients/R/Tests/install.R
--- a/clients/R/Tests/install.R
+++ b/clients/R/Tests/install.R
@@ -12,7 +12,7 @@ dir.create(installdir)
 file.copy(from=file.path(srcdir, "..", "MonetDB.R"), to=builddir, recursive=T)
 dd <- capture.output(suppressMessages( {
        sink(file=file(tempfile(), open = "wt"), type = "message") 
-       install.packages(file.path(builddir, "MonetDB.R"), repos=NULL, 
lib=installdir, quiet=T)
+       install.packages(file.path(builddir, "MonetDB.R"), repos=NULL, 
lib=installdir, quiet=T, type="source")
        sink(type = "message") 
 }))
 library(MonetDB.R,quietly=T,lib.loc=installdir)
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1981,6 +1981,7 @@ str batcalcRef;
 str batmalRef;
 str batmmathRef;
 str batmtimeRef;
+str batrapiRef;
 str batsqlRef;
 str batstrRef;
 str batxmlRef;
@@ -2159,7 +2160,6 @@ int getTypeIndex(str nme, int len, int d
 str getTypeName(malType tpe);
 lng getUserTime(void);
 str getVarName(MalBlkPtr mb, int i);
-wrd getVarRows(MalBlkPtr mb, int v);
 lng getVolume(MalStkPtr stk, InstrPtr pci, int rd);
 int getWrdConstant(MalBlkPtr mb, wrd val);
 MalBlkPtr gotoMalBlkMarker(MalBlkPtr mb, str marker);
@@ -2477,7 +2477,6 @@ str resultSetRef;
 str reuseRef;
 malType reverseBatType(malType v);
 str row_numberRef;
-int rowsProp;
 str rpcRef;
 str rsColumnRef;
 int rule_fromstr(const char *buf, int *len, rule **d);
@@ -2539,7 +2538,6 @@ str soundex_impl(str *res, str *Name);
 str sqlRef;
 int sqlblob_fromstr(char *instr, int *l, blob **val);
 int sqlblob_tostr(str *tostr, int *l, const blob *p);
-int sqlfunctionProp;
 str srvpoolRef;
 str startProfiler(oid user, int mode, int beat);
 str startRef;
@@ -2558,6 +2556,7 @@ str subbandjoinRef;
 str subcountRef;
 str subdeltaRef;
 str subdiffRef;
+str subeval_aggrRef;
 str subgroupRef;
 str subgroupdoneRef;
 str subinterRef;
@@ -2624,6 +2623,7 @@ char *buffer_get_buf(buffer *b);
 void buffer_init(buffer *b, char *buf, size_t size);
 stream *buffer_rastream(buffer *b, const char *name);
 stream *buffer_wastream(buffer *b, const char *name);
+stream *callback_stream(void *private, ssize_t( *read)(void *private, void 
*buf, size_t elmsize, size_t cnt), void( *close)(void *private), void( 
*destroy)(void *private), const char *name);
 void close_stream(stream *s);
 stream *file_rastream(FILE *fp, const char *name);
 stream *file_rstream(FILE *fp, const char *name);
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -372,13 +372,13 @@ dump_foreign_keys(Mapi mid, const char *
                        int on_update;
                        int on_delete;
 
-                       if (action > 0 &&
-                           (on_delete = action & 255) < NR_ACTIONS &&
+                       if ((on_delete = action & 255) != 0 &&
+                           on_delete < NR_ACTIONS &&
                            on_delete != 2         /* RESTRICT -- default */)
                                mnstr_printf(toConsole, " ON DELETE %s",
                                             actions[on_delete]);
-                       if (action > 0 &&
-                           (on_update = (action >> 8) & 255) < NR_ACTIONS &&
+                       if ((on_update = (action >> 8) & 255) != 0 &&
+                           on_update < NR_ACTIONS &&
                            on_update != 2         /* RESTRICT -- default */)
                                mnstr_printf(toConsole, " ON UPDATE %s",
                                             actions[on_update]);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -24,7 +24,6 @@
 #include "mapi.h"
 #include <unistd.h>
 #include <stdlib.h>
-#include <ctype.h>
 #include <sys/stat.h>
 #include <errno.h>
 #ifdef HAVE_STRING_H
@@ -74,10 +73,9 @@ enum modes {
 
 static enum modes mode = SQL;
 static stream *toConsole;
-static stream *toConsole_raw;  /* toConsole without iconv conversion */
 static stream *stdout_stream;
 static stream *stderr_stream;
-static FILE *fromConsole = NULL;
+static stream *fromConsole = NULL;
 static char *language = NULL;
 static char *logfile = NULL;
 static char promptbuf[16];
@@ -85,7 +83,6 @@ static int echoquery = 0;
 static int showtiming = 0;
 #ifdef HAVE_ICONV
 static char *encoding;
-static iconv_t cd_in;
 #endif
 static int errseen = 0;
 
@@ -188,9 +185,10 @@ static char *nullstring = default_nullst
 
 #if defined(_MSC_VER) && _MSC_VER >= 1400
 #define fileno _fileno
-#define isatty _isatty
 #endif
 
+#define my_isspace(c)  ((c) == '\f' || (c) == '\n' || (c) == ' ')
+
 static timertype
 gettime(void)
 {
@@ -498,7 +496,7 @@ SQLrow(int *len, int *numeric, char **re
                        if ((t = rest[i]) != NULL &&
                            utf8strlen(t, NULL) > (size_t) len[i]) {
                                /* eat leading whitespace */
-                               while (*t != 0 && isascii((int) *t) && 
isspace((int) *t))
+                               while (*t != 0 && my_isspace(*t))
                                        t++;
                                rest[i] = t;
                        }
@@ -544,10 +542,10 @@ SQLrow(int *len, int *numeric, char **re
 
                                        t = utf8skip(rest[i], len[i]);
                                        if (trim == 1) {
-                                               while (t > rest[i] && 
!(isascii((int) *t) && isspace((int) *t)))
+                                               while (t > rest[i] && 
!my_isspace(*t))
                                                        while ((*--t & 0xC0) == 
0x80)
                                                                ;
-                                               if (t == rest[i] && 
!(isascii((int) *t) && isspace((int) *t)))
+                                               if (t == rest[i] && 
!my_isspace(*t))
                                                        t = utf8skip(rest[i], 
len[i]);
                                        }
                                        mnstr_printf(toConsole, "%c",
@@ -570,8 +568,7 @@ SQLrow(int *len, int *numeric, char **re
 
                                        s = t;
                                        if (trim == 1)
-                                               while (isascii((int) *s) &&
-                                                      isspace((int) *s))
+                                               while (my_isspace(*s))
                                                        s++;
                                        if (trim == 2 && *s == '\n')
                                                s++;
@@ -579,8 +576,7 @@ SQLrow(int *len, int *numeric, char **re
                                                t = utf8skip(rest[i], len[i] - 
2);
                                                s = t;
                                                if (trim == 1)
-                                                       while (isascii((int) 
*s) &&
-                                                              isspace((int) 
*s))
+                                                       while (my_isspace(*s))
                                                                s++;
                                                if (trim == 2 && *s == '\n')
                                                        s++;
@@ -664,17 +660,17 @@ XMLprdata(const char *val)
                return;
        while (*val) {
                if (*val == '&')
-                       mnstr_printf(toConsole_raw, "&amp;");
+                       mnstr_printf(toConsole, "&amp;");
                else if (*val == '<')
-                       mnstr_printf(toConsole_raw, "&lt;");
+                       mnstr_printf(toConsole, "&lt;");
                else if (*val == '>')
-                       mnstr_printf(toConsole_raw, "&gt;");
+                       mnstr_printf(toConsole, "&gt;");
                else if (*val == '"')
-                       mnstr_printf(toConsole_raw, "&quot;");
+                       mnstr_printf(toConsole, "&quot;");
                else if (*val == '\'')
-                       mnstr_printf(toConsole_raw, "&apos;");
+                       mnstr_printf(toConsole, "&apos;");
                else if ((*val & 0xFF) < 0x20)  /* control character */
-                       mnstr_printf(toConsole_raw, "&#%d;", *val & 0xFF);
+                       mnstr_printf(toConsole, "&#%d;", *val & 0xFF);
                else if ((*val & 0x80) != 0 /* && encoding != NULL */ ) {
                        int n;
                        unsigned int m;
@@ -684,9 +680,9 @@ XMLprdata(const char *val)
                                c &= ~m;
                        while (--n >= 0)
                                c = (c << 6) | (*++val & 0x3F);
-                       mnstr_printf(toConsole_raw, "&#x%x;", c);
+                       mnstr_printf(toConsole, "&#x%x;", c);
                } else
-                       mnstr_write(toConsole_raw, val, 1, 1);
+                       mnstr_write(toConsole, val, 1, 1);
                val++;
        }
 }
@@ -694,9 +690,9 @@ XMLprdata(const char *val)
 static void
 XMLprattr(const char *name, const char *val)
 {
-       mnstr_printf(toConsole_raw, " %s=\"", name);
+       mnstr_printf(toConsole, " %s=\"", name);
        XMLprdata(val);
-       mnstr_write(toConsole_raw, "\"", 1, 1);
+       mnstr_write(toConsole, "\"", 1, 1);
 }
 
 static void
@@ -705,10 +701,10 @@ XMLrenderer(MapiHdl hdl)
        int i, fields;
        char *name;
 
-       /* we must use toConsole_raw since the XML file is encoded in UTF-8 */
+       /* we must use toConsole since the XML file is encoded in UTF-8 */
        mnstr_flush(toConsole);
-       mnstr_printf(toConsole_raw, "<?xml version='1.0' encoding='UTF-8'?>\n");
-       mnstr_printf(toConsole_raw,
+       mnstr_printf(toConsole, "<?xml version='1.0' encoding='UTF-8'?>\n");
+       mnstr_printf(toConsole,
                     "<!DOCTYPE table [\n"
                     " <!ELEMENT table (row)*>\n" /* a table consists of zero 
or more rows */
                     " <!ELEMENT row (column)+>\n"      /* a row consists of 
one or more columns */
@@ -716,34 +712,34 @@ XMLrenderer(MapiHdl hdl)
                     " <!ATTLIST table name CDATA #IMPLIED>\n"  /* a table may 
have a name */
                     " <!ATTLIST column name CDATA #IMPLIED\n"  /* a column may 
have a name */
                     "                  isnull (true|false) 'false'>]>\n");
-       mnstr_printf(toConsole_raw, "<table");
+       mnstr_printf(toConsole, "<table");
        name = mapi_get_table(hdl, 0);
        if (name != NULL && *name != 0)
                XMLprattr("name", name);
-       mnstr_printf(toConsole_raw, ">\n");
+       mnstr_printf(toConsole, ">\n");
        while (!mnstr_errnr(toConsole) && (fields = fetch_row(hdl)) != 0) {
-               mnstr_printf(toConsole_raw, "<row>");
+               mnstr_printf(toConsole, "<row>");
                for (i = 0; i < fields; i++) {
                        char *data = mapi_fetch_field(hdl, i);
 
-                       mnstr_printf(toConsole_raw, "<column");
+                       mnstr_printf(toConsole, "<column");
                        name = mapi_get_name(hdl, i);
                        if (name != NULL && *name != 0)
                                XMLprattr("name", name);
                        if (data == NULL) {
                                XMLprattr("isnull", "true");
-                               mnstr_write(toConsole_raw, "/", 1, 1);
+                               mnstr_write(toConsole, "/", 1, 1);
                        }
-                       mnstr_write(toConsole_raw, ">", 1, 1);
+                       mnstr_write(toConsole, ">", 1, 1);
                        if (data) {
                                XMLprdata(data);
-                               mnstr_printf(toConsole_raw, "</column>");
+                               mnstr_printf(toConsole, "</column>");
                        }
                }
-               mnstr_printf(toConsole_raw, "</row>\n");
+               mnstr_printf(toConsole, "</row>\n");
        }
-       mnstr_printf(toConsole_raw, "</table>\n");
-       mnstr_flush(toConsole_raw);
+       mnstr_printf(toConsole, "</table>\n");
+       mnstr_flush(toConsole);
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to