Changeset: 6211324313b7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6211324313b7
Added Files:
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
Modified Files:
        .hgtags
        MonetDB.spec
        NT/installer32/MonetDB-ODBC-Installer.vdproj
        NT/installer32/MonetDB5-Geom-Module.vdproj
        NT/installer32/MonetDB5-SQL-Installer.vdproj
        NT/installer64/MonetDB-ODBC-Installer.vdproj
        NT/installer64/MonetDB5-Geom-Module.vdproj
        NT/installer64/MonetDB5-SQL-Installer.vdproj
        NT/monetdb_config.h.in
        NT/rules.msc
        buildtools/ChangeLog-Archive
        buildtools/ChangeLog.Oct2014
        clients/mapiclient/eventparser.c
        clients/mapiclient/tachograph.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        clients/python2/setup.py
        clients/python3/setup.py
        configure.ag
        debian/changelog
        gdk/ChangeLog-Archive
        gdk/ChangeLog.Oct2014
        gdk/libbat.rc
        java/Makefile.ag
        java/build.properties
        java/pom.xml
        java/release.txt
        libversions
        monetdb5/tools/libmonetdb5.rc
        vertoo.data
Branch: geo
Log Message:

Merge with default branch.


diffs (truncated from 702 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -91,7 +91,7 @@ Vendor: MonetDB BV <i...@monetdb.org>
 Group: Applications/Databases
 License: MPL - http://www.monetdb.org/Legal/MonetDBLicense
 URL: http://www.monetdb.org/
-Source: 
http://dev.monetdb.org/downloads/sources/Oct2014-SP2/%{name}-%{version}.tar.bz2
+Source: 
http://dev.monetdb.org/downloads/sources/Oct2014-SP3/%{name}-%{version}.tar.bz2
 
 BuildRequires: bison
 BuildRequires: bzip2-devel
@@ -968,6 +968,73 @@ mv %{buildroot}%{_datadir}/doc/MonetDB-S
 %postun -p /sbin/ldconfig
 
 %changelog
+* Thu Apr 23 2015 Sjoerd Mullender <sjo...@acm.org> - 11.19.11-20150423
+- Rebuilt.
+- BZ#3466: UPDATE statements fails with "GDKerror: MT_mremap() failed"
+- BZ#3602: Surprising overload resolution of generate_series
+- BZ#3613: SQL data dictionary contains columns names which are also
+  special keywords. This causes unexpected/unneeded SQL query errors
+- BZ#3645: Network address operators such as << and <<= do not work
+- BZ#3647: missing BAT for a column leads to crash in gtr_update_delta
+- BZ#3648: memory corruption on unclean connection shutdown with local
+  temporary tables
+- BZ#3650: Naming of persistent BATs is fragile
+- BZ#3653: PREPARE crashes mserver if unbound variable is function
+  parameter
+- BZ#3655: SQL WHERE -1 in (-1) issue?
+- BZ#3656: error message after calling fitsload()
+- BZ#3660: Incorrect Results for Comparison Operators on inet Datatype
+- BZ#3661: Ship debug symbols for pre-built binaries
+- BZ#3662: UPDATE row with row value constructor crashes monetdb server
+- BZ#3663: Incorrect result ROW_NUMBER in subquery
+- BZ#3664: SQLstatementIntern missing parameter when using jsonstore
+- BZ#3665: inter-session starvation issue, particularly affects sys.queue
+- BZ#3666: casting text column to inet truncating text column and
+  resulting inet for first occurrence only
+- BZ#3667: insert of negative value for oid column aborts mserver5
+  process with assertion failure
+- BZ#3669: ALTER TABLE <tbl_nm> ADD CONSTRAINT <tbl_uc1> UNIQUE (col1,
+  col2, col3) causes Assertion failure and abort
+- BZ#3671: ODBC-Access on Windows 2012 does not work - E_FAIL
+- BZ#3672: libbat_la-gdk_utils.o: relocation R_X86_64_PC32 against
+  `MT_global_exit' can not be used when making a shared object
+- BZ#3676: merovingian hangs trying to exit
+- BZ#3677: Crash in BATgroup_internal (caused by 87379087770d?)
+- BZ#3678: Ruby driver installation ignores prefix
+- BZ#3680: Prepared statements fail on execution with message 'Symbol
+  type not found'
+- BZ#3684: Wrong query result set WHERE "IS NULL" or "NOT IN" clauses
+  uses in combination with ORDER, LIMIT and OFFSET
+- BZ#3687: 'bat.insert' undefined
+- BZ#3688: Crash at exit (overrun THRerrorcount?)
+- BZ#3689: No more connections accepted if a single client misbehaves
+- BZ#3690: find_fk: Assertion `t && i' failed.
+- BZ#3691: conversion of whitespaces string to double or float is accepted
+  without an error during insert
+- BZ#3693: algebra.join undefined (caused by non-existing variables in
+  the plan)
+- BZ#3696: Inconsistent behavior between dbl (SQL double) and flt (SQL
+  real) data types and across platforms
+- BZ#3697: mserver5[26946]: segfault at 0 ip 00007f3d0e1ab808 sp
+  00007f3cefbfcad0 error 4 in lib_sql.so[7f3d0e180000+16c000]
+- BZ#3699: segfault again! (during last week I found 3 segfault bugs
+  already)
+- BZ#3703: INSERT INTO a MERGE TABLE crashes mserver5
+- BZ#3704: Unknown identifier from subquery
+- BZ#3705: Assertion failure in rel_bin.c:2274: rel2bin_project: Assertion
+  `0' failed.
+- BZ#3706: Assertion failure in gdk_bat.c: BATassertHeadProps: Assertion
+  `!b->H->sorted || cmp <= 0' failed.
+- BZ#3709: "BATproject: does not match always" on abusive use of ALTER
+  TABLE SET READ ONLY
+
+* Tue Feb  3 2015 Sjoerd Mullender <sjo...@acm.org> - 11.19.11-20150423
+- buildtools: We now also create debug packages for Debian and Ubuntu.
+
+* Tue Jan 27 2015 Sjoerd Mullender <sjo...@acm.org> - 11.19.11-20150423
+- gdk: Replaced the rangejoin implementation with one that uses imprints if
+  it can.
+
 * Fri Jan 23 2015 Sjoerd Mullender <sjo...@acm.org> - 11.19.9-20150123
 - Rebuilt.
 - BZ#3467: Field aliases with '#' character excise field names in
