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