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

added int128 / "hge" support in gdk/gdk_bat.c


diffs (104 lines):

diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -957,12 +957,23 @@ BATcopy(BAT *b, int ht, int tt, int writ
                                while (bunstocopy--) {
                                        *dst++ = *src++;
                                }
-                       } else {
+                       } else if ((tpe == TYPE_lng) || (tpe == TYPE_dbl)) {
                                lng *src = (lng *) cur, *dst = (lng *) d;
 
                                while (bunstocopy--) {
                                        *dst++ = *src++;
                                }
+                       } else {
+#ifdef HAVE_HGE
+                               hge *src = (hge *) cur, *dst = (hge *) d;
+
+                               while (bunstocopy--) {
+                                       *dst++ = *src++;
+                               }
+#else
+                               assert(0);
+#endif
+
                        }
                }
                /* copy all properties (size+other) from the source bat */
@@ -1003,8 +1014,18 @@ BATcopy(BAT *b, int ht, int tt, int writ
        return NULL;
 }
 
+#ifdef HAVE_HGE
+#define un_move_sz16(src, dst, sz)                                     \
+               if (sz == 16) {                                         \
+                       * (hge *) dst = * (hge *) src;                  \
+               } else
+#else
+#define un_move_sz16(src, dst, sz)
+#endif
+
 #define un_move(src, dst, sz)                                          \
        do {                                                            \
+               un_move_sz16(src,dst,sz)                                \
                if (sz == 8) {                                          \
                        * (lng *) dst = * (lng *) src;                  \
                } else if (sz == 4) {                                   \
@@ -1794,6 +1815,11 @@ BUNfnd(BAT *b, const void *v)
        case TYPE_lng:
                HASHfnd_lng(r, bi, v);
                break;
+#ifdef HAVE_HGE
+       case TYPE_hge:
+               HASHfnd_hge(r, bi, v);
+               break;
+#endif
        case TYPE_str:
                HASHfnd_str(r, bi, v);
                break;
@@ -1960,6 +1986,12 @@ BUNlocate(BAT *b, const void *x, const v
                                x = &hidx.l;
                                htpe = TYPE_lng;
                                break;
+#ifdef HAVE_HGE
+                       case SIZEOF_HGE:
+                               /* does this occur? do we need to handle it? */
+                               assert(0);
+                               break;
+#endif
                        }
                }
        }
@@ -1979,6 +2011,12 @@ BUNlocate(BAT *b, const void *x, const v
                                y = &tidx.l;
                                ttpe = TYPE_lng;
                                break;
+#ifdef HAVE_HGE
+                       case SIZEOF_HGE:
+                               /* does this occur? do we need to handle it? */
+                               assert(0);
+                               break;
+#endif
                        }
                }
        }
@@ -1988,10 +2026,18 @@ BUNlocate(BAT *b, const void *x, const v
        if (!ATOMvarsized(htpe)) {
                hint = (ATOMsize(htpe) == sizeof(int));
                hlng = (ATOMsize(htpe) == sizeof(lng));
+#ifdef HAVE_HGE
+               /* does this occur? do we need to handle it? */
+               assert(ATOMsize(htpe) != sizeof(hge));
+#endif
        }
        if (!ATOMvarsized(ttpe)) {
                tint = (ATOMsize(ttpe) == sizeof(int));
                tlng = (ATOMsize(ttpe) == sizeof(lng));
+#ifdef HAVE_HGE
+               /* does this occur? do we need to handle it? */
+               assert(ATOMsize(ttpe) != sizeof(hge));
+#endif
        }
 
        /* hashloop over head values, check tail values */
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to