diff --git a/buildtools/ChangeLog-Archive b/buildtools/ChangeLog-Archive
--- a/buildtools/ChangeLog-Archive
+++ b/buildtools/ChangeLog-Archive
@@ -1,6 +1,9 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Tue Feb  3 2015 Sjoerd Mullender <sjo...@acm.org> - 11.19.11-20150423
+- We now also create debug packages for Debian and Ubuntu.
+
 * Fri Nov  7 2014 Sjoerd Mullender <sjo...@acm.org> - 11.19.5-20141120
 - The libraries included in the Windows installers have been upgraded.
   We now use libxml2-2.9.2, openssl-1.0.1j, pcre-8.36, and zlib-1.2.8.
diff --git a/buildtools/ChangeLog.Oct2014 b/buildtools/ChangeLog.Oct2014
--- a/buildtools/ChangeLog.Oct2014
+++ b/buildtools/ChangeLog.Oct2014
@@ -1,6 +1,3 @@
 # ChangeLog file for buildtools
 # This file is updated with Maddlog
 
-* Tue Feb  3 2015 Sjoerd Mullender <sjo...@acm.org>
-- We now also create debug packages for Debian and Ubuntu.
-
diff --git a/clients/mapiclient/eventparser.c b/clients/mapiclient/eventparser.c
--- a/clients/mapiclient/eventparser.c
+++ b/clients/mapiclient/eventparser.c
@@ -53,7 +53,7 @@ parseArguments(char *call, int m)
        
        if( debug)
                fprintf(stderr,"%s\n",call);
