Changeset: b59ef9c0443e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b59ef9c0443e
Added Files:
        monetdb5/extras/jaql/Tests/group02.mal
        monetdb5/extras/jaql/Tests/group02.stable.err
        monetdb5/extras/jaql/Tests/group02.stable.out
        monetdb5/extras/jaql/Tests/join03.mal
        monetdb5/extras/jaql/Tests/join03.stable.err
        monetdb5/extras/jaql/Tests/join03.stable.out
        monetdb5/mal/Tests/tst1506.mal
        monetdb5/mal/Tests/tst1506.stable.err
        monetdb5/mal/Tests/tst1506.stable.out
        monetdb5/modules/kernel/batifthen.c
        monetdb5/modules/kernel/batifthen.h
        monetdb5/modules/kernel/batifthen.mal
Removed Files:
        monetdb5/modules/kernel/algebra2.mx
        monetdb5/modules/kernel/batifthen.mx
        monetdb5/modules/kernel/kprelude.mx
Modified Files:
        clients/ChangeLog.Jul2012
        clients/examples/C/sample2.c
        clients/mapiclient/mclient.c
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_batop.mx
        gdk/gdk_calc.c
        gdk/gdk_logger.c
        gdk/gdk_logger.h
        gdk/gdk_relop.mx
        gdk/gdk_scanselect.mx
        gdk/gdk_system.c
        gdk/gdk_system.h
        gdk/gdk_utils.c
        monetdb5/extras/compiler/Tests/mal01.mal
        monetdb5/extras/jaql/Tests/All
        monetdb5/extras/jaql/Tests/json02.stable.out
        monetdb5/extras/jaql/Tests/json05.stable.out
        monetdb5/extras/jaql/jaqlfunc.mal
        monetdb5/extras/jaql/jaqlgencode.c
        monetdb5/extras/jaql/json.c
        monetdb5/extras/jaql/json.mal
        monetdb5/extras/rdf/rdf_shredder.mx
        monetdb5/mal/Tests/All
        monetdb5/mal/mal_dataflow.c
        monetdb5/modules/kernel/Makefile.ag
        monetdb5/modules/kernel/aggr_be_minmax.mx
        monetdb5/modules/kernel/aggr_bge_minmax.mx
        monetdb5/modules/kernel/algebra.mx
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/bat5.h
        monetdb5/modules/kernel/batcolor.c
        monetdb5/modules/kernel/batcolor.h
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/batmmath.h
        monetdb5/modules/kernel/batmtime.mx
        monetdb5/modules/kernel/batstr.c
        monetdb5/modules/kernel/batstr.h
        monetdb5/modules/kernel/group.mx
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/kernel/mmath.h
        monetdb5/modules/mal/batExtensions.c
        monetdb5/optimizer/opt_mergetable.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/vaults/mseed.c
        sql/server/bin_optimizer.c
        sql/server/rel_bin.c
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/server/sql_rel2bin.c
        sql/server/sql_statement.c
        sql/server/sql_statement.h
        sql/storage/bat/bat_logger.c
        sql/storage/bat/bat_utils.c
        sql/storage/bat/bat_utils.h
        sql/storage/restrict/restrict_logger.c
        sql/storage/store.c
        sql/test/BugTracker/Tests/cardinality_violation.SF-1240701.stable.err
        sql/test/Tests/median_stdev.sql
        sql/test/Tests/median_stdev.stable.out
        sql/test/Tests/trace.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/drop3.stable.out
        sql/test/leaks/Tests/select1.stable.out
        sql/test/leaks/Tests/select2.stable.out
        sql/test/leaks/Tests/temp1.stable.out
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp3.stable.out
        tools/merovingian/ChangeLog.Jul2012
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/daemon/merovingian.c
        tools/mserver/mserver5.c
Branch: default
Log Message:

merged with default


diffs (truncated from 9731 to 300 lines):

