Changeset: 3b59b7a47393 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3b59b7a47393
Modified Files:
        gdk/gdk_bat.c
Branch: Jul2012
Log Message:

Fix setting of properties.
This is partially a backport from the default branch, partially new
stuff.  New: when setting the nil/nonil properties for seqbase ==
oid_nil, set them correctly when the bat is empty.


diffs (35 lines):

diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -2226,6 +2226,7 @@ BAT *
 BATseqbase(BAT *b, oid o)
 {
        BATcheck(b, "BATseqbase");
+       assert(o <= oid_nil);
        if (ATOMtype(b->htype) == TYPE_oid) {
                if (b->hseqbase != o) {
                        b->batDirtydesc = TRUE;
@@ -2239,18 +2240,17 @@ BATseqbase(BAT *b, oid o)
                /* adapt keyness */
                if (BAThvoid(b)) {
                        if (o == oid_nil) {
-                               if (b->hkey)
-                                       b->hkey = FALSE;
-                               b->H->nonil = 0;
-                               b->H->nil = 1;
+                               b->hkey = b->U->count <= 1;
+                               b->H->nonil = b->U->count == 0;
+                               b->H->nil = b->U->count > 0;
                                b->hsorted = b->hrevsorted = 1;
                        } else {
                                if (!b->hkey) {
                                        b->hkey = TRUE;
                                        b->H->nokey[0] = b->H->nokey[1] = 0;
-                                       b->H->nonil = 1;
-                                       b->H->nil = 0;
                                }
+                               b->H->nonil = 1;
+                               b->H->nil = 0;
                                b->hsorted = 1;
                                b->hrevsorted = b->U->count <= 1;
                        }
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to