Changeset: 213c45709fb9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=213c45709fb9
Added Files:
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.sql
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.stable.err
        
sql/test/BugTracker-2015/Tests/date_comparison_incorrect_results.Bug-3834.stable.out
        sql/test/BugTracker-2015/Tests/null.Bug-3833.sql
        sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.err
        sql/test/BugTracker-2015/Tests/null.Bug-3833.stable.out
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
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        clients/mapiclient/mclient.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        clients/python2/setup.py
        clients/python3/setup.py
        common/stream/stream.c
        configure.ag
        debian/changelog
        gdk/gdk_select.c
        gdk/libbat.rc
        libversions
        monetdb5/ChangeLog
        monetdb5/mal/mal_function.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/atoms/str.h
        monetdb5/modules/atoms/str.mal
        monetdb5/modules/kernel/batcolor.h
        monetdb5/modules/kernel/batstr.c
        monetdb5/optimizer/Tests/dataflow.mal
        monetdb5/optimizer/Tests/manifold2.stable.out
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        monetdb5/tools/libmonetdb5.rc
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_rank.mal
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_user.c
        sql/backends/monet5/sql_user.h
        sql/server/rel_schema.c
        sql/server/sql_parser.y
        sql/server/sql_qc.c
        sql/server/sql_scan.c
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.sql
        sql/test/BugTracker-2015/Tests/All
        sql/test/BugTracker-2015/Tests/schema_view2.Bug-3766.sql
        sql/test/bugs/Tests/not.stable.out
        sql/test/leaks/Tests/check0.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/select1.stable.out
        sql/test/leaks/Tests/select2.stable.out
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp3.stable.out
        sql/test/pg_regress/Tests/strings.stable.err
        sql/test/pg_regress/Tests/strings.stable.err.int128
        vertoo.data
Branch: embedded
Log Message:

merge with default