diff --git a/clients/ChangeLog.Jul2012 b/clients/ChangeLog.Jul2012
--- a/clients/ChangeLog.Jul2012
+++ b/clients/ChangeLog.Jul2012
@@ -1,3 +1,7 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Tue Jul 17 2012 Fabian Groffen <[email protected]>
+- mclient no longer prints the SQLSTATE at the start of each error
+  returned by the SQL-server.
+
diff --git a/clients/examples/C/sample2.c b/clients/examples/C/sample2.c
--- a/clients/examples/C/sample2.c
+++ b/clients/examples/C/sample2.c
@@ -40,6 +40,7 @@ main(int argc, char **argv)
        int age = 0;
        char *parm[] = { "peter", 0 };
        char *parm2[] = { "25", 0 };
+       char *parm3[] = { "peter", "25", 0 };
        Mapi dbh= NULL;
        MapiHdl hdl = NULL;
 
@@ -61,7 +62,7 @@ main(int argc, char **argv)
                        die(dbh, hdl);
                if (mapi_close_handle(hdl) != MOK)
                        die(dbh, hdl);
-               if ((hdl = mapi_query_array(dbh, "insert into emp values('?', 
?)", parm)) == NULL || mapi_error(dbh))
+               if ((hdl = mapi_query_array(dbh, "insert into emp values('?', 
?)", parm3)) == NULL || mapi_error(dbh))
                        die(dbh, hdl);
                if (mapi_close_handle(hdl) != MOK)
                        die(dbh, hdl);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -1448,10 +1448,11 @@ format_result(Mapi mid, MapiHdl hdl, cha
                if ((reply = mapi_result_error(hdl)) != NULL) {
                        mnstr_flush(toConsole);
                        if (formatter == TABLEformatter || formatter == 
CLEANformatter) {
-                               fprintf(stderr, "%s", reply);
+                               mapi_noexplain(mid, "");
                        } else {
-                               mapi_explain_result(hdl, stderr);
+                               mapi_noexplain(mid, NULL);
                        }
+                       mapi_explain_result(hdl, stderr);
                        errseen = 1;
                        /* don't need to print something like '0
                         * tuples' if we got an error */
@@ -1600,6 +1601,11 @@ doRequest(Mapi mid, const char *buf)
                SQLsetSpecial(buf);
 
        if ((hdl = mapi_query(mid, buf)) == NULL) {
+               if (formatter == TABLEformatter || formatter == CLEANformatter) 
{
+                       mapi_noexplain(mid, "");
+               } else {
+                       mapi_noexplain(mid, NULL);
+               }
                mapi_explain(mid, stderr);
                errseen = 1;
                return 1;
@@ -1619,6 +1625,11 @@ doRequest(Mapi mid, const char *buf)
                        break;                                          \
                case MERROR:                                            \
                        /* some error, but try to continue */           \
+                       if (formatter == TABLEformatter || formatter == 
CLEANformatter) { \
+                               mapi_noexplain(mid, ""); \
+                       } else { \
+                               mapi_noexplain(mid, NULL); \
+                       } \
                        if (hdl) {                                      \
                                mapi_explain_query(hdl, stderr);        \
                                mapi_close_handle(hdl);                 \
@@ -1629,6 +1640,11 @@ doRequest(Mapi mid, const char *buf)
                        break_or_continue;                              \
                case MTIMEOUT:                                          \
                        /* lost contact with the server */              \
+                       if (formatter == TABLEformatter || formatter == 
CLEANformatter) { \
+                               mapi_noexplain(mid, ""); \
+                       } else { \
+                               mapi_noexplain(mid, NULL); \
+                       } \
                        if (hdl) {                                      \
                                mapi_explain_query(hdl, stderr);        \
                                mapi_close_handle(hdl);                 \
@@ -2552,6 +2568,11 @@ set_timezone(Mapi mid)
                         "SET TIME ZONE INTERVAL '-%02ld:%02ld' HOUR TO MINUTE",
                         tzone / 3600, (tzone % 3600) / 60);
        if ((hdl = mapi_query(mid, buf)) == NULL) {
+               if (formatter == TABLEformatter || formatter == CLEANformatter) 
{
+                       mapi_noexplain(mid, "");
+               } else {
+                       mapi_noexplain(mid, NULL);
+               }
                mapi_explain(mid, stderr);
                errseen = 1;
                return;
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,3 +1,8 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Tue Jul 17 2012 Sjoerd Mullender <[email protected]>
+- BAT-of-BATs is no longer allowed.  It was already not allowed to
+  make these types of BATs persistent, but now they can't be created at
+  all anymore.
+
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2133,12 +2133,6 @@ gdk_export oid OIDnew(oid inc);
  * @item BAT*
  * @tab
  *  BAThash (BAT *b, BUN masksize)
- * @item BAT *
- * @tab
- *  BAThashsplit (BAT *b, BUN n, int unary)
- * @item BAT *
- * @tab
- *  BATrangesplit  (BAT *b, int n)
  * @end multitable
  *
  * The current BAT implementation supports one search accelerator:
@@ -2147,14 +2141,8 @@ gdk_export oid OIDnew(oid inc);
  * failure to create the supportive structures.
  *
  * The hash data structures are currently maintained during update operations.
- *
- * A BAT can be redistributed over n buckets using a hash
- * function with BAThashsplit. The return value is a list of BAT
- * pointers.  Similarly, a range partitioning based is supported.
  */
 gdk_export BAT *BAThash(BAT *b, BUN masksize);
-gdk_export BAT *BAThashsplit(BAT *b, BUN n, int unary);
-gdk_export BAT *BATrangesplit(BAT *b, BUN n, int unary);
 gdk_export BAT *BAThashjoin(BAT *l, BAT *r, BUN estimate);
 
 /* low level functions */
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -299,6 +299,8 @@ BATnew(int ht, int tt, BUN cap)
        BATstore *bs;
 
        assert(cap <= BUN_MAX);
+       assert(ht != TYPE_bat);
+       assert(tt != TYPE_bat);
        ERRORcheck((ht < 0) || (ht > GDKatomcnt), "BATnew:ht error\n");
        ERRORcheck((tt < 0) || (tt > GDKatomcnt), "BATnew:tt error\n");
 
@@ -763,6 +765,8 @@ BATcopy(BAT *b, int ht, int tt, int writ
        BAT *bn = NULL;
 
        BATcheck(b, "BATcopy");
+       assert(ht != TYPE_bat);
+       assert(tt != TYPE_bat);
        cnt = b->batCount;
 
        /* maybe a bit ugly to change the requested bat types?? */
@@ -2730,7 +2734,6 @@ BATgetaccess(BAT *b)
 #define check_type(tp)                                                 \
        do {                                                            \
                if (ATOMisdescendant((tp), TYPE_ptr) ||                 \
-                   ATOMisdescendant((tp), TYPE_bat) ||                 \
                    BATatoms[tp].atomUnfix ||                           \
                    BATatoms[tp].atomFix) {                             \
                        GDKerror("BATmode: %s type implies that %s[%s,%s] " \
@@ -2817,6 +2820,7 @@ BATassertHeadProps(BAT *b)
        assert(b != NULL);
        assert(b->htype >= TYPE_void);
        assert(b->htype < GDKatomcnt);
+       assert(b->htype != TYPE_bat);
 
        cmpf = BATatoms[b->htype].atomCmp;
        nilp = ATOMnilptr(b->htype);
diff --git a/gdk/gdk_batop.mx b/gdk/gdk_batop.mx
--- a/gdk/gdk_batop.mx
+++ b/gdk/gdk_batop.mx
@@ -763,9 +763,8 @@ BATreplace(BAT *b, BAT *n, bit force)
  * void-columns (in this case, the seqbase has to be recomputed in the result).
  *
  * Note that the BATslice() is used indirectly as well as a special
- * case for BATselect (range selection on sorted column), BATrangesplit
- * (fragmentation on sorted column) and BATsemijoin (when two dense columns
- * are semijoined).
+ * case for BATselect (range selection on sorted column) and
+ * BATsemijoin (when two dense columns are semijoined).
  *
  * NOTE new semantics, the selected range is excluding the high value.
  */
@@ -935,64 +934,64 @@ BATslice2(BAT *b, BUN l1, BUN h1, BUN l2
  * need an implementation for selecting nil (in MIL, this is done
  * through is the "isnil" predicate). So we implement it here.
  */
-@= valselect
-       HASHloop@2(bi, b->H->hash, i, tl) {
-               if (q < r)
-                       bunfastins_nocheck(bn, q, BUNt@1(bi, i), tl, Hsize(bn), 
Tsize(bn));
-               q++;
-       }
-@= stringselect
-       if (strElimDoubles(b->H->vheap)) {
-               BUN p;
-               size_t j;
+#define hashselectloop(EXT, BUNtail)                                   \
+       do {                                                            \
+               HASHloop##EXT(bi, b->H->hash, i, tl) {                  \
+                       if (q < r) {                                    \
+                               bunfastins_nocheck(bn, q, BUNtail(bi, i), \
+                                                  tl, Hsize(bn), Tsize(bn)); \
+                       }                                               \
+                       q++;                                            \
+               }                                                       \
+       } while (0)
+#define hashselect(BUNtail)                                            \
+       do {                                                            \
+               switch (ATOMstorage(b->htype)) {                        \
+               case TYPE_bte:                                          \
+                       hashselectloop(_bte, BUNtail);                  \
+                       break;                                          \
+               case TYPE_sht:                                          \
+                       hashselectloop(_sht, BUNtail);                  \
+                       break;                                          \
+               case TYPE_int:                                          \
+                       hashselectloop(_int, BUNtail);                  \
+                       break;                                          \
+               case TYPE_flt:                                          \
+                       hashselectloop(_flt, BUNtail);                  \
+                       break;                                          \
+               case TYPE_dbl:                                          \
+                       hashselectloop(_dbl, BUNtail);                  \
+                       break;                                          \
+               case TYPE_lng:                                          \
+                       hashselectloop(_lng, BUNtail);                  \
+                       break;                                          \
+               case TYPE_str:                                          \
+                       if (strElimDoubles(b->H->vheap)) {              \
+                               size_t j;                               \
+                                                                       \
+                               HASHloop_fstr(bi, b->H->hash, i, j, tl) { \
+                                       if (q < r)                      \
+                                               bunfastins_nocheck(bn, q, \
+                                                                  BUNtail(bi, 
i), \
+                                                                  tl,  \
+                                                                  Hsize(bn), \
+                                                                  Tsize(bn)); \
+                                       q++;                            \
+                               }                                       \
+                       } else {                                        \
+                               hashselectloop(_str, BUNtail);          \
+                       }                                               \
+                       break;                                          \
+               default:                                                \
+                       if (b->hvarsized) {                             \
+                               hashselectloop(var, BUNtail);           \
+                       } else {                                        \
+                               hashselectloop(loc, BUNtail);           \
+                       }                                               \
+                       break;                                          \
+               }                                                       \
+       } while (0)
 
-               HASHloop_fstr(bi, b->H->hash, p, j, tl) {
-                       if (q < r)
-                               bunfastins_nocheck(bn, q, BUNt@1(bi, p), tl, 
Hsize(bn), Tsize(bn));
-                       q++;
-               }
-       } else {
-               BUN p;
-
-               HASHloop_str(bi, b->H->hash, p, tl) {
-                       if (q < r)
-                               bunfastins_nocheck(bn, q, BUNt@1(bi, p), tl, 
Hsize(bn), Tsize(bn));
-                       q++;
-               }
-       }
-@= hashselect
-       switch(ATOMstorage(b->htype)) {
-       case TYPE_bte:
-               @:valselect(@1,_bte)@
-               break;
-       case TYPE_sht:
-               @:valselect(@1,_sht)@
-               break;
-       case TYPE_int:
-               @:valselect(@1,_int)@
-               break;
-       case TYPE_flt:
-               @:valselect(@1,_flt)@
-               break;
-       case TYPE_dbl:
-               @:valselect(@1,_dbl)@
-               break;
-       case TYPE_lng:
-               @:valselect(@1,_lng)@
-               break;
-       case TYPE_str:
-               @:stringselect(@1)@
-               break;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to