-       // also skip keywords
+       // skip MAL keywords
        if( strncmp(c,"function ",10) == 0 ) c +=10;
        if( strncmp(c,"end ",4) == 0 ) c +=4;
        if( strncmp(c,"barrier ",8) == 0 ) c +=8;
@@ -68,13 +68,14 @@ parseArguments(char *call, int m)
        if (*c !=')')
        for( ; c && *c && malargc < MAXMALARGS;  c++){
                if(isalpha((int)*c) &&  strncmp(c,"nil",3) && 
strncmp(c,"true",4) && strncmp(c,"false",5) ){
-                       // remember variable in its own structure, it ends with 
:=
+                       // remember variable in its own structure, it ends with 
=
                        v=  c;
                        c= strchr(c,'=');
                        if( c == 0)
                                break;
                        *c = 0;
                        malvariables[malvartop++] = strdup(v);
+                       *c = '=';
                        c++;
                }
                // all arguments have a value
@@ -128,7 +129,8 @@ parseArguments(char *call, int m)
                        *c = ch;
                        if( ch == ';') break;
                } else malargc++;
-               if( *c == '{') {
+
+               if( *c == '{') { // skip property lists
                        while(*c && *c != '}') c++;
                        c++;
                }
@@ -142,6 +144,7 @@ parseArguments(char *call, int m)
                        fprintf(stderr,"var[%d] %s\n",i,malvariables[i]);
        }
 }