diffs (truncated from 2509 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -607,3 +607,6 @@ 30be7bd4aec0b5daf3d2f3a26a1043c04b88bb6d
 c7c0a76e663e34bcddae683b385c8e5a919ffd84 Jul2015_release
 d1bce2fabbc36a3a3b996b09e55e764a626026a8 Jul2015_7
 d1bce2fabbc36a3a3b996b09e55e764a626026a8 Jul2015_SP1_release
+d1dd6e5b7a5acfe14a33070e08c776341996deb2 Jul2015_9
+d1bce2fabbc36a3a3b996b09e55e764a626026a8 Jul2015_SP1_release
+d1dd6e5b7a5acfe14a33070e08c776341996deb2 Jul2015_SP1_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -995,6 +995,18 @@ rm -f %{buildroot}%{_bindir}/Maddlog
 %postun -p /sbin/ldconfig
 
 %changelog
+* Mon Oct 26 2015 Sjoerd Mullender <sjo...@acm.org> - 11.21.9-20151026
+- Rebuilt.
+- BZ#3816: Server crashes when trying to convert timestamp to str with
+  incorrect format
+- BZ#3823: JDBC Connection to a schema - setSchema() error
+- BZ#3827: Certains comparisons between UUID produce a MAL error
+- BZ#3829: Certains simple WHERE clause cause MonetDB to segfault
+  without explanation
+- BZ#3830: Coalesce typing inconsistencies
+- BZ#3833: NULL literals refused at many places
+- BZ#3834: Date comparison returns incorrect results
+
 * Tue Oct 20 2015 Sjoerd Mullender <sjo...@acm.org> - 11.21.7-20151020
 - Rebuilt.
 - BZ#3789: Query on large string table fails on HEAPextend
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -2627,15 +2627,15 @@ command batsql.alpha(dec:bat[:oid,:dbl],
 address SQLbat_alpha_cst;
 comment BAT implementation of astronomy alpha function
 
-pattern 
batsql.dense_rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+pattern batsql.dense_rank(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLdense_rank;
 comment return the densely ranked groups
 
-pattern 
batsql.diff{orderdependend}(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
+pattern batsql.diff(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
 address SQLdiff;
 comment return true if cur != prev row
 
-pattern batsql.diff{orderdependend}(b:bat[:oid,:any_1]):bat[:oid,:bit] 
+pattern batsql.diff(b:bat[:oid,:any_1]):bat[:oid,:bit] 
 address SQLdiff;
 comment return true if cur != prev row
 
@@ -2671,11 +2671,11 @@ pattern batsql.next_value(sname:bat[:oid
 address mvc_bat_next_value;
 comment return the next value of the sequence
 
-pattern 
batsql.rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
+pattern batsql.rank(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLrank;
 comment return the ranked groups
 
-pattern 
batsql.row_number{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+pattern batsql.row_number(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLrow_number;
 comment return the row_numer-ed groups
 
@@ -40990,10 +40990,6 @@ command str.ascii(s:str):int
 address STRascii;
 comment Return unicode of head of string
 
-command str.codeset():str 
-address STRcodeset;
-comment Return the locale's codeset
-
 command str.endsWith(s:str,suffix:str):bit 
 address STRSuffix;
 comment Suffix check.
@@ -41002,10 +40998,6 @@ command str.insert(s:str,start:int,l:int
 address STRinsert;
 comment Insert a string into another
 
-command str.iconv(org:str,fromCs:str,toCs:str):str 
-address STRIconv;
-comment String codeset conversion
-
 command str.locate(s1:str,s2:str,start:int):int 
 address STRlocate2;
 comment Locate the start position of a string
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -3146,15 +3146,15 @@ command batsql.dec_round(v:bat[:oid,:hge
 address hge_bat_dec_round_wrap;
 comment round off the value v to nearests multiple of r
 
-pattern 
batsql.dense_rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+pattern batsql.dense_rank(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLdense_rank;
 comment return the densely ranked groups
 
-pattern 
batsql.diff{orderdependend}(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
+pattern batsql.diff(p:bat[:oid,:bit],b:bat[:oid,:any_1]):bat[:oid,:bit] 
 address SQLdiff;
 comment return true if cur != prev row
 
-pattern batsql.diff{orderdependend}(b:bat[:oid,:any_1]):bat[:oid,:bit] 
+pattern batsql.diff(b:bat[:oid,:any_1]):bat[:oid,:bit] 
 address SQLdiff;
 comment return true if cur != prev row
 
@@ -3194,11 +3194,11 @@ command batsql.round(v:bat[:oid,:hge],d:
 address hge_bat_round_wrap;
 comment round off the decimal v(d,s) to r digits behind the dot (if r < 0, 
before the dot)
 
-pattern 
batsql.rank{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
+pattern batsql.rank(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLrank;
 comment return the ranked groups
 
-pattern 
batsql.row_number{orderdependend}(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int]
 
+pattern batsql.row_number(b:bat[:oid,:any_1],p:any_2,o:any_3):bat[:oid,:int] 
 address SQLrow_number;
 comment return the row_numer-ed groups
 
@@ -51929,10 +51929,6 @@ command str.ascii(s:str):int
 address STRascii;
 comment Return unicode of head of string
 
-command str.codeset():str 
-address STRcodeset;
-comment Return the locale's codeset
-
 command str.endsWith(s:str,suffix:str):bit 
 address STRSuffix;
 comment Suffix check.
@@ -51941,10 +51937,6 @@ command str.insert(s:str,start:int,l:int
 address STRinsert;
 comment Insert a string into another
 
-command str.iconv(org:str,fromCs:str,toCs:str):str 
-address STRIconv;
-comment String codeset conversion
-
 command str.locate(s1:str,s2:str,start:int):int 
 address STRlocate2;
 comment Locate the start position of a string
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
@@ -1762,7 +1762,6 @@ str SRVsetServers(Client cntxt, MalBlkPt
 str STRBytes(int *res, const str *arg1);
 str STRConcat(str *res, const str *val1, const str *val2);
 str STRFromWChr(str *res, const int *at);
-str STRIconv(str *res, const str *o, const str *fp, const str *tp);
 str STRLength(int *res, const str *arg1);
 str STRLower(str *res, const str *arg1);
 str STRLpad(str *res, const str *arg1, const int *len);
@@ -1826,7 +1825,6 @@ str STRbatstrSearchcst(bat *ret, const b
 str STRbatstringLength(bat *ret, const bat *l);
 str STRbatsubstring(bat *ret, const bat *l, const bat *r, const bat *t);
 str STRbatsubstringcst(bat *ret, const bat *bid, const int *start, const int 
*length);
-str STRcodeset(str *res);
 str STRinsert(str *ret, const str *s, const int *start, const int *l, const 
str *s2);
 str STRlikewrap(bit *ret, const str *s, const str *pat, const str *esc);
 str STRlikewrap2(bit *ret, const str *s, const str *pat);
@@ -2392,7 +2390,6 @@ str optimizeMALBlock(Client cntxt, MalBl
 str optimizerCheck(Client cntxt, MalBlkPtr mb, str name, int actions, lng 
usec);
 str optimizerRef;
 str optimizer_prelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-int orderDependendProp;
 str pack2Ref;
 str packRef;
 str parametersRef;
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -171,6 +171,41 @@ has_schemas_system(Mapi mid)
        return 0;
 }
 
+/* return TRUE if the HUGEINT type exists */
+static int
+has_hugeint(Mapi mid)
+{
+       MapiHdl hdl;
+       int ret;
+
+       if ((hdl = mapi_query(mid,
+                             "SELECT id "
+                             "FROM sys.types "
+                             "WHERE sqlname = 'hugeint'")) == NULL ||
+           mapi_error(mid))
+               goto bailout;
+       ret = mapi_get_row_count(hdl) == 1;
+       while ((mapi_fetch_row(hdl)) != 0) {
+               if (mapi_error(mid))
+                       goto bailout;
+       }
+       if (mapi_error(mid))
+               goto bailout;
+       mapi_close_handle(hdl);
+       return ret;
+
+  bailout:
+       if (hdl) {
+               if (mapi_result_error(hdl))
+                       mapi_explain_result(hdl, stderr);
+               else
+                       mapi_explain_query(hdl, stderr);
+               mapi_close_handle(hdl);
+       } else
+               mapi_explain(mid, stderr);
+       return 0;
+}
+
 static int
 dump_foreign_keys(Mapi mid, const char *schema, const char *tname, const char 
*tid, stream *toConsole)
 {
@@ -394,10 +429,11 @@ static int dump_column_definition(
        const char *schema,
        const char *tname,
        const char *tid,
-       int foreign);
+       int foreign,
+       int hashge);
 
 static int
-dump_type(Mapi mid, stream *toConsole, char *c_type, char *c_type_digits, char 
*c_type_scale)
+dump_type(Mapi mid, stream *toConsole, char *c_type, char *c_type_digits, char 
*c_type_scale, int hashge)
 {
        int space = 0;
 
@@ -502,13 +538,19 @@ dump_type(Mapi mid, stream *toConsole, c
                space = mnstr_printf(toConsole, "DECIMAL");
        } else if (strcmp(c_type, "table") == 0) {
                mnstr_printf(toConsole, "TABLE ");
-               dump_column_definition(mid, toConsole, NULL, NULL, 
c_type_digits, 1);
+               dump_column_definition(mid, toConsole, NULL, NULL, 
c_type_digits, 1, hashge);
        } else if (strcmp(c_type_digits, "0") == 0) {
                space = mnstr_printf(toConsole, "%s", toUpper(c_type));
        } else if (strcmp(c_type_scale, "0") == 0) {
                space = mnstr_printf(toConsole, "%s(%s)",
                                toUpper(c_type), c_type_digits);
        } else {
+               if (strcmp(c_type, "decimal") == 0) {
+                       if (strcmp(c_type_digits, "39") == 0)
+                               c_type_digits = "38";
+                       else if (!hashge && strcmp(c_type_digits, "19") == 0)
+                               c_type_digits = "18";
+               }
                space = mnstr_printf(toConsole, "%s(%s,%s)",
                                toUpper(c_type), c_type_digits, c_type_scale);
        }
@@ -516,7 +558,7 @@ dump_type(Mapi mid, stream *toConsole, c
 }
 
 static int
-dump_column_definition(Mapi mid, stream *toConsole, const char *schema, const 
char *tname, const char *tid, int foreign)
+dump_column_definition(Mapi mid, stream *toConsole, const char *schema, const 
char *tname, const char *tid, int foreign, int hashge)
 {
        MapiHdl hdl = NULL;
        char *query;
@@ -586,7 +628,7 @@ dump_column_definition(Mapi mid, stream 
 
                mnstr_printf(toConsole, "\t\"%s\"%*s ",
                             c_name, CAP(slen - strlen(c_name)), "");
-               space = dump_type(mid, toConsole, c_type, c_type_digits, 
c_type_scale);
+               space = dump_type(mid, toConsole, c_type, c_type_digits, 
c_type_scale, hashge);
                if (strcmp(c_null, "false") == 0) {
                        mnstr_printf(toConsole, "%*s NOT NULL",
                                        CAP(13 - space), "");
@@ -763,6 +805,7 @@ describe_table(Mapi mid, char *schema, c
        int type = 0;
        size_t maxquerylen;
        char *sname = NULL;
+       int hashge;
 
        if (schema == NULL) {
                if ((sname = strchr(tname, '.')) != NULL) {
@@ -778,6 +821,8 @@ describe_table(Mapi mid, char *schema, c
                schema = sname;
        }
 
+       hashge = has_hugeint(mid);
+
        maxquerylen = 512 + strlen(tname) + strlen(schema);
 
        query = malloc(maxquerylen);
@@ -830,7 +875,7 @@ describe_table(Mapi mid, char *schema, c
                             "",
                             schema, tname);
 
-               if (dump_column_definition(mid, toConsole, schema, tname, NULL, 
foreign))
+               if (dump_column_definition(mid, toConsole, schema, tname, NULL, 
foreign, hashge))
                        goto bailout;
                if (type == 5)
                        mnstr_printf(toConsole, " ON '%s'", view);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to