Changeset: fa8269d15912 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fa8269d15912
Added Files:
        sql/backends/monet5/UDF/pyapi/pyheader.h
Modified Files:
        sql/backends/monet5/UDF/pyapi/Makefile.ag
Branch: default
Log Message:

Add missing header.


diffs (119 lines):

diff --git a/sql/backends/monet5/UDF/pyapi/Makefile.ag 
b/sql/backends/monet5/UDF/pyapi/Makefile.ag
--- a/sql/backends/monet5/UDF/pyapi/Makefile.ag
+++ b/sql/backends/monet5/UDF/pyapi/Makefile.ag
@@ -24,7 +24,7 @@ MTSAFE
 lib__pyapi = {
        MODULE
        DIR = libdir/monetdb5
-       SOURCES = pyapi.c pyapi.h unicode.c unicode.h pytypes.c pytypes.h 
type_conversion.c type_conversion.h  formatinput.c formatinput.h connection.c 
connection.h undef.h pyloader.c emit.h emit.c conversion.c conversion.h 
convert_loops.h
+       SOURCES = pyapi.c pyapi.h unicode.c unicode.h pytypes.c pytypes.h 
type_conversion.c type_conversion.h  formatinput.c formatinput.h connection.c 
connection.h undef.h pyloader.c emit.h emit.c conversion.c conversion.h 
convert_loops.h pyheader.h
        XDEPS = $(libpy_LIBDEP)
        LIBS = ../../../../../monetdb5/tools/libmonetdb5 \
               ../../../../../gdk/libbat \
diff --git a/sql/backends/monet5/UDF/pyapi/pyheader.h 
b/sql/backends/monet5/UDF/pyapi/pyheader.h
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi/pyheader.h
@@ -0,0 +1,102 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 2008-2015 MonetDB B.V.
+ */
+
+/*
+ * M. Raasveldt
+ * This file simply includes standard MonetDB and Python headers
+ * Because this needs to be done in a specific order, and this needs to happen 
in multiple places
+ * We simplify our lives by only having to include this header.
+ */
+
+#ifndef _PYHEADER_H_
+#define _PYHEADER_H_
+
+#include "monetdb_config.h"
+#include "mal.h"
+#include "mal_stack.h"
+#include "mal_linker.h"
+#include "gdk_atoms.h"
+#include "gdk_utils.h"
+#include "gdk_posix.h"
+#include "gdk.h"
+#include "sql_catalog.h"
+#include "sql_scenario.h"
+#include "sql_cast.h"
+#include "sql_execute.h"
+#include "sql_storage.h"
+
+#include "undef.h"
+
+// Python library
+#undef _GNU_SOURCE
+#undef _XOPEN_SOURCE
+#undef _POSIX_C_SOURCE
+#ifdef _DEBUG
+ #undef _DEBUG
+ #include <Python.h>
+ #define _DEBUG
+#else
+ #include <Python.h>
+#endif
+
+// Numpy Library
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+#ifdef __INTEL_COMPILER
+// Intel compiler complains about trailing comma's in numpy source code,
+#pragma warning(disable:271)
+#endif
+#include <numpy/arrayobject.h>
+#include <numpy/npy_common.h>
+
+// DLL Export Flags
+#ifdef WIN32
+#ifndef LIBPYAPI
+#define pyapi_export extern __declspec(dllimport)
+#else
+#define pyapi_export extern __declspec(dllexport)
+#endif
+#else
+#define pyapi_export extern
+#endif
+
+// Fixes for Python 2 <> Python 3
+#if PY_MAJOR_VERSION >= 3
+#define IS_PY3K
+#define PyString_FromString PyUnicode_FromString
+#define PyString_Check PyUnicode_Check
+#define PyString_CheckExact PyUnicode_CheckExact
+#define PyString_AsString PyUnicode_AsUTF8
+#define PyString_AS_STRING PyUnicode_AsUTF8
+#define PyInt_FromLong PyLong_FromLong
+#define PyInt_Check PyLong_Check
+#define PythonUnicodeType char
+#else
+#define PythonUnicodeType Py_UNICODE
+#endif
+
+#if defined(WIN32) && !defined(HAVE_EMBEDDED)
+// On Windows we need to dynamically load any SQL functions we use 
+// For embedded, this is not necessary because we create one large shared 
object
+#define CREATE_SQL_FUNCTION_PTR(retval, fcnname)     \
+   typedef retval (*fcnname##_ptr_tpe)();            \
+   fcnname##_ptr_tpe fcnname##_ptr = NULL;
+
+#define LOAD_SQL_FUNCTION_PTR(fcnname)                                         
    \
+    fcnname##_ptr = (fcnname##_ptr_tpe) getAddress(NULL, "lib_sql.dll", 
#fcnname, 0); \
+    if (fcnname##_ptr == NULL) {                                               
            \
+        msg = createException(MAL, "pyapi.eval", "Failed to load function %s", 
#fcnname);  \
+    }
+#else
+#define CREATE_SQL_FUNCTION_PTR(retval, fcnname)     \
+   typedef retval (*fcnname##_ptr_tpe)();            \
+   fcnname##_ptr_tpe fcnname##_ptr = (fcnname##_ptr_tpe)fcnname;
+
+#define LOAD_SQL_FUNCTION_PTR(fcnname) (void) fcnname
+#endif
+
+#endif /* _PYHEADER_H_ */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to