Changeset: 99ad9ae08459 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=99ad9ae08459
Added Files:
monetdb5/extras/pyapi3/50_pyapi3.mal
monetdb5/extras/pyapi3/Makefile.ag
monetdb5/extras/pyapi3/Tests/All
monetdb5/extras/pyapi3/Tests/pyapi3_00.sql
monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_01.sql
monetdb5/extras/pyapi3/Tests/pyapi3_01.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_01.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_02.sql
monetdb5/extras/pyapi3/Tests/pyapi3_02.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_02.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_03.sql
monetdb5/extras/pyapi3/Tests/pyapi3_03.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_03.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_04.sql
monetdb5/extras/pyapi3/Tests/pyapi3_04.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_04.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_05.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_05.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_06.sql
monetdb5/extras/pyapi3/Tests/pyapi3_06.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_06.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_07.sql
monetdb5/extras/pyapi3/Tests/pyapi3_07.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_07.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_08.sql
monetdb5/extras/pyapi3/Tests/pyapi3_08.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_08.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_09.sql
monetdb5/extras/pyapi3/Tests/pyapi3_09.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_09.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_10.sql
monetdb5/extras/pyapi3/Tests/pyapi3_10.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_10.stable.err.Windows
monetdb5/extras/pyapi3/Tests/pyapi3_10.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_11.sql
monetdb5/extras/pyapi3/Tests/pyapi3_11.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_11.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_12.sql
monetdb5/extras/pyapi3/Tests/pyapi3_12.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_12.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_13.sql
monetdb5/extras/pyapi3/Tests/pyapi3_13.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_13.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_14.sql
monetdb5/extras/pyapi3/Tests/pyapi3_14.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_14.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_15.sql
monetdb5/extras/pyapi3/Tests/pyapi3_16.sql
monetdb5/extras/pyapi3/Tests/pyapi3_16.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_16.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_17.sql
monetdb5/extras/pyapi3/Tests/pyapi3_17.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_17.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_18.sql
monetdb5/extras/pyapi3/Tests/pyapi3_18.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_18.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_19.sql
monetdb5/extras/pyapi3/Tests/pyapi3_19.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_19.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_20.sql
monetdb5/extras/pyapi3/Tests/pyapi3_20.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_20.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_21.sql
monetdb5/extras/pyapi3/Tests/pyapi3_21.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_21.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_23.sql
monetdb5/extras/pyapi3/Tests/pyapi3_23.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_23.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_24.sql
monetdb5/extras/pyapi3/Tests/pyapi3_24.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_24.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_25.sql
monetdb5/extras/pyapi3/Tests/pyapi3_25.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_25.stable.err.Windows
monetdb5/extras/pyapi3/Tests/pyapi3_25.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_26.sql
monetdb5/extras/pyapi3/Tests/pyapi3_26.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_26.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_27.sql
monetdb5/extras/pyapi3/Tests/pyapi3_27.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_27.stable.out
monetdb5/extras/pyapi3/Tests/pyapi3_28.sql
monetdb5/extras/pyapi3/Tests/pyapi3_28.stable.err
monetdb5/extras/pyapi3/Tests/pyapi3_28.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_numpy_boolean.malC
monetdb5/extras/pyapi3/Tests/pyapi_numpy_boolean.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_numpy_boolean.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_numpy_numeric_nested.malC
monetdb5/extras/pyapi3/Tests/pyapi_numpy_numeric_nested.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_numpy_numeric_nested.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_pandas.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_pandas.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_returntypes.malC
monetdb5/extras/pyapi3/Tests/pyapi_returntypes.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_returntypes.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_types_boolean.malC
monetdb5/extras/pyapi3/Tests/pyapi_types_boolean.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_types_boolean.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_types_huge.malC
monetdb5/extras/pyapi3/Tests/pyapi_types_huge.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_types_huge.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_types_numeric.malC
monetdb5/extras/pyapi3/Tests/pyapi_types_numeric.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_types_numeric.stable.out
monetdb5/extras/pyapi3/Tests/pyapi_types_string.malC
monetdb5/extras/pyapi3/Tests/pyapi_types_string.stable.err
monetdb5/extras/pyapi3/Tests/pyapi_types_string.stable.out
monetdb5/extras/pyapi3/pyapi3.mal
Modified Files:
configure.ag
Branch: python3udf
Log Message:
Actually add files.
diffs (truncated from 8993 to 300 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2480,6 +2480,10 @@ if test "x$enable_py3integration" != xno
HAVEPYTHONHEADER=`$PYTHON_CMD -c "import distutils.sysconfig,
os; print(os.path.isfile(os.path.join(distutils.sysconfig.get_python_inc(),
'Python.h')))"`
if [test "x$HAVEPYTHONHEADER" = xTrue]; then
have_libpy3=yes
+ # we can't have symlinks (because Windows) but we need
the files from /pyapi/ in the /pyapi3/ folder, so we just copy them
+ cp monetdb5/extras/pyapi/*.c monetdb5/extras/pyapi3/
+ cp monetdb5/extras/pyapi/*.h monetdb5/extras/pyapi3/
+ AC_MSG_ERROR("Hello")
AC_DEFINE(HAVE_LIBPY3, 1, [Define if we can link to
python])
AC_SUBST(libpy3_CFLAGS, $libpy3_CFLAGS)
AC_SUBST(libpy3_LIBS, $libpy3_LIBS)
diff --git a/monetdb5/extras/pyapi3/50_pyapi3.mal
b/monetdb5/extras/pyapi3/50_pyapi3.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/50_pyapi3.mal
@@ -0,0 +1,8 @@
+# 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.
+
+# This loads the MonetDB/PyAPI module
+include pyapi3;
diff --git a/monetdb5/extras/pyapi3/Makefile.ag
b/monetdb5/extras/pyapi3/Makefile.ag
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Makefile.ag
@@ -0,0 +1,49 @@
+# 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.
+
+INCLUDES = \
+ ../../../clients/mapilib \
+ ../../../common/options \
+ ../../../common/stream \
+ ../../modules/atoms \
+ ../../modules/mal \
+ ../../../gdk \
+ ../../mal \
+ ../../../sql/backends/monet5 \
+ ../../../sql/common \
+ ../../../sql/include \
+ ../../../sql/server \
+ ../../../sql/storage \
+ $(libpy3_CFLAGS)
+
+
+MTSAFE
+
+lib__pyapi3 = {
+ 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 unspecified_evil.h
+ XDEPS = $(libpy3_LIBDEP)
+ LIBS = ../../tools/libmonetdb5 \
+ ../../../gdk/libbat \
+ $(MALLOC_LIBS) $(libpy3_LIBS)
+}
+
+headers_pyapi3_mal = {
+ COND = HAVE_LIBPY3
+ HEADERS = mal
+ DIR = libdir/monetdb5
+ SOURCES = pyapi3.mal
+}
+
+headers_autoload = {
+ COND = HAVE_LIBPY3
+ HEADERS = mal
+ DIR = libdir/monetdb5/autoload
+ SOURCES = 50_pyapi3.mal
+}
+
+EXTRA_DIST_DIR = Tests
diff --git a/monetdb5/extras/pyapi3/Tests/All b/monetdb5/extras/pyapi3/Tests/All
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/All
@@ -0,0 +1,37 @@
+
+
+HAVE_LIBPY3&HAVE_HGE?pyapi_types_huge
+HAVE_LIBPY3?pyapi_returntypes
+HAVE_LIBPY3?pyapi_types_string
+HAVE_LIBPY3?pyapi_numpy_boolean
+HAVE_LIBPY3?pyapi_types_numeric
+HAVE_LIBPY3?pyapi_numpy_numeric_nested
+
+
+HAVE_LIBPY3?pyapi3_00
+HAVE_LIBPY3?pyapi3_01
+HAVE_LIBPY3?pyapi3_02
+HAVE_LIBPY3?pyapi3_03
+HAVE_LIBPY3?pyapi3_04
+HAVE_LIBPY3?pyapi3_06
+HAVE_LIBPY3?pyapi3_07
+HAVE_LIBPY3?pyapi3_08
+HAVE_LIBPY3?pyapi3_09
+HAVE_LIBPY3?pyapi3_10
+HAVE_LIBPY3?pyapi3_11
+HAVE_LIBPY3?pyapi3_12
+HAVE_LIBPY3?pyapi3_13
+HAVE_LIBPY3?pyapi3_14
+HAVE_LIBPY3?pyapi3_16
+HAVE_LIBPY3?pyapi3_17
+HAVE_LIBPY3?pyapi3_18
+HAVE_LIBPY3?pyapi3_19
+HAVE_LIBPY3?pyapi3_20
+HAVE_LIBPY3?pyapi3_21
+HAVE_LIBPY3?pyapi3_22
+HAVE_LIBPY3?pyapi3_23
+HAVE_LIBPY3?pyapi3_24
+HAVE_LIBPY3?pyapi3_25
+HAVE_LIBPY3?pyapi3_26
+HAVE_LIBPY3?pyapi3_27
+HAVE_LIBPY3?pyapi3_28
diff --git a/monetdb5/extras/pyapi3/Tests/pyapi3_00.sql
b/monetdb5/extras/pyapi3/Tests/pyapi3_00.sql
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/pyapi3_00.sql
@@ -0,0 +1,14 @@
+# Basic MonetDB/Python test
+# We simply return a list of the values 1-10 and store it in a table
+START TRANSACTION;
+
+CREATE FUNCTION pyapi00() returns table (d integer)
+language PYTHON3
+{
+ return(list(range(1,11)))
+};
+
+SELECT * FROM pyapi00() AS R WHERE d > 5;
+DROP FUNCTION pyapi00;
+
+ROLLBACK;
diff --git a/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.err
b/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.err
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.err
@@ -0,0 +1,38 @@
+stderr of test 'pyapi3_00` in directory 'monetdb5/extras/pyapi3` itself:
+
+
+# 22:40:25 >
+# 22:40:25 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=32251" "--set"
"mapi_usock=/var/tmp/mtest-8581/.s.monetdb.32251" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/mytherin/opt/var/mTests_sql_backends_monet5" "--set"
"mal_listing=0" "--set" "embedded_r=true" "--set" "embedded_py=true"
+# 22:40:25 >
+
+# builtin opt gdk_dbpath = /home/mytherin/opt/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = no
+# builtin opt monet_prompt = >
+# builtin opt monet_daemon = no
+# builtin opt mapi_port = 50000
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 32251
+# cmdline opt mapi_usock = /var/tmp/mtest-8581/.s.monetdb.32251
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath = /home/mytherin/opt/var/mTests_sql_backends_monet5
+# cmdline opt mal_listing = 0
+# cmdline opt embedded_r = true
+# cmdline opt embedded_py = true
+# cmdline opt gdk_debug = 536870922
+
+# 22:40:25 >
+# 22:40:25 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-8581" "--port=32251"
+# 22:40:25 >
+
+
+# 22:40:25 >
+# 22:40:25 > "Done."
+# 22:40:25 >
+
diff --git a/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.out
b/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.out
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/pyapi3_00.stable.out
@@ -0,0 +1,81 @@
+stdout of test 'pyapi3_00` in directory 'monetdb5/extras/pyapi3` itself:
+
+
+# 22:40:25 >
+# 22:40:25 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=32251" "--set"
"mapi_usock=/var/tmp/mtest-8581/.s.monetdb.32251" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/mytherin/opt/var/mTests_sql_backends_monet5" "--set"
"mal_listing=0" "--set" "embedded_r=true" "--set" "embedded_py=true"
+# 22:40:25 >
+
+# MonetDB 5 server v11.20.0
+# This is an unreleased version
+# Serving database 'mTests_sql_backends_monet5', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit
integers dynamically linked
+# Found 7.684 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://mytherin-N750JV:32251/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-8581/.s.monetdb.32251
+# MonetDB/SQL module loaded
+# MonetDB/Python module loaded
+# MonetDB/R module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 17_temporal.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_functions.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 24_zorder.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 26_sysmon.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 39_analytics_hge.sql
+# loading sql script: 40_json.sql
+# loading sql script: 40_json_hge.sql
+# loading sql script: 41_md5sum.sql
+# loading sql script: 45_uuid.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 80_udf_hge.sql
+# loading sql script: 90_generator.sql
+# loading sql script: 90_generator_hge.sql
+# loading sql script: 99_system.sql
+
+# 22:40:25 >
+# 22:40:25 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-8581" "--port=32251"
+# 22:40:25 >
+
+#START TRANSACTION;
+#CREATE FUNCTION pyapi00() returns table (d integer)
+#language P
+#{
+# x = range(1,11)
+# return(x)
+#};
+#SELECT * FROM pyapi00() AS R WHERE d > 5;
+% .r # table_name
+% d # name
+% int # type
+% 2 # length
+[ 6 ]
+[ 7 ]
+[ 8 ]
+[ 9 ]
+[ 10 ]
+#DROP FUNCTION pyapi00;
+#ROLLBACK;
+
+# 22:40:25 >
+# 22:40:25 > "Done."
+# 22:40:25 >
+
diff --git a/monetdb5/extras/pyapi3/Tests/pyapi3_01.sql
b/monetdb5/extras/pyapi3/Tests/pyapi3_01.sql
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/pyapi3_01.sql
@@ -0,0 +1,14 @@
+# Create a table with multiple columns with MonetDB/Python
+START TRANSACTION;
+
+CREATE FUNCTION pyapi01(i integer) returns table (i integer, d double)
+language PYTHON3
+{
+ x = range(1, i + 1)
+ y = [42.0] * i
+ return([x,y])
+};
+SELECT i,d FROM pyapi01(42) AS R WHERE i>30;
+DROP FUNCTION pyapi01;
+
+ROLLBACK;
diff --git a/monetdb5/extras/pyapi3/Tests/pyapi3_01.stable.err
b/monetdb5/extras/pyapi3/Tests/pyapi3_01.stable.err
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/pyapi3/Tests/pyapi3_01.stable.err
@@ -0,0 +1,38 @@
+stderr of test 'pyapi3_01` in directory 'monetdb5/extras/pyapi3` itself:
+
+
+# 22:40:25 >
+# 22:40:25 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=32251" "--set"
"mapi_usock=/var/tmp/mtest-8581/.s.monetdb.32251" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/mytherin/opt/var/mTests_sql_backends_monet5" "--set"
"mal_listing=0" "--set" "embedded_r=true" "--set" "embedded_py=true"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list