Changeset: 9e4598345e71 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e4598345e71
Modified Files:
        gdk/gdk.h
        gdk/gdk_atoms.c
        gdk/gdk_atoms.h
        monetdb5/mal/mal_type.c
Branch: compressedcandidates
Log Message:

First part of TYPE_msk


diffs (113 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -534,14 +534,17 @@
 #define TYPE_lng       10
 #ifdef HAVE_HGE
 #define TYPE_hge       11
-#define TYPE_str       12
+#define TYPE_msk       12
+#define TYPE_str       13
 #else
-#define TYPE_str       11
+#define TYPE_msk       11
+#define TYPE_str       12
 #endif
 #define TYPE_any       255     /* limit types to <255! */
 
 typedef signed char bit;
 typedef signed char bte;
+typedef unsigned char msk;
 typedef short sht;
 
 #define SIZEOF_OID     SIZEOF_SIZE_T
diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
@@ -234,6 +234,7 @@ ATOMisdescendant(int tpe, int parent)
 
 
 const bte bte_nil = GDK_bte_min;
+const msk msk_nil = 0;
 const sht sht_nil = GDK_sht_min;
 const int int_nil = GDK_int_min;
 const flt flt_nil = GDK_flt_min;
@@ -1889,6 +1890,27 @@ OIDtoStr(char **dst, size_t *len, const 
        return snprintf(*dst, *len, OIDFMT "@0", *src);
 }
 
+/* MSK operations */
+ssize_t
+mskFromStr(const char *src, size_t *len, oid **dst)
+{
+       (void) dst;
+       (void) len;
+       (void) src;
+       GDKerror("mskFromStr: not yet implemented");
+       return 0;
+}
+
+ssize_t
+mskToStr(str *dst, size_t *len, const oid *src)
+{
+       (void) dst;
+       (void) len;
+       (void) src;
+       GDKerror("mskToStr: not yet implemented");
+       return 0;
+}
+
 atomDesc BATatoms[MAXATOMS] = {
        {"void",                /* name */
         TYPE_void,             /* storage */
@@ -2137,6 +2159,24 @@ atomDesc BATatoms[MAXATOMS] = {
         0,                     /* atomHeap */
        },
 #endif
+       {"msk",                 /* name */
+        TYPE_msk,              /* storage */
+        1,                     /* linear */
+        sizeof(msk),           /* size */
+        (ptr) &msk_nil,        /* atomNull */
+        (ssize_t (*)(const char *, size_t *, ptr *)) mskFromStr,   /* 
atomFromStr */
+        (ssize_t (*)(str *, size_t *, const void *)) mskToStr,     /* 
atomToStr */
+        (void *(*)(void *, stream *, size_t)) intRead,      /* atomRead */
+        (gdk_return (*)(const void *, stream *, size_t)) intWrite, /* 
atomWrite */
+        (int (*)(const void *, const void *)) intCmp,       /* atomCmp */
+        (BUN (*)(const void *)) intHash,                    /* atomHash */
+        0,                     /* atomFix */
+        0,                     /* atomUnfix */
+        0,                     /* atomPut */
+        0,                     /* atomDel */
+        0,                     /* atomLen */
+        0,                     /* atomHeap */
+       },
        {"str",                 /* name */
         TYPE_str,              /* storage */
         1,                     /* linear */
diff --git a/gdk/gdk_atoms.h b/gdk/gdk_atoms.h
--- a/gdk/gdk_atoms.h
+++ b/gdk/gdk_atoms.h
@@ -90,6 +90,8 @@ gdk_export ssize_t fltFromStr(const char
 gdk_export ssize_t fltToStr(str *dst, size_t *len, const flt *src);
 gdk_export ssize_t dblFromStr(const char *src, size_t *len, dbl **dst);
 gdk_export ssize_t dblToStr(str *dst, size_t *len, const dbl *src);
+gdk_export ssize_t mskFromStr(const char *src, size_t *len, oid **dst);
+gdk_export ssize_t mskToStr(str *dst, size_t *len, const oid *src);
 gdk_export ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, 
ssize_t len);
 gdk_export ssize_t strFromStr(const char *src, size_t *len, str *dst);
 gdk_export BUN strHash(const char *s);
diff --git a/monetdb5/mal/mal_type.c b/monetdb5/mal/mal_type.c
--- a/monetdb5/mal/mal_type.c
+++ b/monetdb5/mal/mal_type.c
@@ -138,6 +138,10 @@ getAtomIndex(const char *nme, int len, i
                        if (qt("lng"))
                                return TYPE_lng;
                        break;
+               case 'm':
+                       if (qt("msk"))
+                               return TYPE_msk;
+                       break;
                case 'p':
                        if (qt("ptr"))
                                return TYPE_ptr;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to