+
 int
 eventparser(char *row, EventRecord *ev)
 {
diff --git a/clients/mapiclient/tachograph.c b/clients/mapiclient/tachograph.c
--- a/clients/mapiclient/tachograph.c
+++ b/clients/mapiclient/tachograph.c
@@ -98,7 +98,7 @@ Source *sources;      // original column name
 int srctop, srcmax;
 
 static void
-addSource(char *varname, char *tbl, char *col)
+addSource(char *varname, char *sch, char *tbl, char *col)
 {
        char buf[BUFSIZ];
 
@@ -111,7 +111,7 @@ addSource(char *varname, char *tbl, char
        }
        assert(sources);
        sources[srctop].varname = strdup(varname);
-       snprintf(buf,BUFSIZ,"%s%s%s",tbl,(col?".":""),col?col:"");
+       snprintf(buf,BUFSIZ,"%s%s%s%s%s", (strcmp(sch,"sys")== 0? "": sch), 
(strcmp(sch,"sys")== 0? "": "."), tbl,(col?".":""),col?col:"");
        sources[srctop].source = strdup(buf);
        //fprintf(stderr,"addSource %s at %d  %s\n",varname, srctop, buf);
        srctop++;
@@ -136,7 +136,6 @@ addSourcePair(char *varname, char *name)
        if( strcmp(name, sources[i].varname)==0){
                sources[srctop].varname = strdup(varname);
                sources[srctop].source = strdup(sources[i].source);
-               //fprintf(stderr,"addSourcePair %s  
%s\n",varname,sources[i].source);
                srctop++;
                return;
        }
@@ -291,9 +290,9 @@ static struct{
        {"algebra.subselect", 17, "select",6, 0},
        {"sql.projectdelta", 16, "project",7, 0},
        {"algebra.subjoin", 15, "join",4, 0},
-       {"language.pass(nil)", 18,      "pass", 4, 0},
+       {"language.pass(nil)", 18,      "release", 7, 0},
        {"mat.packIncrement", 17, "pack",4, 0},
-       {"language.pass", 13,   "pass", 4, 0},
+       {"language.pass", 13,   "release", 7, 0},
        {"aggr.subcount", 13,   "count", 5, 0},
        {"sql.subdelta", 12, "project",7, 0},
        {"bat.append", 10,      "append", 6, 0},
@@ -319,49 +318,76 @@ static struct{
        {0,0,0,0,0}};
 
 static void
-renderArgs(char *c, int len,  char *line, char *limit, char *l)
+renderArgs(char *c,  char *l, int len)
 {
        char varname[BUFSIZ]={0}, *v=0;
-       for(; *c && *c !=')' && l < limit-1; ){
-               if( *c == ',')*l++= *c++;
-               v= 0;
+       char *limit = l + len-1;
+       int i;
+
+       // we always start at a parameter list
+       for(; *c && *c !=')' && l < limit; ){
+               varname[0] = 0;
+               if( *c == ',')*l++ = *c++;
+               // take out the variable name
                if(isalpha((int)*c) || *c == '_' ){ 
-                       v= varname;
-                       while(*c && (isalnum((int)*c) || *c=='_')) *v++ = *c++;
-                       *v=0;
+                       for( i = 0; i < BUFSIZ-1 && *c && (isalnum((int)*c) || 
*c=='_') ; i++)
+                               varname[i] = *c++;
+                       varname[i]=0;
                }
+               // handle value part
                if( *c == '=') c++;
+               // BAT result
                if( *c == '<'){
                        while(*c && *c !='>') c++;
                        if(*c) c++;
-                       if (v && varname[0]){
+                       if (varname[0]){
                                v= fndSource(varname);
-                               snprintf(l, len -strlen(line)-2,"%s",v);
-                               while(*l) l++;
+                               l+= snprintf(l, limit - l-2,"%s",v);
                                free(v);
                        }
+                       // copy the count
                        while(*c && *c !=']' && l < limit -2) *l++ = *c++;
                        while(*c && *c != ']') c++;
                        if( *c == ']' ) *l++ = *c++;
-               }
+                       while(*c && *c != ':') c++;
+               } else
+               // string constant
                if (*c == '"' ) {
                        *l++ = *c++;
                        while(*c && *c !='"' && *(c-1) !='\\' && l < limit-2 ) 
*l++ =*c++;
                        while(*c && *c !='"') c++;
                }  else{
+               // all else
                        while(*c && *c !=':' && *c !=',' && l < limit-2) *l++ = 
*c++;
                        while(*c && *c !=':' && *c !=',' )  c++;
                }
+               // skip type descriptor
                if (*c == ':'){
                        if( strncmp(c,":bat",4)== 0){
                                while(*c && *c !=']') c++;
                                if( *c == ']') c++;
-                       } else
-                               while(*c && *c != ',' && *c != ')') c++;
+                       } 
+                       while(*c && *c != ',' && *c != '{' && *c != ')') c++;
                }
-               // literals
+
+               // copy the literals
                if( strcmp(varname,"nil") == 0 || strcmp(varname,"true")==0 || 
strcmp(varname,"false")==0)
                        for(v = varname; *v; ) *l++ = *v++;
+/*
+               else
+               // show variable in assignment only
+               if (v && varname[0] && strstr(c,":=") && !strchr(c,')') ){
+                v= fndSource(varname);
+                snprintf(l, len -strlen(line)-2,"%s",v);
+                while(*l) l++;
+                free(v);
+            }
+*/
+               // drop the properties
+               if( *c == '{'){
+                       while(*c && *c !='}') c++;
+                       if(*c) c++;
+               }
        }
        if(*c) *l++ = *c;
        *l=0;
@@ -374,19 +400,39 @@ renderCall(char *line, int len, char *st
        int i;
 
        (void) state;
+       // skip MAL keywords
+       if( strncmp(c,"function ",10) == 0 ) {
+               while( *c && l < limit -1) *l++ = *c++;
+               *l = 0;
+               return;
+       }
+       if( strncmp(c,"end ",4) == 0 ) {
+               while( *c && l < limit -1) *l++ = *c++;
+               *l = 0;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to