Changeset: 5e38e6529ac1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5e38e6529ac1
Modified Files:
        gdk/gdk_bat.c
        gdk/gdk_utils.c
        gdk/gdk_utils.h
Branch: cmake-monetdblite
Log Message:

Set BAT binary import as a separate property.


diffs (99 lines):

diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -240,7 +240,7 @@ BATdense(oid hseq, oid tseq, BUN cnt)
        return bn;
 }
 
-#if defined(HAVE_EMBEDDED) && defined(HAVE_EMBEDDED_JAVA)
+#ifdef HAVE_EMBEDDED
 extern int TYPE_date;
 extern int TYPE_daytime;
 extern int TYPE_timestamp;
@@ -253,10 +253,14 @@ BATattach(int tt, const char *heapfile, 
        char *p;
        size_t m;
        FILE *f;
-#if defined(HAVE_EMBEDDED) && defined(HAVE_EMBEDDED_JAVA)
        //The JVM is always Big-Endian, so the integer values must be swapped 
if so
-       int swapendianess = MT_check_endianness() != HOST_BIG_ENDIAN;
+       bool swapendianess = GDK_is_bin_import_swap() &&
+#ifdef HAVE_EMBEDDED
+               MT_check_endianness() != HOST_BIG_ENDIAN;
+#else
+               false
 #endif
+       ;
 
        ERRORcheck(tt <= 0 , "BATattach: bad tail type (<=0)\n", NULL);
        ERRORcheck(ATOMvarsized(tt) && ATOMstorage(tt) != TYPE_str, "BATattach: 
bad tail type (varsized and not str)\n", NULL);
@@ -366,7 +370,6 @@ BATattach(int tt, const char *heapfile, 
                p = Tloc(bn, 0);
                n = (lng) st.st_size;
                while (n > 0 && (m = fread(p, 1, (size_t) MIN(1024*1024, n), 
f)) > 0) {
-#if defined(HAVE_EMBEDDED) && defined(HAVE_EMBEDDED_JAVA)
                        if (swapendianess) {
                                BUN j = 0, end = 0;
                                int stype = ATOMstorage(tt);
@@ -388,7 +391,7 @@ BATattach(int tt, const char *heapfile, 
                                } else if (stype == TYPE_dbl || stype == 
TYPE_lng) {
                                        lng *bufptr = (lng*) p;
                                        for (j = 0, end = m / atomsize; j < 
end; j++) {
-                                               bufptr[j] = 
long_long_SWAP(bufptr[j]);
+                                               bufptr[j] = 
long_int_SWAP(bufptr[j]);
                                        }
                                }
 #ifdef HAVE_HGE
@@ -400,7 +403,6 @@ BATattach(int tt, const char *heapfile, 
                                }
 #endif
                        }
-#endif
                        p += m;
                        n -= m;
                }
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -54,6 +54,20 @@ static void GDKunlockHome(int farmid);
 #undef realloc
 #undef free
 
+static bool BATbin_import_swap = false;
+
+void
+GDK_set_bin_import_swap(bool swap)
+{
+       BATbin_import_swap = swap;
+}
+
+bool
+GDK_is_bin_import_swap(void)
+{
+       return BATbin_import_swap;
+}
+
 /*
  * @+ Monet configuration file
  * Parse a possible MonetDB config file (if specified by command line
@@ -830,6 +844,7 @@ GDKreset(int status)
                MT_lock_unset(&GDKthreadLock);
        }
        ATOMunknown_clean();
+       BATbin_import_swap = false;
 }
 
 /* coverity[+kill] */
diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h
--- a/gdk/gdk_utils.h
+++ b/gdk/gdk_utils.h
@@ -11,6 +11,9 @@
 
 #include <setjmp.h>
 
+gdk_export void GDK_set_bin_import_swap(bool swap);
+gdk_export bool GDK_is_bin_import_swap(void);
+
 gdk_export const char *GDKgetenv(const char *name);
 
 gdk_export bool GDKgetenv_istext(const char *name, const char* text);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to