Update of /cvsroot/monetdb/pathfinder/runtime
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv4825/runtime

Modified Files:
        pf_support.mx 
Log Message:

in merged_union:
in the rare(?) case that we need to merged two idential BATs that both have 
(non-nil) void tails,
we might encounter the "concurrent void access problem";
hence, we avoid it, by replace one instance of the identical BAT by a view on 
itself
(the new BATdescriptor allows "exclusive void access")


Index: pf_support.mx
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/runtime/pf_support.mx,v
retrieving revision 1.253
retrieving revision 1.254
diff -u -d -r1.253 -r1.254
--- pf_support.mx       25 Jul 2007 13:13:52 -0000      1.253
+++ pf_support.mx       25 Jul 2007 13:17:16 -0000      1.254
@@ -5063,7 +5063,7 @@
        oid hsqb[ntabs];
        size_t Bcnt[ntabs], inc[2];
        int t, c, any, non_empty[ntabs+1];
-       bit concat01 = FALSE, concat10 = FALSE;
+       bit concat01 = FALSE, concat10 = FALSE, void_fix = FALSE;
        bte *w = NULL, *ww[2], *wt, *ws[2];
        size_t res_count = 0, h = 0;
 
@@ -5255,6 +5255,10 @@
        break;
 @
 @= merged_union_3
+               if ((void_fix = (src[0] == src[1] && src[0]->ttype==TYPE_void 
&& src[1]->ttype==TYPE_void))) {
+                       /* create an artifical view (i.e., new BATdescriptor) 
to avoid concurrent void access problem */
+                       src[0] = VIEWcreate(src[0]);
+               }
                sze[0] = BUNsize(src[0]);
                sze[1] = BUNsize(src[1]);
                csr[0] = BUNfirst(src[0]);
@@ -5310,6 +5314,9 @@
                BATkey(BATmirror(tgt),FALSE);
                tgt->tsorted = GDK_SORTED;
                tgt->tdense = FALSE;
+               if (void_fix) {
+                       BBPunfix(src[0]->batCacheid);
+               }
 @
 @c
        tgt = bn[0];


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to