Changeset: bd23a836c0fb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bd23a836c0fb
Modified Files:
common/utils/mcrypt.c
configure.ag
monetdb5/mal/mal_authorize.c
tools/Makefile.ag
tools/embedded/Makefile.ag
tools/embedded/java-package/Makefile.ag
tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
tools/embedded/java-package/src/main/java/org/monetdb/embedded/MonetDBEmbedded.java
Branch: embedded-java
Log Message:
Fix compilation and afew other issues
diffs (truncated from 375 to 300 lines):
diff --git a/common/utils/mcrypt.c b/common/utils/mcrypt.c
--- a/common/utils/mcrypt.c
+++ b/common/utils/mcrypt.c
@@ -384,7 +384,8 @@ mcrypt_hashPassword(
#define NO_OPENSSL_FATAL "MonetDB was built without OpenSSL, but what you are
trying to do requires it.\n"
-char* mcrypt_sum_fail(const char *string, size_t len) {
+static char*
+mcrypt_sum_fail(const char *string, size_t len) {
(void)string;
(void)len;
fprintf(stderr, NO_OPENSSL_FATAL);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -208,7 +208,17 @@ if test "x$enable_embedded" != xno; then
fi
AM_CONDITIONAL(HAVE_EMBEDDED, test x"$enable_embedded" != xno)
+dft_embedded_java=no
+AC_ARG_ENABLE(embedded-java,
+ AS_HELP_STRING([--enable-embedded-java],
+ [enable support for running MonetDB as a Java library
(default=no)]),
+ enable_embedded_java=$enableval,
+ enable_embedded_java=$dft_embedded_java)
+AM_CONDITIONAL(HAVE_EMBEDDED, test x$enable_embedded_java != xno)
+if test "x$enable_embedded" != xno; then
+ enable_embedded_java=no
+fi
dft_microhttpd=no
AC_ARG_ENABLE(microhttpd,
@@ -1660,6 +1670,7 @@ if test "x$have_java" != xno; then
AC_PATH_PROG(JAVAC,javac,,$JPATH)
AC_PATH_PROG(JAR,jar,,$JPATH)
AC_PATH_PROG(JAVADOC,javadoc,,$JPATH)
+ AC_PATH_PROG(JAVAH,javah,,$JPATH)
if test "x$have_java" = xyes; then
JAVA_HOME="`echo $JAVAC | sed 's:/bin/javac$::'`"
fi
@@ -1675,6 +1686,12 @@ if test "x$have_java" != xno; then
fi
have_java=no
why_have_java="(no jar found)"
+ elif test "x$JAVAC" = "x"; then
+ if test "x$enable_embedded_java" = xyes; then
+ AC_MSG_ERROR([No javah found])
+ fi
+ have_java=no
+ why_have_java="(no javah found)"
else
have_java=yes
fi
@@ -1698,6 +1715,7 @@ AC_SUBST(JAVA)
AC_SUBST(JAVAC)
AC_SUBST(JAR)
AC_SUBST(JAVADOC)
+AC_SUBST(JAVAH)
AC_SUBST(CLASSPATH)
AC_SUBST(JAVA_HOME)
@@ -2950,6 +2968,18 @@ if test x"$enable_sql" = xauto && test x
disable_sql="(MonetDB/SQL requires MonetDB5)"
fi
fi
+if test x"$enable_monetdb5" = xyes || test x"$enable_monetdb5" = xauto ; then
+ enable_mserver=auto
+ if test x"$enable_embedded" = x"yes" ; then
+ enable_mserver=no
+ fi
+fi
+if test x"$target_os" != xcygwin ; then
+ enable_merovingian=auto
+ if test x"$enable_embedded" = x"yes" ; then
+ enable_merovingian=no
+ fi
+fi
dnl output
AM_CONDITIONAL(HAVE_GDK, test "x$enable_gdk" = xyes -o "x$enable_gdk" = xauto)
@@ -2957,6 +2987,8 @@ AM_CONDITIONAL(HAVE_MONETDB5, test "x$en
AM_CONDITIONAL(HAVE_SQL, test "x$enable_sql" = xyes -o "x$enable_sql" = xauto)
AM_CONDITIONAL(HAVE_GEOM, test "x$enable_geom" = xyes -o "x$enable_geom" =
xauto)
AM_CONDITIONAL(HAVE_EMBEDDED, test "x$enable_embedded" = xyes)
+AM_CONDITIONAL(HAVE_MEROVINGIAN, test "x$enable_merovingian" = xyes -o
"x$enable_merovingian" = xauto)
+AM_CONDITIONAL(HAVE_MSERVER, test "x$enable_mserver" = xyes -o
"x$enable_mserver" = xauto)
AM_CONDITIONAL(HAVE_TESTING, test "x$enable_testing" = xyes -o
"x$enable_testing" = xauto)
AM_CONDITIONAL(HAVE_DEVELOPER, test "x$enable_developer" = xyes)
diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -740,6 +740,7 @@ AUTHverifyPassword(str *passwd)
{
char *p = *passwd;
size_t len = strlen(p);
+ (void)len;
#ifdef HAVE_RIPEMD160
if (strcmp(MONETDB5_PASSWDHASH, "RIPEMD160") == 0) {
diff --git a/tools/Makefile.ag b/tools/Makefile.ag
--- a/tools/Makefile.ag
+++ b/tools/Makefile.ag
@@ -4,4 +4,4 @@
#
# Copyright 2008-2015 MonetDB B.V.
-SUBDIRS = HAVE_MONETDB5?mserver NOT_WIN32?merovingian HAVE_EMBEDDED?embedded
+SUBDIRS = HAVE_MSERVER?mserver HAVE_MEROVINGIAN?merovingian
HAVE_EMBEDDED?embedded
diff --git a/tools/embedded/Makefile.ag b/tools/embedded/Makefile.ag
--- a/tools/embedded/Makefile.ag
+++ b/tools/embedded/Makefile.ag
@@ -32,7 +32,8 @@ INCLUDES = ../../monetdb5/mal \
../../sql/server \
../../sql/common \
../../sql/storage \
- ../../sql/backends/monet5 \
+ ../../sql/backends/monet5 \
+ -I"/Library/Frameworks/R.framework/Resources/include" \
$(pcre_CFLAGS)
lib_embedded = {
diff --git a/tools/embedded/java-package/Makefile.ag
b/tools/embedded/java-package/Makefile.ag
--- a/tools/embedded/java-package/Makefile.ag
+++ b/tools/embedded/java-package/Makefile.ag
@@ -31,15 +31,21 @@ INCLUDES = ../ \
../../../sql/server \
../../../sql/common \
../../../sql/storage \
- ../../../sql/backends/monet5 \
+ ../../../sql/storage/bat \
+ ../../../sql/backends/monet5 \
+ -I$(JAVA_HOME)/include \
+ -I$(JAVA_HOME)/include/darwin \
+ -I"/Library/Frameworks/R.framework/Resources/include" \
$(pcre_CFLAGS)
+
-lib_embedded = {
+lib_embedded_java = {
SOURCES = org_monetdb_embedded_MonetDBEmbedded.c
org_monetdb_embedded_MonetDBEmbedded.h \
org_monetdb_embedded_result_EmbeddedQueryResult.c
org_monetdb_embedded_result_EmbeddedQueryResult.h
VERSION = 0.1
LIBS = ../../monetdb5/tools/libmonetdb5 \
../../gdk/libbat \
+ ../embedded \
$(pcre_LIBS) $(PSAPILIB) \
$(SOCKET_LIBS) $(MALLOC_LIBS) $(DL_LIBS) $(PTHREAD_LIBS)
}
diff --git a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
--- a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
+++ b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
@@ -9,49 +9,49 @@
#include "org_monetdb_embedded_MonetDBEmbedded.h"
#include "embedded.h"
-#include "gdk.h"
-#include "monetdb_config.h"
-#include "monet_options.h"
-#include "mal.h"
-#include "mal_client.h"
-#include "mal_linker.h"
-#include "msabaoth.h"
-#include "sql_scenario.h"
+#include "res_table.h"
+#include "mal_type.h"
-JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBLite_startupWrapper
+jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupWrapper
(JNIEnv *env, jobject object, jstring directory, jboolean silent) {
- const char *dir = (*env)->GetStringUTFChars(env, directory, 0);
+ (void)object;
+ const char *directory_string_tmp = (*env)->GetStringUTFChars(env,
directory, 0);
+ char *directory_string = strdup(directory_string_tmp);
unsigned char silent_char = 'n';
// Release the directory string
- (*env)->ReleaseStringUTFChars(env, directory, dir);
+ (*env)->ReleaseStringUTFChars(env, directory, directory_string_tmp);
// Set the silent flag based on passed boolean value
if (silent) {
silent_char = 'y';
}
- return monetdb_startup(dir, silent_char);
+ return monetdb_startup(directory_string, silent_char);
}
-JNIEXPORT jobject JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_query
+jobject JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_query
(JNIEnv *env, jobject object, jstring query) {
+ (void)object;
res_table *output = NULL;
- const char *query_string = (*env)->GetStringUTFChars(env, query, 0);
+ const char *query_string_tmp = (*env)->GetStringUTFChars(env, query, 0);
+ char *query_string = strdup(query_string_tmp);
+ // Release the query string
+ (*env)->ReleaseStringUTFChars(env, query, query_string_tmp);
- jobject *result;
+ jobject result;
jclass resultClass = (*env)->FindClass(env,
"org/monetdb/embedded/result/EmbeddedQueryResult");
// from Java EmbeddedQueryResult(String[] columnNames, String[]
columnTypes, int numberOfColumns, long resultPointer)
jmethodID resultConstructor = (*env)->GetMethodID(env, resultClass,
"<init>", "([Ljava/lang/String;[Ljava/lang/String;IJ)V");
// column names and types string arrays
jobjectArray columnNames, columnTypes = NULL;
+ jclass stringClass = (*env)->FindClass(env, "java/lang/String");
// In case we can't find the result object class
if (resultClass == NULL) {
return NULL;
}
+ // Execute the query
char* err = monetdb_query(query_string, (void**)&output);
- // Release the query string
- (*env)->ReleaseStringUTFChars(env, query, query_string);
// Checking for errors
if (err != NULL) {
@@ -63,13 +63,16 @@ JNIEXPORT jobject JNICALL Java_org_monet
// Cloud not find the exception class, just return
empty object
return NULL;
}
- return (*env)->ThrowNew(env, exClass, err);
+ (*env)->ThrowNew(env, exClass, err);
+ return NULL;
}
// Collect result column names and types in string arrays
// If we have not output, we will return them empty
- columnNames = (jobjectArray)env->NewObjectArray(output->nr_cols,
env->FindClass("java/lang/String"), env->NewStringUTF(""));
- columnTypes = (jobjectArray)env->NewObjectArray(output->nr_cols,
env->FindClass("java/lang/String"), env->NewStringUTF(""));
+ columnNames = (*env)->NewObjectArray(env, output->nr_cols, stringClass,
0);
+ columnTypes = (*env)->NewObjectArray(env, output->nr_cols, stringClass,
0);
+// columnNames = (jobjectArray)env->NewObjectArray(env, output->nr_cols,
env->FindClass("java/lang/String"), env->NewStringUTF(""));
+// columnTypes = (jobjectArray)env->NewObjectArray(env, output->nr_cols,
env->FindClass("java/lang/String"), env->NewStringUTF(""));
if (output && output->nr_cols > 0) {
int i;
for (i = 0; i < output->nr_cols; i++) {
@@ -98,15 +101,15 @@ JNIEXPORT jobject JNICALL Java_org_monet
break;
#ifdef HAVE_HGE
case TYPE_hge:
- type_string = "huge";
+ type = "huge";
break;
#endif
default:
- type_string = "unknown";
+ type = "unknown";
}
// Set the meta fields in the result object
- env->SetObjectArrayElement(columnNames, i,
env->NewStringUTF(env, col.name));
- env->SetObjectArrayElement(columnTypes, i,
env->NewStringUTF(env, type));
+ (*env)->SetObjectArrayElement(env, columnNames, i,
(*env)->NewStringUTF(env, col.name));
+ (*env)->SetObjectArrayElement(env, columnTypes, i,
(*env)->NewStringUTF(env, type));
}
}
// Also keep a long value with the result pointer in the Java result
object
@@ -118,10 +121,11 @@ JNIEXPORT jobject JNICALL Java_org_monet
return result;
}
-JNIEXPORT jstring JNICALL Java_org_monetdb_embedded_MonetDBLite_append
-(JNIEnv *env, jobject object, jstring schema_name, jstring table_name, jobject
data) {
- const char *schema_name = (*env)->GetStringUTFChars(env, schema, 0);
- const char *table_name = (*env)->GetStringUTFChars(env, table, 0);
+jstring JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_append
+(JNIEnv *env, jobject object, jstring table, jstring schema, jobject data) {
+ (void)object;
+ (void)table;
+ (void)schema;
(void)data;
return (*env)->NewStringUTF(env, "");
diff --git a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
--- a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
+++ b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
@@ -12,7 +12,7 @@ extern "C" {
* Method: startupNative
* Signature: (Ljava/lang/String;Z)I
*/
-JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupNative
+JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupWrapper
(JNIEnv *, jobject, jstring, jboolean);
/*
diff --git
a/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
b/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
---
a/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
+++
b/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
@@ -9,19 +9,22 @@
#include "org_monetdb_embedded_result_EmbeddedQueryResult.h"
#include "embedded.h"
-JNIEXPORT jobject JNICALL
Java_org_monetdb_embedded_result_EmbeddedQueryResult_getColumnWrapper
+#include "res_table.h"
+
+jobject JNICALL
Java_org_monetdb_embedded_result_EmbeddedQueryResult_getColumnWrapper
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list