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

Reply via email to