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